diff --git a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryPermissionReadDocument.java b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryPermissionReadDocument.java index 38c9718602f0197062d2024667dbcd45df3aaed3..cafda35cd22a80c61530a4a52a0e5d7b648c16fd 100644 --- a/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryPermissionReadDocument.java +++ b/o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryPermissionReadDocument.java @@ -67,6 +67,24 @@ public class ActionQueryPermissionReadDocument extends BaseAction { } List unitNames = userManagerService.listUnitNamesWithPerson(personName); List groupNames = userManagerService.listGroupNamesByPerson(personName); + //是否是读者 + if(ListTools.contains(document.getReadPersonList(), getShortTargetFlag(personName)) || + ListTools.contains(document.getReadPersonList(), "所有人")){ + wo.setValue(true); + return result; + } + for(String unitName : unitNames){ + if(ListTools.contains(document.getReadUnitList(), getShortTargetFlag(unitName))){ + wo.setValue(true); + return result; + } + } + for(String groupName : groupNames){ + if(ListTools.contains(document.getReadGroupList(), getShortTargetFlag(groupName))){ + wo.setValue(true); + return result; + } + } //是否是作者 if( ListTools.isNotEmpty( document.getAuthorPersonList() )) { if( document.getAuthorPersonList().contains( personName ) ) { @@ -86,23 +104,17 @@ public class ActionQueryPermissionReadDocument extends BaseAction { return result; } } - //是否是读者 - if(ListTools.contains(document.getReadPersonList(), getShortTargetFlag(personName)) || - ListTools.contains(document.getReadPersonList(), "所有人")){ + //是否是分类的管理者 + CategoryInfo categoryInfo = categoryInfoServiceAdv.get(document.getCategoryId()); + if ( categoryInfoServiceAdv.isCategoryInfoManager( categoryInfo, personName, unitNames, groupNames )) { wo.setValue(true); return result; } - for(String unitName : unitNames){ - if(ListTools.contains(document.getReadUnitList(), getShortTargetFlag(unitName))){ - wo.setValue(true); - return result; - } - } - for(String groupName : groupNames){ - if(ListTools.contains(document.getReadGroupList(), getShortTargetFlag(groupName))){ - wo.setValue(true); - return result; - } + //是否是栏目的管理者 + AppInfo appInfo = appInfoServiceAdv.get( document.getAppId() ); + if (appInfoServiceAdv.isAppInfoManager( appInfo, personName, unitNames, groupNames )) { + wo.setValue(true); + return result; } } return result;