示例#1
0
        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() }));
        }
示例#2
0
        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() }));
        }
示例#3
0
        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" }));
        }
示例#4
0
        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() }));
        }
示例#5
0
        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() }));
        }
示例#6
0
        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);
                }
            }
        }