예제 #1
0
        private void deleteUser_BTN_Click(object sender, RoutedEventArgs e)
        {
            if (dbMethods.CheckDatabaseConnection())
            {
                if (MessageBox.Show("Are you sure you want to delete this user?", "Confirm Delete!", MessageBoxButton.YesNo) ==
                    MessageBoxResult.Yes)
                {
                    using (PubsDataContext db = new PubsDataContext())
                    {
                        Application_User expROW = users_DataGrid.SelectedItem as Application_User;

                        var completionList = new List <Application_User>(from s in db.Application_Users
                                                                         where s.Username == expROW.Username
                                                                         select s);
                        if (expROW != null && completionList.Any())
                        {
                            var completion = completionList.First();
                            db.Application_Users.DeleteOnSubmit(completion);
                            db.SubmitChanges();
                            LoadUsers(users_DataGrid);
                        }
                        else
                        {
                            LoadUsers(users_DataGrid);
                        }
                    }
                }
            }
        }
예제 #2
0
        public async Task <IActionResult> ChangePassword(UserPasswordChangeModel model)
        {
            Application_User appUser = _userManager.FindByNameAsync(model.UserName).Result;
            await _userManager.ChangePasswordAsync(appUser, model.OldPassword, model.NewPassword);

            return(Ok(new Response {
                Status = "Password Changed", Message = "Password changed successfully."
            }));
        }
예제 #3
0
        private void saveUser_BTN_Click(object sender, RoutedEventArgs e)
        {
            Application_User userROW = users_DataGrid.SelectedItem as Application_User;

            if (userROW != null)
            {
                if (dbMethods.CheckDatabaseConnection())
                {
                    using (PubsDataContext db = new PubsDataContext())
                    {
                        var completionList = new List <Application_User>(from s in db.Application_Users
                                                                         where s.Username == userROW.Username
                                                                         select s);
                        if (completionList.Count > 0)
                        {
                            var completion = completionList.First();
                            completion.Username  = userROW.Username;
                            completion.Password  = userROW.Password;
                            completion.LastName  = userROW.LastName;
                            completion.IsAdmin   = userROW.IsAdmin;
                            completion.FirstName = userROW.FirstName;
                            completion.Birthdate = userROW.Birthdate; // Fixes the issue with saving birthdates

                            db.SubmitChanges();
                            LoadUsers(users_DataGrid);
                        }
                        else
                        {
                            Application_User exp = new Application_User();

                            exp.Username  = userROW.Username;
                            exp.Password  = userROW.Password;
                            exp.LastName  = userROW.LastName;
                            exp.IsAdmin   = userROW.IsAdmin;
                            exp.FirstName = userROW.FirstName;
                            exp.Birthdate = userROW.Birthdate; // Fixes the issue with saving birthdates

                            db.Application_Users.InsertOnSubmit(exp);
                            db.SubmitChanges();
                            LoadUsers(users_DataGrid);
                        }
                    }
                }
            }
        }
        public async Task <IActionResult> RegisterAdmin([FromBody] Registration_VE model)
        {
            var userExists = await _userManager.FindByNameAsync(model.Username);

            if (userExists != null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new Response_VE {
                    Status = "Error", Message = "User already exists!"
                }));
            }

            Application_User user = new Application_User()
            {
                Email         = model.Email,
                SecurityStamp = Guid.NewGuid().ToString(),
                UserName      = model.Username
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new Response_VE {
                    Status = "Error", Message = "User creation failed! Please check user details and try again."
                }));
            }

            if (!await _roleManager.RoleExistsAsync(User_Roles.Admin))
            {
                await _roleManager.CreateAsync(new IdentityRole(User_Roles.Admin));
            }
            if (!await _roleManager.RoleExistsAsync(User_Roles.User))
            {
                await _roleManager.CreateAsync(new IdentityRole(User_Roles.User));
            }

            if (await _roleManager.RoleExistsAsync(User_Roles.Admin))
            {
                await _userManager.AddToRoleAsync(user, User_Roles.Admin);
            }

            return(Ok(new Response_VE {
                Status = "Success", Message = "User created successfully!"
            }));
        }
        public async Task <IActionResult> Register([FromBody] Registration_VE model)
        {
            try
            {
                var userExists = await _userManager.FindByNameAsync(model.Username);

                if (userExists != null)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response_VE {
                        Status = "Error", Message = "User already exists!"
                    }));
                }

                Application_User user = new Application_User()
                {
                    Email         = model.Email,
                    SecurityStamp = Guid.NewGuid().ToString(),
                    UserName      = model.Username
                };

                var result = await _userManager.CreateAsync(user, model.Password);

                if (!result.Succeeded)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response_VE {
                        Status = "Error", Message = "User creation failed! Please check user details and try again."
                    }));
                }
                else
                {
                    var roleresult = await _userManager.AddToRoleAsync(user, "Customer");
                }
                return(Ok(new Response_VE {
                    Status = "Success", Message = "User created successfully!"
                }));
            }
            catch (Exception Exc)
            {
                throw Exc;
            }
        }
예제 #6
0
        public async Task <IActionResult> CreateUserRoles([Required] string UserName, [Required] string RoleName)
        {
            var RoleManager = _serviceProvider.GetRequiredService <RoleManager <IdentityRole> >();
            var UserManager = _serviceProvider.GetRequiredService <UserManager <Application_User> >();

            //Adding Admin Role
            var roleCheck = await RoleManager.RoleExistsAsync(RoleName);

            if (!roleCheck)
            {
                //create the roles and seed them to the database
                return(StatusCode(StatusCodes.Status500InternalServerError, new Response {
                    Status = "Error", Message = "Role does not exists!"
                }));
            }
            //Assign Admin role to the main User here we have given our newly registered
            //login id for Admin management
            Application_User user = await UserManager.FindByNameAsync(UserName);

            // Add User To Role
            var userInRole = await _userManager.IsInRoleAsync(user, RoleName);

            if (!userInRole)
            {
                await UserManager.AddToRoleAsync(user, RoleName);

                return(Ok(new Response {
                    Status = "Success", Message = "Role assigned successfully!"
                }));
            }
            else
            {
                return(Ok(new Response {
                    Status = "Not added", Message = "Same role already assigned for this user."
                }));
            }
        }