Пример #1
0
        public async Task <IResponseOutput> UpdateAsync(UserUpdateInput input)
        {
            if (!(input?.Id > 0))
            {
                return(ResponseOutput.NotOk());
            }

            var user = await _userRepository.GetAsync(input.Id);

            if (!(user?.Id > 0))
            {
                return(ResponseOutput.NotOk("用户不存在!"));
            }

            _mapper.Map(input, user);
            await _userRepository.UpdateAsync(user);

            await _userRoleRepository.DeleteAsync(a => a.UserId == user.Id);

            if (input.RoleIds != null && input.RoleIds.Any())
            {
                var roles = input.RoleIds.Select(a => new UserRoleEntity {
                    UserId = user.Id, RoleId = a
                });
                await _userRoleRepository.InsertAsync(roles);
            }

            return(ResponseOutput.Ok());
        }
        public async Task <ObjectResult> Handle(UserRoleBatchDeleteCommand request, CancellationToken cancellationToken)
        {
            var resourcePartUri = uriService.GetUriWithoutQuery().URIUpperLevel();
            var result          = new MultiStatusObjectResult();

            var userRoleIds = request.UserRoleIds.Split(",", StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < userRoleIds.Length; i++)
            {
                var userRoleId = userRoleIds[i];
                var role       = await userRoleRepository.FindAsync(userRoleId);

                if (role == null)
                {
                    result.AddResult($"{resourcePartUri}/{userRoleId}", 404, "");
                    continue;
                }

                if (role.IsDefault == EntityStateConst.IsDefault)
                {
                    var roleType = Enumeration.FromValue <Role>(role.RoleId);
                    result.AddResult($"{resourcePartUri}/{userRoleId}", 403, localizer["UserRole.CannotDeleteDefaultRole", localizer[roleType.Name]]);
                    continue;
                }

                await userRoleRepository.DeleteAsync(userRoleId, null);

                result.AddResult($"{resourcePartUri}/{userRoleId}", 200, "");
            }

            return(result.Transfer());
        }
Пример #3
0
 protected override Task DeleteByIdAsync(UserRoleKey id)
 {
     // TODO: AbpHelper generated
     return(_repository.DeleteAsync(e =>
                                    e.UserId == id.UserId &&
                                    e.RoleId == id.RoleId
                                    ));
 }
Пример #4
0
 public async Task DeleteUserRole(int id)
 {
     try
     {
         await _userRoleRepository.DeleteAsync(id);
     }
     catch (System.Exception)
     {
         throw;
     }
 }
Пример #5
0
        public async Task RemoveFromRoleAsync(User user, string roleName)
        {
            var role = await _roleRepository.SingleAsync(r => r.Name == roleName);

            var userRole = await _userRoleRepository.FirstOrDefaultAsync(ur => ur.UserId == user.Id && ur.RoleId == role.Id);

            if (userRole == null)
            {
                return;
            }

            await _userRoleRepository.DeleteAsync(userRole);
        }
        public async Task RemoveUserFromRoleAsync(TUser user, string roleName)
        {
            var role = _roleRepository.FindByName(roleName);

            if (role == null)
            {
                return;
            }

            var userRole = GetUserRole(user.Id, role.Id);

            if (userRole == null)
            {
                return;
            }

            await _userRoleRepository.DeleteAsync(userRole);
        }
        /// <summary>
        /// Removes the user from the role asynchronous.
        /// </summary>
        /// <param name="user">The user.</param>
        /// <param name="roleName">Name of the role.</param>
        /// <exception cref="System.ArgumentNullException"> user or roleName.</exception>
        public async Task RemoveFromRoleAsync(IUserPoco user, string roleName)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            if (String.IsNullOrEmpty(roleName))
            {
                throw new ArgumentNullException("roleName");
            }

            var role = await roleRepository.GetOneAsync(p => p.Name == roleName);

            var userRole = await userRoleRepository.GetOneAsync(p => p.RoleId == role.RoleId && p.UserId == user.Id);

            await userRoleRepository.DeleteAsync(userRole);
        }
Пример #8
0
        /// <summary>
        /// 授予或移除用户的角色
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <ApiResult> GrantOrRemoveUserRole(GrantOrRemoveUserRoleInput input)
        {
            var userTask     = _userRepository.FirstOrDefaultAsync(input.UserId);
            var roleTask     = _roleRepository.FirstOrDefaultAsync(input.RoleId);
            var userRoleTask =
                _userRolerepository.FirstOrDefaultAsync(i => i.UserId == input.UserId && i.RoleId == input.RoleId);

            var(user, role, userRole) = await(userTask, roleTask, userRoleTask);

            if (role == null)
            {
                return(new ApiResult().Error("无法找到该角色!"));
            }

            if (user == null)
            {
                return(new ApiResult().Error("无法找到该用户!"));
            }
            if (input.IsGrant)
            {
                if (userRole == null)
                {
                    await _userRolerepository.InsertAsync(new UserRole
                    {
                        CreationTime = DateTime.Now,
                        Id           = Guid.NewGuid().ToString(),
                        UserId       = input.UserId,
                        RoleId       = input.RoleId,
                        WebSiteId    = user.WebSiteId
                    });
                }
            }
            else
            {
                if (userRole != null)
                {
                    await _userRolerepository.DeleteAsync(userRole);
                }
            }
            return(new ApiResult().Success());
        }
Пример #9
0
 public async Task DeleteAsync(int id)
 {
     await repo.DeleteAsync(id);
 }
Пример #10
0
        public async Task DeleteAsync(int id)
        {
            await _repository.DeleteAsync(id);

            await _unitOfWork.SaveChangesAsync();
        }
Пример #11
0
 /// <summary>
 /// 删除用户角色
 /// </summary>
 /// <param name="Id"></param>
 /// <returns></returns>
 public async Task DeleteUserRole(int Id)
 {
     await userRoleRepository.DeleteAsync(Id);
 }
 public async Task DeleteAsync(UserRole role)
 {
     await _roleRepo.DeleteAsync(MapTo <UserRoleDB>(role));
 }