예제 #1
0
 public IActionResult EditUser(Guid?id, string returnUrl = null)
 {
     ViewBag.ReturnUrl   = Url.IsLocalUrl(returnUrl) ? returnUrl : Url.RouteUrl("userIndex");
     ViewBag.SysRoleList = _sysRoleService.GetAllRoles().Select(o => new SelectListItem()
     {
         Value = o.Id.ToString(), Text = o.Name
     }).ToList();
     if (id != null)
     {
         var model = _sysUserService.GetById(id.Value);
         if (model == null)
         {
             return(Redirect(ViewBag.ReturnUrl));
         }
         var sysUserRole = _sysUserRoleService.GetAll().FirstOrDefault(o => o.UserId == id);
         if (!model.IsAdmin)
         {
             ViewBag.SysRoleList = _sysRoleService.GetAllRoles().Select(o => new SelectListItem()
             {
                 Value = o.Id.ToString(), Text = o.Name, Selected = (o.Id == sysUserRole.RoleId)
             }).ToList();
         }
         return(View(model));
     }
     return(View());
 }
예제 #2
0
        /// <summary>
        /// 编辑用户
        /// </summary>
        /// <param name="id">
        /// </param>
        /// <returns>
        /// </returns>
        public async Task <IActionResult> EditAsync(string id)
        {
            //编辑用户所在部门和角色
            var item = new IdentityUser();

            if (!string.IsNullOrEmpty(id))
            {
                item = await _userManager.FindByIdAsync(id);
            }

            var depid = _iDepartmentService.GetAll(a => a.SysDepartmentSysUsers.Any(b => b.SysUserId.Equals(id))).Select(a => a.Id);

            ViewBag.DepartmentId = new MultiSelectList(_iDepartmentService.GetAll().Select(a => new { a.Id, Name = "(" + a.SystemId + ")" + a.Name }), "Id", "Name", depid);

            var roleIds = _iSysUserRoleService.GetAll(a => a.UserId.Equals(id)).Select(a => a.RoleId);

            ViewBag.SysRolesId = new MultiSelectList(_sysRoleService.Roles.Select(a => new { a.Id, a.Name }), "Id", "Name", roleIds);

            var config = new MapperConfiguration(a => a.CreateMap <IdentityUser, SysUserEditModel>());

            var aa = config.CreateMapper().Map <SysUserEditModel>(item);

            return(View(aa));
        }
예제 #3
0
        /// <summary>
        /// 获取权限内的所有的菜单列表
        /// </summary>
        /// <param name="sysUser"></param>
        /// <returns></returns>
        private List <Category> GerMyCategoryList(SysUser sysUser)
        {
            var list = this._categoryService.GetAll();

            if (list == null)
            {
                return(null);
            }
            if (sysUser.IsAdmin)
            {
                return(list);
            }
            //获取权限数据
            var sysUserRoles = _sysUserRoleService.GetAll();//获取所有的用户角色信息

            if (sysUserRoles == null || !sysUserRoles.Any())
            {
                return(null);
            }
            //获取当前用户所有的角色信息
            var roleIds = sysUserRoles.Where(o => o.UserId == sysUser.Id).Select(x => x.RoleId).Distinct().ToList();

            var sysPermissions = _sysPermissionService.GetAll();//获取所有的用户角色权限信息

            if (sysPermissions == null || !sysPermissions.Any())
            {
                return(null);
            }

            var categoryIds = sysPermissions.Where(o => roleIds.Contains(o.RoleId)).Select(o => o.CategoryId).Distinct().ToList();

            if (!categoryIds.Any())
            {
                return(null);
            }
            list = list.Where(o => categoryIds.Contains(o.Id)).ToList();
            return(list);
        }
        public List <Category> GetMyCategories()
        {
            var cateList = _categoryService.GetAll();
            var user     = GetCurrentUser();

            if (user == null)
            {
                return(null);
            }
            if (user.IsAdmin)
            {
                return(cateList);
            }
            var roleList = _sysUserRoleService.GetAll();

            if (roleList == null || roleList?.Count <= 0)
            {
                return(null);
            }
            var roleIds = roleList.Where(o => o.UserId == user.UserGuid).Select(x => x.RoleId).Distinct().ToList();

            var permissionList = _sysPermissionService.GetAll();

            if (permissionList == null || permissionList.Count <= 0)
            {
                return(null);
            }
            var list = permissionList.Where(o => roleIds.Contains(o.RoleId)).Select(x => x.CategoryId).Distinct().ToList();

            if (list.Count <= 0)
            {
                return(null);
            }
            var result = cateList.Where(o => list.Contains(o.Id)).Distinct().ToList();

            return(result);
        }
예제 #5
0
        /// <summary>
        /// 私有方法,获取当前用户的方法数据
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        private List <Entities.Category> getMyCategories(Entities.SysUser user)
        {
            var list = _categoryService.GetAll();

            if (user == null)
            {
                return(null);
            }
            if (user.IsAdmin)
            {
                return(list);
            }

            //获取权限数据
            var userRoles = _sysUserRoleService.GetAll();

            if (userRoles == null || !userRoles.Any())
            {
                return(null);
            }
            var roleIds        = userRoles.Where(o => o.UserId == user.Id).Select(x => x.RoleId).Distinct().ToList();
            var permissionList = _sysPermissionServices.GetAll();

            if (permissionList == null || !permissionList.Any())
            {
                return(null);
            }

            var categoryIds = permissionList.Where(o => roleIds.Contains(o.RoleId)).Select(x => x.CategoryId).Distinct().ToList();

            if (!categoryIds.Any())
            {
                return(null);
            }
            list = list.Where(o => categoryIds.Contains(o.Id)).ToList();
            return(list);
        }