Example #1
0
        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);
            });
        }
Example #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());
        }
Example #3
0
 public static int Delete(params string[] primaryKeys)
 {
     //删除权限与角色的对应关系。
     RoleAuthorizeAccess.Delete(primaryKeys);
     return(PermissionAccess.Delete(primaryKeys));
 }
Example #4
0
 public static List <Sys_Roleauthorize> GetList(object roleId)
 {
     return(RoleAuthorizeAccess.GetList(roleId));
 }