Esempio n. 1
0
        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);
            });
        }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
        /// <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));
        }
Esempio n. 4
0
 public static List <Sys_Userrolerelation> GetList(int userId)
 {
     return(UserRoleRelationAccess.GetList(userId));
 }