Esempio n. 1
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= this.Url.Content("~/");
            this.ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList();
            if (!this.ModelState.IsValid)
            {
                return(Page());
            }

            var roleList = new[] { "Admin", "Employee", "Driver" };

            foreach (var roleName in roleList)
            {
                var roleExist = await _roleManager.RoleExistsAsync(roleName);

                if (!roleExist)
                {
                    await _roleManager.CreateAsync(new IdentityRole(roleName));
                }
            }

            var claimsToAdd = new List <Claim>
            {
                new Claim(ClaimTypes.GivenName, this.Input.Name),
                new Claim(ClaimTypes.Surname, this.Input.LastName)
            };

            var user = new SVSUser
            {
                UserName = this.Input.Username, Email = this.Input.Email, PhoneNumber = this.Input.PhoneNumber
            };
            var result = await _userManager.CreateAsync(user, this.Input.Password);

            if (result.Succeeded)
            {
                await _userManager.AddClaimsAsync(user, claimsToAdd);

                if (this.Input.Username == "Admin")
                {
                    await _userManager.AddToRoleAsync(user, "Admin");
                }
                else
                {
                    await _userManager.AddToRoleAsync(user, this.Input.Role);
                }

                return(RedirectToPage("./Added", new { User = user.UserName }));
            }

            foreach (var error in result.Errors)
            {
                this.ModelState.AddModelError(string.Empty, error.Description);
            }


            return(Page());
        }
Esempio n. 2
0
        private async Task LoadAsync(SVSUser user)
        {
            var email = await _userManager.GetEmailAsync(user);
            this.Email = email;

            this.Input = new InputModel
            {
                NewEmail = email
            };

            this.IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);
        }
Esempio n. 3
0
 public string GetName(SVSUser user)
 {
     return(_userManager.GetClaimsAsync(user).
            Result.Where(x => x.Type == ClaimTypes.GivenName).
            Select(x => x.Value).
            Single() +
            " " +
            _userManager.GetClaimsAsync(user).
            Result.Where(x => x.Type == ClaimTypes.Surname).
            Select(x => x.Value).
            Single());
 }
Esempio n. 4
0
        private async Task LoadAsync(SVSUser user)
        {
            var userName = await _userManager.GetUserNameAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            var email = await _userManager.GetEmailAsync(user);

            var roles = await _userManager.GetRolesAsync(user);

            var claims = await _userManager.GetClaimsAsync(user);

            this.Username    = userName;
            this.FirstName   = claims.First(x => x.Type == ClaimTypes.GivenName).Value;
            this.LastName    = claims.First(x => x.Type == ClaimTypes.Surname).Value;
            this.PhoneNumber = phoneNumber;
            this.Email       = email;
            this.Role        = roles.FirstOrDefault();
        }
Esempio n. 5
0
 public string GetRole(SVSUser user)
 {
     return(_userManager.GetRolesAsync(user).Result.First());
 }