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(); }
/// <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["超级管理员"])); }
/// <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); }
/// <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); }