java-spring: fix edit, comment, review, fillForms mode permissions

This commit is contained in:
Oleg Sinizin
2021-07-12 11:31:16 +03:00
parent 38cf6c333d
commit 239f0e2528
2 changed files with 18 additions and 8 deletions

View File

@ -19,9 +19,13 @@
package com.onlyoffice.integration.entities.filemodel;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.onlyoffice.integration.Action;
import com.onlyoffice.integration.serializer.SerializerFilter;
import com.onlyoffice.integration.entities.Group;
import com.onlyoffice.integration.entities.User;
import com.onlyoffice.integration.util.documentManagers.DocumentManagerExts;
import com.onlyoffice.integration.util.fileUtilities.FileUtility;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
@ -45,16 +49,22 @@ public class Permission {
private List<String> reviewGroups;
private CommentGroup commentGroups;
public void configure(User user){
this.comment = user.getPermissions().getComment();
@Autowired
private DocumentManagerExts documentManagerExts;
@Autowired
private FileUtility fileUtility;
public void configure(User user, Action action, String fileName){
Boolean canEdit = documentManagerExts.getEditedExts().contains(fileUtility.getFileExtension(fileName));
this.comment = !action.equals(Action.view) && !action.equals(Action.fillForms) && !action.equals(Action.embedded) && !action.equals(Action.blockcontent);
this.copy = user.getPermissions().getCopy();
this.download = user.getPermissions().getDownload();
this.edit = user.getPermissions().getEdit();
this.edit = canEdit && (action.equals(Action.edit) ||action.equals(Action.view) ||action.equals(Action.filter) ||action.equals(Action.blockcontent) );
this.print = user.getPermissions().getPrint();
this.fillForms = user.getPermissions().getFillForms();
this.fillForms = !action.equals(Action.view) && !action.equals(Action.comment) && !action.equals(Action.embedded) && !action.equals(Action.blockcontent);
this.modifyFilter = user.getPermissions().getModifyFilter();
this.modifyContentControl = user.getPermissions().getModifyContentControl();
this.review = user.getPermissions().getReview();
this.review = canEdit && (action.equals(Action.edit) || action.equals(Action.review));
this.reviewGroups = user.getPermissions()
.getReviewGroups()
.stream()

View File

@ -45,7 +45,7 @@ public class EditorServices {
Action action, Language lang, Type type){
DocumentType documentType = fileUtility.getDocumentType(fileName);
Permission permissions = createPermissions(user);
Permission permissions = createPermissions(user,action,fileName);
Document doc = context.getBean(Document.class);
doc.configure(fileName, permissions,"uid-"+user.getId());
@ -57,9 +57,9 @@ public class EditorServices {
return fileModel;
}
private Permission createPermissions(User user){
private Permission createPermissions(User user,Action action, String fileName){
Permission permissions = context.getBean(Permission.class);
permissions.configure(user);
permissions.configure(user,action,fileName);
return permissions;
}