package jnpf.elnController;
|
|
import cn.dev33.satoken.same.SaSameUtil;
|
import jnpf.base.ActionResult;
|
import jnpf.eln.TemplateEditabilityApi;
|
import jnpf.elnService.template.ElnTemplateAnnotationAccessService;
|
import jnpf.elnService.template.ElnTemplateEditabilityService;
|
import jnpf.util.NoDataSourceBind;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@RestController
|
@RequestMapping("/Internal/eln/template")
|
public class ElnTemplateEditabilityController implements TemplateEditabilityApi {
|
|
private final SameTokenChecker sameTokenChecker;
|
private final ElnTemplateEditabilityService editabilityService;
|
private final ElnTemplateAnnotationAccessService annotationAccessService;
|
|
@Autowired
|
public ElnTemplateEditabilityController(ElnTemplateEditabilityService editabilityService,
|
ElnTemplateAnnotationAccessService annotationAccessService) {
|
this(SaSameUtil::checkCurrentRequestToken, editabilityService, annotationAccessService);
|
}
|
|
ElnTemplateEditabilityController(SameTokenChecker sameTokenChecker,
|
ElnTemplateEditabilityService editabilityService,
|
ElnTemplateAnnotationAccessService annotationAccessService) {
|
this.sameTokenChecker = sameTokenChecker;
|
this.editabilityService = editabilityService;
|
this.annotationAccessService = annotationAccessService;
|
}
|
|
@Override
|
@PostMapping("/editability")
|
@NoDataSourceBind
|
public ActionResult<Boolean> editable(@RequestParam("tenantId") String tenantId,
|
@RequestParam("templateId") String templateId,
|
@RequestParam("fileId") String fileId) {
|
sameTokenChecker.check();
|
return ActionResult.success(editabilityService.isEditable(tenantId, templateId, fileId));
|
}
|
|
@Override
|
@PostMapping("/annotationAccess")
|
@NoDataSourceBind
|
public ActionResult<Boolean> canAnnotate(@RequestParam("tenantId") String tenantId,
|
@RequestParam("userId") String userId,
|
@RequestParam("templateId") String templateId,
|
@RequestParam("fileId") String fileId) {
|
sameTokenChecker.check();
|
return ActionResult.success(annotationAccessService.canAnnotate(
|
tenantId, userId, templateId, fileId));
|
}
|
|
@FunctionalInterface
|
interface SameTokenChecker {
|
void check();
|
}
|
}
|