Procházet zdrojové kódy

修复单独刷新文档阅读权限无法即时生效的问题:
为服务添加清除缓存操作操作(因缓存影响导致不能生效的问题)

o2lee před 5 roky
rodič
revize
ca2d4739cd

+ 5 - 4
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/permission/ActionRefreshDocumentPermission.java

@@ -49,9 +49,10 @@ public class ActionRefreshDocumentPermission extends BaseAction {
 
 		if (check) {
 			if ( ListTools.isEmpty(wi.getPermissionList())) {
-				check = false;
-				Exception exception = new ExceptionServiceLogic("文档权限为空,该文档将没有任何用户可以访问。ID:" + wi.getDocId());
-				result.error(exception);
+				wi.setPermissionList(new ArrayList<>());
+//				check = false;
+//				Exception exception = new ExceptionServiceLogic("文档权限为空,该文档将没有任何用户可以访问。ID:" + wi.getDocId());
+//				result.error(exception);
 			}
 		}
 
@@ -73,7 +74,7 @@ public class ActionRefreshDocumentPermission extends BaseAction {
 
 		if (check) {
 			try {
-				documentPersistService.refreshDocumentPermission(document.getId(), wi.getPermissionList());
+				documentPersistService.refreshDocumentPermission( document.getId(), wi.getPermissionList() );
 			} catch (Exception e) {
 				check = false;
 				Exception exception = new ExceptionServiceLogic(e, "系统在为文档设置用户访问权限过程中发生异常。ID:" + wi.getDocId());

+ 4 - 0
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/DocumentPersistService.java

@@ -319,5 +319,9 @@ public class DocumentPersistService {
 			throw new Exception("docId is empty!");
 		}
 		permissionService.refreshDocumentPermission(docId, permissionList);
+
+		new CmsBatchOperationPersistService().addOperation(
+				CmsBatchOperationProcessService.OPT_OBJ_DOCUMENT,
+				CmsBatchOperationProcessService.OPT_TYPE_PERMISSION,  docId,  docId, "单独刷新文档权限:ID=" +  docId );
 	}
 }

+ 7 - 3
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/PermissionOperateService.java

@@ -22,7 +22,7 @@ public class PermissionOperateService {
 	private static Logger logger = LoggerFactory.getLogger(PermissionOperateService.class);
 	/**
 	 * 根据文档ID,为文档设置用户访问和管理权限
-	 * @param document
+	 * @param docId
 	 * @param readerList
 	 * @param authorList
 	 * @throws Exception
@@ -131,7 +131,7 @@ public class PermissionOperateService {
 	
 	/**
 	 * 根据文档ID,为文档设置用户访问和管理权限
-	 * @param docmentId
+	 * @param docId
 	 * @param permissionList
 	 * @throws Exception 
 	 */
@@ -154,7 +154,11 @@ public class PermissionOperateService {
 				document.setAuthorGroupList( null );
 				
 				if( ListTools.isNotEmpty( permissionList ) ){
-					for( PermissionInfo permission : permissionList ){					
+					for( PermissionInfo permission : permissionList ){
+						//如果Code为空,则使用Nameg来填充
+						if( StringUtils.isEmpty( permission.getPermissionObjectCode() )){
+							permission.setPermissionObjectCode( permission.getPermissionObjectName() );
+						}
 						if( "管理".equals( permission.getPermission() )) {
 							document.addManagerList(permission.getPermissionObjectCode());
 						}else if( "读者".equals( permission.getPermission() ) || "阅读".equals( permission.getPermission() )) {