Beispiel #1
0
        public async Task <IActionResult> UpdateUserStateAsync([FromRoute] string id, [FromBody] UserDto viewModel)
        {
            var user = await _userManager.FindByIdAsync(id);

            if (user != null)
            {
                var claims = await _userManager.GetClaimsAsync(user);

                var activeClaim    = claims.FirstOrDefault(_ => _.Type == "isactive");
                var newActiveClaim = new Claim("isactive", viewModel.IsActive.ToString());
                if (activeClaim != null)
                {
                    var identityResult = await _userManager.ReplaceClaimAsync(user, activeClaim, newActiveClaim);

                    if (!identityResult.Succeeded)
                    {
                        return(EasyResult.Error("修改用户状态失败"));
                    }
                }
                else
                {
                    var identityResult = await _userManager.AddClaimAsync(user, newActiveClaim);

                    if (!identityResult.Succeeded)
                    {
                        return(EasyResult.Error("修改用户状态失败"));
                    }
                }
            }

            return(EasyResult.Ok());
        }
Beispiel #2
0
        public IActionResult Add([FromBody] MenuDto viewModel)
        {
            var sameCodePermission = AdminDbContext.Menus
                                     .FirstOrDefault(_ => _.ParentId == viewModel.ParentId && _.Code == viewModel.Code);

            if (sameCodePermission != null)
            {
                return(EasyResult.Error("编码已存在"));
            }

            var sort = AdminDbContext.Menus.Count(_ => _.ParentId == viewModel.ParentId) + 1;

            var entity = new Menu
            {
                Code     = viewModel.Code,
                ParentId = viewModel.ParentId,
                Name     = viewModel.Name,
                Path     = viewModel.Path,
                Type     = viewModel.Type,
                Remarks  = viewModel.Remarks,
                Id       = Guid.NewGuid().ToString(),
                Sort     = sort,
                Icon     = viewModel.Icon
            }.OpsBeforeAdd <Menu>(HttpContext);

            AdminDbContext.Menus.Add(entity);
            AdminDbContext.SaveChanges();

            return(EasyResult.Ok());
        }
Beispiel #3
0
        public async Task <IActionResult> AddUserAsync([FromBody] UserDto viewModel)
        {
            var user = await _userManager.FindByNameAsync(viewModel.UserName);

            if (user != null)
            {
                return(EasyResult.Error("用户已存在"));
            }

            user = new IdentityUser
            {
                UserName    = viewModel.UserName,
                Email       = viewModel.Email,
                PhoneNumber = viewModel.Mobile
            };

            var addResult = await _userManager.CreateAsync(user);

            if (!addResult.Succeeded)
            {
                return(EasyResult.Error("新增用户失败"));
            }

            _userManager.PasswordHasher.HashPassword(user, viewModel.Password);

            return(EasyResult.Ok());
        }
Beispiel #4
0
        public async Task <IActionResult> GetUserByIdAsync([FromRoute] string id)
        {
            var user = await _userManager.FindByIdAsync(id);

            UserDto result = null;

            if (user != null)
            {
                var claims = await _userManager.GetClaimsAsync(user);

                var isActive = claims.FirstOrDefault(_ => _.Type == "isactive")?.Value == null
                      ? false : bool.Parse(claims.FirstOrDefault(_ => _.Type == "isactive").Value);

                var role = string.IsNullOrWhiteSpace(claims.FirstOrDefault(_ => _.Type == "role")?.Value)
                    ? "游客"
                    : claims.FirstOrDefault(_ => _.Type == "role")?.Value;

                result = new UserDto
                {
                    Id       = id,
                    Email    = user.Email,
                    IsActive = isActive,
                    Mobile   = user.PhoneNumber,
                    Role     = role,
                    UserName = user.UserName
                };
            }
            return(EasyResult.Ok(result));
        }
