public static void SetRole(int userId, List <int> roleIds) { //a.用户需要重新设置的角色ID集合。 var listNewRoleIds = roleIds.ToList(); //b.用户原有的角色信息。 var listOldRRs = UserRoleRelationAccess.GetList(userId); //c.删除用户新设置和原有用户角色关系集合中相同的记录。 for (int i = listOldRRs.Count - 1; i >= 0; i--) { if (listNewRoleIds.Contains(listOldRRs[i].SURRRoleId)) { listNewRoleIds.Remove(listOldRRs[i].SURRRoleId); listOldRRs.Remove(listOldRRs[i]); } } //d.新集合中剩下的用户角色关系新增到数据库。 listNewRoleIds.ForEach((roleId) => { UserRoleRelationAccess.Insert(new Sys_Userrolerelation() { SURRUserId = userId, SURRRoleId = roleId, SURRCreateUser = OperatorProvider.Instance.Current.UserId, SURRCreateTime = DateTime.Now }); }); //e.旧集合中剩下的用户角色关系从数据库中删除。 listOldRRs.ForEach((rrObj) => { Delete(rrObj.Id); }); }
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()); }
/// <summary> /// 逻辑删除 /// </summary> /// <param name="Id"></param> /// <returns></returns> public static int Delete(int Id) { var model = new Sys_Userrolerelation() { Id = Id, SURRDeleteMark = 1, SURRModifyUser = OperatorProvider.Instance.Current.UserId, SURRModifyTime = DateTime.Now, }; var updateColumns = new List <Sys_UserrolerelationFields>() { Sys_UserrolerelationFields.SURRDeleteMark, Sys_UserrolerelationFields.SURRModifyUser, Sys_UserrolerelationFields.SURRModifyTime }; return(UserRoleRelationAccess.Update(model, updateColumns)); }
public static List <Sys_Userrolerelation> GetList(int userId) { return(UserRoleRelationAccess.GetList(userId)); }