Beispiel #1
0
        public void CreateRoles(IServiceProvider serviceProvider)
        {
            var roleManager = serviceProvider.GetRequiredService <RoleManager <AuthorizationRole> >();
            var userManager = serviceProvider.GetRequiredService <UserManager <AuthentificationUser> >();
            Task <IdentityResult> roleResult;
            string email = "*****@*****.**";

            string[] roles = { "Admin", "AirlineAdmin", "User", "RentACarAdmin" };
            //Check that there is an Administrator role and create if not

            foreach (var a in roles)
            {
                Task <bool> hasAdminRole = roleManager.RoleExistsAsync(a);
                hasAdminRole.Wait();

                if (!hasAdminRole.Result)
                {
                    roleResult = roleManager.CreateAsync(new AuthorizationRole(a));
                    roleResult.Wait();
                }
            }


            //Check if the admin user exists and create it if not
            //Add to the Administrator role

            Task <AuthentificationUser> testUser = userManager.FindByEmailAsync(email);

            testUser.Wait();

            if (testUser.Result == null)
            {
                var admin = new AuthentificationUser();
                admin.IsPasswordOk = true;
                admin.Email        = email;
                admin.UserName     = "******";

                Task <IdentityResult> newUser = userManager.CreateAsync(admin, "Admin@123");
                newUser.Wait();

                if (newUser.Result.Succeeded)
                {
                    Task <IdentityResult> newUserRole = userManager.AddToRoleAsync(admin, "Admin");
                    newUserRole.Wait();
                }
            }
        }
        public async Task <AirlineAdminResponse> Add(AirlineAdminAdd admin)
        {
            var newAdmin = new BookingAppBackend.Model.Users.AirlineAdmin();
            var user     = new AuthentificationUser();

            user.UserName        = admin.Username;
            newAdmin.Username    = admin.Username;
            user.Email           = admin.Email;
            newAdmin.Name        = admin.Name;
            newAdmin.LastName    = admin.LastName;
            newAdmin.PhoneNumber = admin.PhoneNumber;
            newAdmin.City        = admin.City;
            newAdmin.AirlineID   = admin.AirlineID;
            if (await manager.FindByNameAsync(admin.Username) == null)
            {
                var ok = await manager.CreateAsync(user, admin.Password);

                if (ok.Succeeded)
                {
                    ok = await manager.AddToRoleAsync(user, "AirlineAdmin");

                    if (ok.Succeeded)
                    {
                        var temp = await repo.AddAirlineAdminAsync(newAdmin);

                        if (temp.Success)
                        {
                            await unitOfWork.CompleteAsync();
                        }

                        return(temp);
                    }
                    else
                    {
                        return(new AirlineAdminResponse(ok.Errors.First().Description));
                    }
                }
                else
                {
                    return(new AirlineAdminResponse(ok.Errors.First().Description));
                }
            }
            else
            {
                return(new AirlineAdminResponse("User with given username already exists"));
            }
        }
Beispiel #3
0
        public async Task <Admin> AddGeneralAdmin(AdminAddParameters parameters)
        {
            var newAdmin = new BookingAppBackend.Model.Users.Admin();
            var user     = new AuthentificationUser();

            user.UserName        = parameters.Username;
            newAdmin.Username    = parameters.Username;
            user.Email           = parameters.Email;
            newAdmin.Name        = parameters.Name;
            newAdmin.LastName    = parameters.LastName;
            newAdmin.PhoneNumber = parameters.PhoneNumber;
            newAdmin.City        = parameters.City;

            if (await manager.FindByNameAsync(parameters.Username) == null)
            {
                var ok = await manager.CreateAsync(user, parameters.Password);

                if (ok.Succeeded)
                {
                    ok = await manager.AddToRoleAsync(user, "Admin");

                    if (ok.Succeeded)
                    {
                        var temp = await repo2.AddAdmin(newAdmin);

                        if (temp != null)
                        {
                            await unitOfWork.CompleteAsync();
                        }

                        return(temp);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
Beispiel #4
0
        public async Task <RentACarAdmin> AddRentACarAdmin(RentACarAdminAddParameters admin)
        {
            var newAdmin = new BookingAppBackend.Model.Users.RentACarAdmin();
            var user     = new AuthentificationUser();

            user.UserName         = admin.Username;
            newAdmin.Username     = admin.Username;
            user.Email            = admin.Email;
            newAdmin.Name         = admin.Name;
            newAdmin.LastName     = admin.LastName;
            newAdmin.PhoneNumber  = admin.PhoneNumber;
            newAdmin.City         = admin.City;
            newAdmin.EnterpriseId = admin.EnterpriseId;
            if (await manager.FindByNameAsync(admin.Username) == null)
            {
                var ok = await manager.CreateAsync(user, admin.Password);

                if (ok.Succeeded)
                {
                    ok = await manager.AddToRoleAsync(user, "RentACarAdmin");

                    if (ok.Succeeded)
                    {
                        var temp = await repo.AddRentACarAdmin(newAdmin);

                        if (temp != null)
                        {
                            await unitOfWork.CompleteAsync();
                        }

                        return(temp);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
        public async Task <UserResponse> Add(UserAdd data, IUrlHelper urlHelper)
        {
            var temp1 = new AuthentificationUser();

            temp1.IsPasswordOk = true;
            var temp2 = new BookingAppBackend.Model.Users.User();

            temp1.UserName     = data.Username;
            temp2.Username     = data.Username;
            temp2.Name         = data.Name;
            temp2.LastName     = data.LastName;
            temp1.Email        = data.Email;
            temp2.IsEnabled    = false;
            temp1.IsPasswordOk = true;
            if (!string.IsNullOrWhiteSpace(data.City))
            {
                temp2.City = data.City;
            }
            if (!string.IsNullOrWhiteSpace(data.PhoneNumber))
            {
                temp2.PhoneNumber = data.PhoneNumber;
            }
            if (await manager.FindByNameAsync(data.Username) == null)
            {
                var isOk = await manager.CreateAsync(temp1, data.Password);

                if (isOk.Succeeded)
                {
                    isOk = await manager.SetEmailAsync(temp1, data.Email);

                    if (isOk.Succeeded)
                    {
                        var roleOk = await manager.AddToRoleAsync(temp1, "User");

                        if (roleOk.Succeeded)
                        {
                            ////Deo za slanje konfirmacionog mail-a korisniku
                            string token = await manager.GenerateEmailConfirmationTokenAsync(temp1);

                            //var sender = new EmailSender();
                            //sender.SendConfirmEMail(data.Email, token, data.Username);
                            await manager.ConfirmEmailAsync(temp1, token);

                            try
                            {
                                var a = await repo.InsertUser(temp2);

                                if (a.Success)
                                {
                                    await unitOfWork.CompleteAsync();
                                }

                                return(a);
                            }
                            catch
                            {
                                return(new UserResponse("Something went wrong."));
                            }
                        }
                        else
                        {
                            return(new UserResponse(roleOk.Errors.First().Description));
                        }
                    }
                    else
                    {
                        return(new UserResponse(isOk.Errors.First().Description));
                    }
                }
                else
                {
                    return(new UserResponse(isOk.Errors.First().Description));
                }
            }
            else
            {
                return(new UserResponse("User with given username already exists."));
            }
        }