Beispiel #5
0
        public IActionResult MovePosition([FromRoute] string id, [FromQuery] string action)
        {
            var entity = AdminDbContext.Menus.FirstOrDefault(_ => _.Id == id);

            if (entity != null)
            {
                if (action == "up")
                {
                    var previousEntity = AdminDbContext.Menus.FirstOrDefault(_ => _.ParentId == entity.ParentId && _.Sort == entity.Sort - 1);
                    if (previousEntity != null)
                    {
                        previousEntity.Sort += 1;
                        entity.Sort         -= 1;
                    }
                    AdminDbContext.SaveChanges();
                }

                if (action == "down")
                {
                    var nextEntity = AdminDbContext.Menus.FirstOrDefault(_ => _.ParentId == entity.ParentId && _.Sort == entity.Sort + 1);
                    if (nextEntity != null)
                    {
                        nextEntity.Sort -= 1;
                        entity.Sort     += 1;
                    }
                    AdminDbContext.SaveChanges();
                }

                return(EasyResult.Ok());
            }

            return(EasyResult.Ok());
        }
Beispiel #6
0
        public async Task <IActionResult> Delete([FromRoute] string id)
        {
            var entity = await _roleManager.FindByIdAsync(id);

            if (entity != null)
            {
                await _roleManager.DeleteAsync(entity);
            }

            return(EasyResult.Ok());
        }
Beispiel #7
0
        public async Task <IActionResult> Add([FromBody] RoleDto dto)
        {
            var entity = new IdentityRole
            {
                Name = dto.Name
            };

            await _roleManager.CreateAsync(entity);

            return(EasyResult.Ok());
        }
Beispiel #8
0
        public async Task <IActionResult> Update([FromRoute] string id, [FromBody] RoleDto dto)
        {
            var entity = await _roleManager.FindByIdAsync(id);

            if (entity != null)
            {
                entity.Name = dto.Name;
                await _roleManager.UpdateAsync(entity);
            }

            return(EasyResult.Ok());
        }
Beispiel #9
0
        public IActionResult GetAll([FromQuery] string scope)
        {
            var entities = AdminDbContext.Menus.ToList();

            if (scope == "menu")
            {
                entities = entities.Where(_ => _.Type == PermissionType.菜单).ToList();
            }

            var result = ConvertEntitiesToTree(entities);

            return(EasyResult.Ok(result));
        }
Beispiel #10
0
        public async Task <IActionResult> DeleteUserAsync([FromRoute] string id)
        {
            var user = await _userManager.FindByIdAsync(id);

            if (user != null)
            {
                var result = await _userManager.DeleteAsync(user);

                if (!result.Succeeded)
                {
                    return(EasyResult.Error("删除用户失败"));
                }
            }
            return(EasyResult.Ok());
        }
Beispiel #11
0
        public async Task <IActionResult> Get([FromRoute] string id)
        {
            var entity = await _roleManager.FindByIdAsync(id);

            if (entity != null)
            {
                var result = new RoleDto
                {
                    Id   = id,
                    Name = entity.Name
                };

                return(EasyResult.Ok(result));
            }

            return(EasyResult.Ok());
        }
Beispiel #12
0
        public IActionResult List([FromQuery] int pageIndex, int pageSize, string keywords)
        {
            var roles = _roleManager.Roles;

            if (!string.IsNullOrWhiteSpace(keywords))
            {
                roles = roles.Where(_ => _.Name.Contains(keywords));
            }

            int total = roles.Count();

            int skip = (pageIndex - 1) * pageSize;

            roles = roles.Skip(skip).Take(pageSize);

            return(EasyResult.PagedList(roles, total));
        }
Beispiel #13
0
        public async Task <IActionResult> UpdateUserAsync([FromRoute] string id, [FromBody] UserDto viewModel)
        {
            var user = await _userManager.FindByIdAsync(id);

            if (user != null)
            {
                user.PhoneNumber = viewModel.Mobile;
                user.Email       = viewModel.Email;
                var result = await _userManager.UpdateAsync(user);

                if (!result.Succeeded)
                {
                    return(EasyResult.Error("更新用户失败"));
                }
            }

            return(EasyResult.Ok());
        }
