public async Task <IActionResult> Create(string Email, string Password, string ConfirmPass, [Bind("VendorID,Name,Address,City,Province,Monthly,Priority,Website,PostalCode,AdPosted")] Vendor vendor) { UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider); if (Password != ConfirmPass) { return(View(vendor)); } var user = new ApplicationUser { UserName = Email, Email = Email }; var result = await _userManager.CreateAsync(user, Password); if (result.Succeeded) { var userID = user.Id; vendor.UserID = userID; var addUR = await userRoleRepo.AddUserRole(user.Email, "Vendor"); } if (ModelState.IsValid) { _context.Add(vendor); await _context.SaveChangesAsync(); return(RedirectToAction("Details", new { id = vendor.VendorID })); } return(View(vendor)); }
public async Task <object> Register([FromBody] RegisterEmployeeVM model) { var token = Request.Headers["Authorization"].ToString().Replace("Bearer ", ""); if (!PatManagerVerify.CheckIfManager(token, context)) { //if the user isn't a manager then quit the method. Only managers are able to hire new people return(null); } var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await userManager.CreateAsync(user, model.Password); if (result.Succeeded) { //add the user to the role of employee straight after being added by the manager UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(model.Email, "employee"); //now add the user details UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user.Id, model.FirstName, model.LastName); //The user is never signed in when they are registered. As they are only ever registered through the manager //creating the new user //await signInManager.SignInAsync(user, false); return(await GenerateJwtToken(model.Email, user)); } throw new ApplicationException("UNKNOWN_ERROR"); }
public void MakeUserManager([FromBody] EmployeeIdVM employee) { //This method simply strips the Employee role from the user and then adds on the Manager role UserRoleRepo repo = new UserRoleRepo(service); repo.RemoveUserRole(employee.Email, "Employee").Wait(); repo.AddUserRole(employee.Email, "Manager").Wait(); }
private async Task <bool> AddRole(string userName, string role) { UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider); if (ModelState.IsValid) { var addUR = await userRoleRepo.AddUserRole(userName, role); if (addUR) { return(true); } } return(false); }
public async Task <IActionResult> Create(UserRoleVM userRoleVM) { if (ModelState.IsValid) { var addUR = await _userRoleRepo.AddUserRole(userRoleVM.UserName, userRoleVM.Role); } try { return(RedirectToAction("Detail", "UserRole", new { userName = userRoleVM.UserName })); } catch { return(View()); } }
public async Task <IActionResult> SuperRegister(RegisterViewModel model, string returnUrl = null) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); //this code is written by myself to add user to Account table. _context.Accounts.Add(new Account { Id = user.Id, }); _context.SaveChanges(); UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider, _context); if (ModelState.IsValid) { await userRoleRepo.AddUserRole(model.Email, _context.Roles.FirstOrDefault().ToString()); } var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(model.Email, callbackUrl); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created a new account with password."); //this code is written by myself to make this user to be the admin return(RedirectToLocal(returnUrl)); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); //return RedirectToAction("ShowGoods", "Home"); }
public async Task <IActionResult> Create(UserRoleVM userRoleVM) { UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider); if (ModelState.IsValid) { var addUR = await userRoleRepo.AddUserRole(userRoleVM.Email, userRoleVM.Role); } try { return(RedirectToAction("Detail", "UserRole", new { userName = userRoleVM.Email })); } catch { return(View()); } }
public IActionResult Create(HomeVM home) { HouseholdRepo householdRepo = new HouseholdRepo(_context); if (householdRepo.CreateHousehold(home)) { var _home = householdRepo.GetHouseholdByName(home.homeName); //Role Assignment UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider); userRoleRepo.AddUserRole(User.Identity.Name, "HomeAdmin"); return(RedirectToAction("Join", _home)); } return(RedirectToAction(nameof(JoinCreateHousehold), new { errorMessage = "Failed to create the household. Try a new name, please." })); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var user = new IdentityUser { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider, _context); userRoleRepo.AddUserRole(user.Email, "Member"); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }
public IActionResult Join(HomeVM home) { HouseholdRepo householdRepo = new HouseholdRepo(_context); var _home = householdRepo.GetHouseholdByName(home.homeName); if (_home != null) { if (_home.HomeId == home.homeId) { UserRepo userRepo = new UserRepo(_context); var currentUserEmail = User.Identity.Name; var userId = userRepo.FindUserId(currentUserEmail); householdRepo.AddRoommateToHome(userId, _home.HomeId); //Role Assignment UserRoleRepo userRoleRepo = new UserRoleRepo(_serviceProvider); userRoleRepo.AddUserRole(currentUserEmail, "Roommate"); return(RedirectToAction(nameof(HomeController.Index), "Home")); } } return(RedirectToAction(nameof(JoinCreateHousehold), new { errorMessage = "Failed to join the household. Make sure the Home Name and Household Password are correct, please." })); }
public async Task SeedDataAsync() { var users = context.Users; if (users.Count() > 0) { return; } string password = "******"; var manager = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result = await userManager.CreateAsync(manager, password); if (result.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(manager.Email, "Manager"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(manager.Id, "Default", "Manager"); } var user1 = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result1 = await userManager.CreateAsync(user1, password); if (result1.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(user1.Email, "Employee"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user1.Id, "Jack", "Employee"); } var user2 = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result2 = await userManager.CreateAsync(user2, password); if (result2.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(user2.Email, "Employee"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user2.Id, "Matthew", "Employee"); } var user3 = new ApplicationUser { UserName = "******", Email = "*****@*****.**" }; var result3 = await userManager.CreateAsync(user3, password); if (result3.Succeeded) { UserRoleRepo repo = new UserRoleRepo(service); await repo.AddUserRole(user3.Email, "Employee"); UserRepo userRepo = new UserRepo(context, service); userRepo.AddUserDetails(user3.Id, "Chris", "Employee"); } }