示例#1
0
        protected override void Seed(Entities context)
        {
            var user = new SYS_USER()
            {
                ACCOUNT  = "admin",
                PASSWORD = new AESCrypt().Encrypt("pai415926")
            };

            context.SYS_USER.Add(user);
            context.SaveChanges();
        }
示例#2
0
        /// <summary>
        /// 是否超级管理员
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public bool IsAdmin(int userId)
        {
            //通过用户ID获取角色
            Domain.SYS_USER entity = this.Get(p => p.ID == userId);
            if (entity == null)
            {
                return(false);
            }
            var roles = entity.SYS_USER_ROLE.Select(p => new Domain.SYS_ROLE
            {
                ID = p.SYS_ROLE.ID
            });

            return(roles.ToList().Any(item => item.ID == ClsDic.DicRole["超级管理员"]));
        }
示例#3
0
        /// <summary>
        /// 根据用户信息获取用户所有的权限
        /// </summary>
        private List <Domain.SYS_PERMISSION> GetPermissionByUser(Domain.SYS_USER users)
        {
            //1、超级管理员拥有所有权限
            if (IsAdmin(users.ID))
            {
                return(PermissionManage.LoadListAll(null));
            }
            //2、普通用户,合并当前用户权限与角色权限
            var perlist = new List <Domain.SYS_PERMISSION>();

            //2.1合并用户权限
            perlist.AddRange(users.SYS_USER_PERMISSION.Select(p => p.SYS_PERMISSION).ToList());
            //2.2合同角色权限
            ////todo:经典多对多的数据查询Linq方法
            perlist.AddRange(users.SYS_USER_ROLE.Select(p => p.SYS_ROLE.SYS_ROLE_PERMISSION.Select(c => c.SYS_PERMISSION)).SelectMany(c => c.Select(e => e)).Cast <Domain.SYS_PERMISSION>().ToList());
            //3、去重
            ////todo:通过重写IEqualityComparer<T>实现对象去重
            perlist = perlist.Distinct(new PermissionDistinct()).ToList();
            return(perlist);
        }
示例#4
0
        /// <summary>
        /// 根据用户构造用户基本信息
        /// </summary>
        public Account GetAccountByUser(Domain.SYS_USER users)
        {
            if (users == null)
            {
                return(null);
            }
            //用户授权--->注意用户的授权是包括角色权限与自身权限的
            var permission = GetPermissionByUser(users);
            //用户角色
            var role = users.SYS_USER_ROLE.Select(p => p.SYS_ROLE).ToList();
            //用户部门
            var dpt = users.SYS_USER_DEPARTMENT.Select(p => p.SYS_DEPARTMENT).ToList();
            //用户岗位
            var post = users.SYS_POST_USER.ToList();
            //用户主部门
            var dptInfo = this.DepartmentManage.Get(p => p.ID == users.DPTID);
            //用户模块
            var     module  = permission.Select(p => p.SYS_MODULE).ToList().Distinct(new ModuleDistinct()).ToList();
            Account account = new Account()
            {
                Id          = users.ID,
                Name        = users.NAME,
                LogName     = users.ACCOUNT,
                PassWord    = users.PASSWORD,
                IsAdmin     = IsAdmin(users.ID),
                DptInfo     = dptInfo,
                Dpt         = dpt,
                Face_Img    = users.FACE_IMG,
                Permissions = permission,
                Roles       = role,
                PostUser    = post,
                Modules     = module
            };

            return(account);
        }