Beispiel #14
0
        public async Task <IActionResult> Login([FromBody] LoginViewModel vm)
        {
            var user = await _userManager.FindByNameAsync(vm.Username);

            if (user != null)
            {
                var signInResult = await _signInManager.PasswordSignInAsync(user, vm.Password, false, false);

                if (signInResult.Succeeded)
                {
                    return(EasyResult.Ok());
                }

                return(EasyResult.Error("用户名或密码错误"));
            }

            return(EasyResult.Error("用户名或密码错误"));
        }
Beispiel #15
0
        public IActionResult Update([FromRoute] string id, [FromBody] MenuDto viewModel)
        {
            var entity = AdminDbContext.Menus.FirstOrDefault(_ => _.Id == id);

            if (entity != null)
            {
                entity.Code    = viewModel.Code;
                entity.Name    = viewModel.Name;
                entity.Path    = viewModel.Path;
                entity.Type    = viewModel.Type;
                entity.Remarks = viewModel.Remarks;
                entity.Icon    = viewModel.Icon;
                AdminDbContext.Menus.Update(entity);
                AdminDbContext.SaveChanges();
            }

            return(EasyResult.Ok());
        }
Beispiel #16
0
        public IActionResult Delete([FromRoute] string id)
        {
            var entity = AdminDbContext.Menus.FirstOrDefault(_ => _.Id == id);

            if (entity != null)
            {
                var hasChildren = AdminDbContext.Menus.Count(_ => _.ParentId == id) > 0;

                if (hasChildren)
                {
                    return(EasyResult.Error("存在子级,不允许删除"));
                }

                AdminDbContext.Menus.Remove(entity);
                AdminDbContext.SaveChanges();
            }

            return(EasyResult.Ok());
        }
Beispiel #17
0
        public async Task <IActionResult> GetUserList([FromQuery] int pageIndex, int pageSize, string keywords)
        {
            var users = _userManager.Users;

            if (!string.IsNullOrWhiteSpace(keywords))
            {
                users = users.Where(_ => _.UserName.Contains(keywords, StringComparison.CurrentCultureIgnoreCase));
            }

            int total = users.Count();

            int skip       = (pageIndex - 1) * pageSize;
            var pagedUsers = users.Skip(skip).Take(pageSize).ToList();

            var result = new List <UserDto>();

            foreach (var user in pagedUsers)
            {
                var claims = await _userManager.GetClaimsAsync(user);

                var isActive = claims.FirstOrDefault(_ => _.Type == "isactive")?.Value == null
                        ? false : bool.Parse(claims.FirstOrDefault(_ => _.Type == "isactive").Value);

                var role = string.IsNullOrWhiteSpace(claims.FirstOrDefault(_ => _.Type == "role")?.Value)
                    ? "游客"
                    : claims.FirstOrDefault(_ => _.Type == "role")?.Value;

                result.Add(new UserDto
                {
                    Id       = user.Id,
                    Mobile   = user.PhoneNumber,
                    Email    = user.Email,
                    IsActive = isActive,
                    UserName = user.UserName,
                    Role     = role
                });
            }

            return(EasyResult.PagedList(result, total));
        }
Beispiel #18
0
        public IActionResult GetById([FromRoute] string id)
        {
            var entity = AdminDbContext.Menus.FirstOrDefault(_ => _.Id == id);

            if (entity != null)
            {
                var result = new MenuDto
                {
                    Id       = entity.Id,
                    ParentId = entity.ParentId,
                    Code     = entity.Code,
                    Name     = entity.Name,
                    Path     = entity.Path,
                    Remarks  = entity.Remarks,
                    Type     = entity.Type,
                    Icon     = entity.Icon
                };

                return(EasyResult.Ok(result));
            }

            return(EasyResult.Ok());
        }