Example #1
0
        public async Task <IActionResult> Create(CreateUserViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            if (await userService.GetUserByUsernameAsync(model.Username) != null)
            {
                return(View(nameof(Summary), $"Username '{model.Username}' is already taken."));
            }

            User newUser = new User
            {
                Id           = Guid.NewGuid().ToString(),
                CreatedAt    = DateTime.UtcNow,
                Username     = model.Username,
                PasswordHash = passwordHasher.HashPassword(model.Password)
            };

            await userService.AddUserAsync(newUser);

            await roleService.AddUserToRoleAsync(newUser, RoleType.user);

            return(View(nameof(Summary), $"API User '{model.Username}' successfully created."));
        }
        public async Task <string> InviteWizardAsync(InviteViewModel inviteViewModel)
        {
            //Create a new Company - Database
            var companyId = await CreateCompanyAsync(inviteViewModel.CompanyName, inviteViewModel.CompanyDescription);

            //Create a new BTUser - UserManager
            var user = new AppUser
            {
                Email          = inviteViewModel.Email,
                UserName       = inviteViewModel.Email,
                FirstName      = inviteViewModel.FirstName,
                LastName       = inviteViewModel.LastName,
                EmailConfirmed = true,
                CompanyId      = companyId
            };
            var result = await _userManager.CreateAsync(user, "Xyz$098#");

            //Assign that user to a role - RoleService
            await _roleService.AddUserToRoleAsync(user, Roles.Admin.ToString());

            //Create a new project - Database
            var projectId = await CreateProjectAsync(inviteViewModel.ProjectName, inviteViewModel.ProjectDescription, companyId);

            //Assign that user to that project - ProjectService
            await _projectService.AddUserToProjectAsync(user.Id, projectId);

            return(user.Id);
        }
Example #3
0
        public async Task <IActionResult> ManageRoles(List <string> userIds, string roleName)
        {
            //Go through all the userIds one at a time
            foreach (var userId in userIds)
            {
                //Use the userId to find the whole user record
                AppUser user = await _context.Users.FindAsync(userId);

                //Make sure the user is not already in the role chosen
                if (!await _roleService.IsUserInRoleAsync(user, roleName))
                {
                    //Find all the roles the user currently occupies
                    var userRoles = await _roleService.ListUserRolesAsync(user);

                    //Go through them one at a time
                    foreach (var role in userRoles)
                    {
                        //Remove the user from any and all roles they occupy
                        await _roleService.RemoveUserFromRoleAsync(user, role);
                    }

                    //add the user to the chosen roleo
                    await _roleService.AddUserToRoleAsync(user, roleName);
                }
            }

            return(View());
        }
Example #4
0
 public async Task <ApiResponse> AddToRole([FromBody] AddToRoleRequest request)
 {
     return(await _roleService.AddUserToRoleAsync(request));
 }