public async Task <IActionResult> Register([FromBody] AfricanFarmersCommodities.Models.UserDetails userDetails) { if (userDetails.password != userDetails.repassword) { ModelState.AddModelError(string.Empty, "Password don't match"); return(BadRequest(new{ Error = "Passwords don't match", IsRegistered = false })); } if (string.IsNullOrEmpty(userDetails.mobileNumber)) { ModelState.AddModelError(string.Empty, "Mobile Number Required"); return(BadRequest(new { Error = "Mobile Number Required", IsRegistered = false })); } var newUser = new User { Username = userDetails.emailAddress, Email = userDetails.emailAddress, MobileNumber = userDetails.mobileNumber, FirstName = userDetails.firstName, LastName = userDetails.lastName, CreateTime = DateTime.Now, IsActive = false, IsLockedOut = false }; UserInteractionResults userCreationResult = await _userService.CreateAsync(newUser, userDetails.password); if (userCreationResult != UserInteractionResults.Succeeded) { ModelState.AddModelError(userCreationResult.ToString(), userCreationResult.ToString()); return(Ok(new { IsRegistered = false, ErrorMessage = userCreationResult.ToString() })); } return(Ok(new { IsRegistered = true, IsAdministrator = false, Message = UserInteractionResults.Succeeded.ToString() })); }
public async Task <IActionResult> CreateRole([FromBody] AfricanFarmersCommodities.Models.UserRole role) { try { var newRole = _roleService.GetAllRoles().Result.FirstOrDefault(p => p.RoleName.ToLower().Equals(role.role.ToLower().Trim())); if (newRole == null) { UserInteractionResults result = await _roleService.CreateAsync(new AfricanFarmersCommodities.Domain.Role { RoleName = role.role }); if (result == UserInteractionResults.Succeeded) { return(Ok(new { Message = UserInteractionResults.Succeeded.ToString() })); } } } catch (Exception ex) { throw ex; } return(BadRequest(new { ErrorMessage = UserInteractionResults.Failed.ToString() })); }
public async Task <IActionResult> RemoveUserFromRole([FromBody] AfricanFarmersCommodities.Models.UserRole userRole) { var user = await _userService.FindByEmailAsync(userRole.email); var userInRole = false; if (user != null) { userInRole = await _userService.IsUserInRoleAsync(user.Email.ToLower(), userRole.role.ToLower()); } if (userInRole) { UserInteractionResults result = await _userService.RemoveFromRolesAsync(user, new string[] { userRole.role }); return(Ok(new { Result = result.ToString() })); } return(BadRequest(new { Result = UserInteractionResults.Failed.ToString(), ErrorMessage = "Failed to remove user from Role" })); }
public async Task <IActionResult> AddUserToRole([FromBody] AfricanFarmersCommodities.Models.UserRole userRole) { var user = await _userService.FindByEmailAsync(userRole.email); var isUserInrole = false; if (user != null) { isUserInrole = await _userService.IsUserInRoleAsync(user.Email.ToLower(), userRole.role.ToLower()); } if (!isUserInrole) { UserInteractionResults result = await _userService.AddToRoleAsync(user, userRole.role); return(Json(new { Result = result.ToString() })); } return(Ok(new { Message = UserInteractionResults.Failed.ToString() })); }
private async Task <IActionResult> CreateAuthoriseUsingLoginCredentials(AfricanFarmersCommodities.Models.UserDetails userDetails) { var user = await _userService.FindByEmailAsync(userDetails.emailAddress); if (user == null) { ModelState.AddModelError(string.Empty, "Invalid login"); return(BadRequest(new { IsLoggedIn = false, ErrorMessage = "Invalid login" })); } UserInteractionResults result = await _userService.PasswordSignInAsync(user, userDetails.password, isPersistent : userDetails.keepLoggedIn, lockoutOnFailure : false); if (result != UserInteractionResults.Succeeded) { ModelState.AddModelError(string.Empty, "Invalid login"); return(BadRequest(new { IsLoggedIn = false, ErrorMessage = "Invalid Login" })); } else if (result == UserInteractionResults.Succeeded) { var tmpUser = await _userService.FindByNameAsync(user.Username); var userRoles = await _roleService.FindByUserNameAsync(tmpUser.Username); var authToken = await _userService.AddUserRolesClaimAsync(tmpUser.Username, userRoles); tmpUser.Token = authToken; _unitOfWork.SaveChanges(); var isAdministrator = await _userService.IsUserInRoleAsync(user.Username.ToLower(), "administrator"); return(Ok(new { AuthToken = authToken, IsLoggedIn = true, IsAdministrator = isAdministrator })); } return(Ok(new { IsLoggedIn = false, IsAdministrator = false, Message = "Failed to Login!", Result = result.ToString() })); }
public async Task CreateRolesAsync() { using (var scope = _serviceProvider.CreateScope()) { UserService _userService = scope.ServiceProvider.GetService <IUserService>() as UserService; RoleService _roleService = scope.ServiceProvider.GetService <IRoleService>() as RoleService; var serviceEndPoint = scope.ServiceProvider.GetService <AfricanFarmersCommodities.ServicesEndPoint.GeneralSevices.ServicesEndPoint>(); var adminRole = new Role(); adminRole.RoleName = "Administrator"; UserInteractionResults result = UserInteractionResults.Failed; if (await _roleService.FindByNameAsync(adminRole.RoleName) == null) { result = await _roleService.CreateAsync(adminRole); } if (await _roleService.FindByNameAsync("StandardUser") == null) { var standardUser = new Role(); standardUser.RoleName = "StandardUser"; result = await _roleService.CreateAsync(standardUser); } if (await _roleService.FindByNameAsync("Guest") == null) { var roleGuest = new Role(); roleGuest.RoleName = "Guest"; result = await _roleService.CreateAsync(roleGuest); } if (await _roleService.FindByNameAsync("Farmer") == null) { var farmer = new Role(); farmer.RoleName = "Farmer"; result = await _roleService.CreateAsync(farmer); } if (await _roleService.FindByNameAsync("Wholesaler") == null) { var wholesaler = new Role(); wholesaler.RoleName = "Wholesaler"; result = await _roleService.CreateAsync(wholesaler); } if (await _roleService.FindByNameAsync("Driver") == null) { var driver = new Role(); driver.RoleName = "Driver"; result = await _roleService.CreateAsync(driver); } if (await _roleService.FindByNameAsync("Retailer") == null) { var retailer = new Role(); retailer.RoleName = "Retailer"; result = await _roleService.CreateAsync(retailer); } if (await _roleService.FindByNameAsync("Guest") == null) { var roleGuest = new Role(); roleGuest.RoleName = "Guest"; result = await _roleService.CreateAsync(roleGuest); } var defaultAddress = new Address { AddressLine1 = "MartinLayooInc Software Ltd.", AddressLine2 = "Unit 3, 2 St. Johns Terrace", Country = "United Kingdom", PostCode = "W10", PhoneNumber = "07809773365", Town = "London", DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; serviceEndPoint.CreateAddress(defaultAddress); var locationDefault = new Location { LocationName = "MartinLayooInc HQ", AddressId = defaultAddress.AddressId, DateCreated = DateTime.Now, DateUpdated = DateTime.Now }; serviceEndPoint.CreateLocation(locationDefault); var companyDefault = new Company { CompanyName = "MartinLayooInc Software", CompanyPhoneNUmber = "07809773365", DateCreated = DateTime.Now, DateUpdated = DateTime.Now, LocationId = locationDefault.LocationId }; serviceEndPoint.CreateCompany(companyDefault); var user = new User(); user.Username = "******"; user.Email = "*****@*****.**"; user.MobileNumber = "07809773365"; user.FirstName = "Administrator"; user.LastName = "Administrator"; user.IsActive = true; user.IsLockedOut = false; user.CompanyId = companyDefault.CompanyId; string userPWD = "d3lt4X!505"; var userChecked = await _userService.FindByEmailAsync(user.Email); if (userChecked == null) { UserInteractionResults chkUser = await _userService.CreateAsync(user, userPWD); } var userRoles = _roleService.GetAllUserRolesAsString(user.Username); if (!userRoles.Any() || !userRoles.Where(r => r.ToLower().Equals(adminRole.RoleName.ToLower())).Any()) { await _userService.AddToRoleAsync(user, adminRole.RoleName); } } }