コード例 #1
0
ファイル: IdentityService.cs プロジェクト: Nghinh-Tri/TFW
        public async Task AddUserRolesAsync(ChangeUserRolesBaseModel model)
        {
            #region Validation
            var userInfo       = BusinessContext.Current?.PrincipalInfo;
            var validationData = new ValidationData();

            // validation logic here

            if (!validationData.IsValid)
            {
                throw validationData.BuildException();
            }
            #endregion

            var appUser = await _userManager.FindByNameAsync(model.Username);

            if (appUser == null)
            {
                throw AppValidationException.From(ResultCode.EntityNotFound);
            }

            var result = await _userManager.AddToRolesAsync(appUser, model.Roles);

            if (result.Succeeded)
            {
                return;
            }

            foreach (var err in result.Errors)
            {
                validationData.Fail(err.Description, ResultCode.Identity_FailToChangeUserRoles, err);
            }

            throw validationData.BuildException();
        }
コード例 #2
0
        public async Task RemoveUserRolesAsync(ChangeUserRolesBaseModel model)
        {
            #region Validation
            var userInfo       = contextProvider.BusinessContext.PrincipalInfo;
            var validationData = new ValidationData(resultLocalizer);

            // validation logic here

            if (!validationData.IsValid)
            {
                throw validationData.BuildException();
            }
            #endregion

            var appUser = await _userManager.FindByNameAsync(model.Username);

            if (appUser == null)
            {
                throw AppValidationException.From(resultLocalizer, ResultCode.EntityNotFound);
            }

            var result = await _userManager.RemoveFromRolesAsync(appUser, model.Roles);

            if (result.Succeeded)
            {
                return;
            }

            foreach (var err in result.Errors)
            {
                validationData.Fail(code: ResultCode.Identity_FailToChangeUserRoles, data: err);
            }

            throw validationData.BuildException();
        }
コード例 #3
0
        public async Task <IActionResult> RemoveUserRoles(ChangeUserRolesBaseModel model)
        {
            await _identityService.RemoveUserRolesAsync(model);

            return(NoContent());
        }