public static void Authorize(int roleId, params string[] perIds) { //a.角色需要重新设置的权限ID集合。 var listNewPerIds = perIds.ToList(); //b.角色原有的授权信息。 var listOldPers = RoleAuthorizeAccess.GetList(roleId); //c.删除角色新设置和原有授权信息集合中相同的记录。 for (int i = listOldPers.Count - 1; i >= 0; i--) { if (listNewPerIds.Contains(listOldPers[i].SRAModuleId.ToString())) { listNewPerIds.Remove(listOldPers[i].SRAModuleId.ToString()); listOldPers.Remove(listOldPers[i]); } } //d.新集合中剩下的授权信息新增到数据库。 listNewPerIds.ForEach((perId) => { RoleAuthorizeAccess.Insert(new Sys_Roleauthorize() { SRARoleId = roleId, SRAModuleId = ConvertHelper.ToInt32(perId, 0), SRACreateUser = OperatorProvider.Instance.Current.UserId, SRACreateTime = DateTime.Now }); }); //e.旧集合中剩下的授权信息从数据库中删除。 listOldPers.ForEach((perObj) => { RoleAuthorizeAccess.Delete(perObj); }); }
public static List <Sys_Permission> GetList(int userId) { //a.根据用户ID查询角色ID集合 (一对多关系) var listRoleIds = UserRoleRelationAccess.GetList(userId).Select(c => c.SURRRoleId).ToList(); //b.根据角色ID查询权限ID集合 (多对多关系) var listModuleIds = RoleAuthorizeAccess.GetList().Where(c => listRoleIds.Contains(c.SRARoleId)).Select(c => c.SRAModuleId).ToList(); //c.根据权限ID集合查询所有权限实体。 return(PermissionAccess.GetList().Where(c => listModuleIds.Contains(c.Id) && c.SPIsEnabled == 1).ToList()); }
public static int Delete(params string[] primaryKeys) { //删除权限与角色的对应关系。 RoleAuthorizeAccess.Delete(primaryKeys); return(PermissionAccess.Delete(primaryKeys)); }
public static List <Sys_Roleauthorize> GetList(object roleId) { return(RoleAuthorizeAccess.GetList(roleId)); }