Parcourir la source

'修复bbsManager管理权限问题

o2wwx il y a 5 ans
Parent
commit
a1eea1387a

+ 18 - 0
o2server/x_bbs_assemble_control/src/main/java/com/x/bbs/assemble/control/jaxrs/permissioninfo/ActionGetSectionOperationPermissoin.java

@@ -168,7 +168,25 @@ public class ActionGetSectionOperationPermissoin extends BaseAction {
 				wrap.setSectionPermissoinManageAble(true);
 				wrap.setSectionConfigManageAble(true);
 			}
+			//是否是管理员
+			Boolean UserIsManager = UserPermissionService.getUserIsManager(effectivePerson);
+			if(UserIsManager) {
+				wrap.setSubjectPublishAble(true);
+				wrap.setReplyPublishAble(true);
+				wrap.setReplyAuditAble(true);
+				wrap.setSubjectAuditAble(true);
+				wrap.setSubjectManageAble(true);
+				wrap.setSubjectRecommendAble(true);
+				wrap.setSubjectStickAble(true);
+				wrap.setSubjectCreamAble(true);
+				wrap.setReplyManageAble(true);
+				
+				wrap.setSectionManageAble(true);
+				wrap.setSectionPermissoinManageAble(true);
+				wrap.setSectionConfigManageAble(true);
+			}
 		}
+		
 		result.setData(wrap);
 		return result;
 	}

+ 14 - 0
o2server/x_bbs_assemble_control/src/main/java/com/x/bbs/assemble/control/jaxrs/permissioninfo/ActionGetSubjectOperationPermissoin.java

@@ -170,6 +170,20 @@ public class ActionGetSubjectOperationPermissoin extends BaseAction {
 				}
 			}
 		}
+		
+		//是否是管理员
+		Boolean UserIsManager = UserPermissionService.getUserIsManager(effectivePerson);
+		if(UserIsManager) {
+			wrap.setReplyPublishAble(true);
+			wrap.setAuditAble(true);
+			wrap.setManageAble(true);
+			wrap.setEditAble(true);
+			wrap.setRecommendAble(true);
+			wrap.setStickAble(true);
+			wrap.setCreamAble(true);
+			wrap.setReplyAuditAble(true);
+		    wrap.setReplyManageAble(true);		
+		 }
 
 		result.setData(wrap);
 		return result;

+ 34 - 0
o2server/x_bbs_assemble_control/src/main/java/com/x/bbs/assemble/control/service/UserPermissionService.java

@@ -5,7 +5,12 @@ import java.util.Date;
 import java.util.List;
 
 import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.x.base.core.project.x_organization_assemble_express;
 import com.x.base.core.project.cache.ApplicationCache;
+import com.x.base.core.project.connection.ActionResponse;
 import com.x.base.core.project.gson.XGsonBuilder;
 import com.x.base.core.project.http.EffectivePerson;
 import com.x.base.core.project.logger.Logger;
@@ -36,6 +41,35 @@ public class UserPermissionService {
 	private BBSRoleInfoService roleInfoService = new BBSRoleInfoService();
 	private UserManagerService userManagerService = new UserManagerService();
 
+	
+	public Boolean getUserIsManager(EffectivePerson effectivePerson) {
+		boolean userIsManager = false;
+		String distinguishedName = effectivePerson.getDistinguishedName();
+		if(distinguishedName.equalsIgnoreCase("xadmin")) {
+			userIsManager = true;
+			return userIsManager;
+		}
+		String[] arrName = distinguishedName.split("@");
+		String uri = "person/" + arrName[1];
+		Class<x_organization_assemble_express> applicationClass = x_organization_assemble_express.class;
+		ActionResponse resp;
+		try {
+			resp = ThisApplication.context().applications().getQuery(applicationClass, uri);
+			JsonObject jsonObject = resp.getData().getAsJsonObject();
+			JsonArray woRoleList = jsonObject.get("woRoleList").getAsJsonArray();
+			for(JsonElement woRole:woRoleList) {
+				String unique =  woRole.getAsJsonObject().get("unique").getAsString();
+				if(unique.equalsIgnoreCase("ManagerSystemRole") || unique.equalsIgnoreCase("BSSManagerSystemRole")) {
+					userIsManager = true;
+					return userIsManager;
+				}
+			}
+		} catch (Exception e) {
+			logger.warn("系统根据员工查询论坛用户权限角色是否是管理员!");
+			logger.error(e);			
+		}
+		return userIsManager;
+	}
 	public Boolean hasPermission(String userName, String permissionCode) {
 		RoleAndPermission roleAndPermission = null;
 		List<String> permissionCodeList = null;