コード例 #1
0
ファイル: UserService.cs プロジェクト: dimaserd/Zoo
        /// <summary>
        /// Активировать или деактивировать пользователя
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> ActivateOrDeActivateUserAsync(UserActivation model)
        {
            var userDto = await UserSearcher.GetUserByIdAsync(model.Id);

            if (userDto == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден по указанному идентификатору"));
            }

            var result = UserRightsExtensions.HasRightToEditUser(userDto, User, RolesSetting);

            if (!result.IsSucceeded)
            {
                return(result);
            }

            var userRepo = GetRepository <Client>();

            var user = await userRepo.Query().FirstOrDefaultAsync(x => x.Id == model.Id);

            if (user == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден по указанному идентификатору"));
            }

            if (model.DeActivated)
            {
                if (user.DeActivated)
                {
                    return(new BaseApiResponse(false, "Пользователь уже является деактивированным"));
                }

                user.DeActivated = true;
                userRepo.UpdateHandled(user);

                return(await TrySaveChangesAndReturnResultAsync("Пользователь деактивирован"));
            }

            if (!user.DeActivated)
            {
                return(new BaseApiResponse(false, "Пользователь уже активирован"));
            }

            user.DeActivated = false;
            userRepo.UpdateHandled(user);

            return(await TrySaveChangesAndReturnResultAsync("Пользователь активирован"));
        }
コード例 #2
0
ファイル: PasswordChanger.cs プロジェクト: dimaserd/Zoo
        /// <summary>
        /// Изменить пароль администратором
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <BaseApiResponse> ChangePasswordByAdminAsync(ResetPasswordByAdminModel model)
        {
            var user = await UserManager.FindByIdAsync(model.Id);

            if (user == null)
            {
                return(new BaseApiResponse(false, "Пользователь не найден"));
            }

            var userDto = await UserSearcher.GetUserByIdAsync(user.Id);

            var result = UserRightsExtensions.HasRightToEditUser(userDto, User, RolesSetting);

            if (!result.IsSucceeded)
            {
                return(result);
            }

            return(await ChangePasswordBaseAsync(user, model.Password));
        }