Esempio n. 1
0
        public ActionResult DeleteConfirmed(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            using (var DB = new DontFretEntities())
            {
                /// gets user from database
                var user = DB.Users.Where(u => u.Id.Equals(id)).First();


                /// check if user exists
                if (user == null)
                {
                    return(HttpNotFound());
                }


                ///delete user and save changes
                DB.Users.Remove(user);
                DB.SaveChanges();

                return(View(user));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Edits roles in the DB
        /// </summary>
        /// <param name="id"></param>
        /// <returns>View with edited roles</returns>
        public ActionResult Edit(string id)
        {
            using (var DB = new DontFretEntities())
            {
                ///validate Id
                if (id == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                ///gets user from the database
                var user = DB.Users.Where(u => u.Id == id).First();

                ///check if user exists already
                if (user == null)
                {
                    return(HttpNotFound());
                }

                ///creates a new view model
                var ViewModel = new EditUserViewModel();
                ViewModel.User  = user;
                ViewModel.Roles = GetUserRoles(user, DB);

                ///pass the model to the view
                return(View(ViewModel));
            }
        }
Esempio n. 3
0
        /// <summary>
        /// GET: User Roles from DB
        /// </summary>
        /// <param name="user"></param>
        /// <param name="dB"></param>
        /// <returns>List of roles</returns>
        private List <Role> GetUserRoles(ApplicationUser user, DontFretEntities dB)
        {
            ///create user manager
            var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();

            ///get all application roles
            var roles = dB.Roles.Select(r => r.Name).OrderBy(r => r).ToList();
            ///for each application role, check if the user has that role
            var userRoles = new List <Role>();

            foreach (var roleName in roles)
            {
                var role = new Role {
                    Name = roleName
                };

                if (userManager.IsInRole(user.Id, roleName))
                {
                    role.isSelected = true;
                }

                userRoles.Add(role);
            }

            ///returns a list with all roles
            return(userRoles);
        }
Esempio n. 4
0
        /// <summary>
        /// GET: User/List
        /// </summary>
        /// <returns>view with a list of users</returns>
        public ActionResult List()
        {
            using (var DB = new DontFretEntities())
            {
                var users = DB.Users.ToList();

                var admins = GetAdminUserNames(users, DB);
                ViewBag.Admins = admins;

                return(View(users));
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Gets a hashset of admin details
        /// </summary>
        /// <param name="users"></param>
        /// <param name="context"></param>
        /// <returns>A hashSet of Admins</returns>
        private HashSet <string> GetAdminUserNames(List <ApplicationUser> users, DontFretEntities context)
        {
            var UserManager = new UserManager <ApplicationUser>(
                new UserStore <ApplicationUser>(context));

            var Admins = new HashSet <string>();

            foreach (var user in users)
            {
                if (UserManager.IsInRole(user.Id, "Store Manager") || (UserManager.IsInRole(user.Id, "Assistant Manager")))
                {
                    Admins.Add(user.UserName);
                }
            }
            return(Admins);
        }
Esempio n. 6
0
        /// <summary>
        /// SET: user roles for admin, user or suspended
        /// </summary>
        /// <param name="model"></param>
        /// <param name="user"></param>
        /// <param name="dB"></param>
        private void SetUserRoles(EditUserViewModel model, ApplicationUser user, DontFretEntities dB)
        {
            var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();

            foreach (var role in model.Roles)
            {
                if (role.isSelected)
                {
                    userManager.AddToRole(user.Id, role.Name);
                }
                else if (!role.isSelected)
                {
                    userManager.RemoveFromRole(user.Id, role.Name);
                }
            }
        }
Esempio n. 7
0
        public ActionResult Edit(string id, EditUserViewModel viewModel)
        {
            ///checks if modelState is valid
            if (ModelState.IsValid)
            {
                using (var DB = new DontFretEntities())
                {
                    ///get user from database
                    var user = DB.Users.FirstOrDefault(u => u.Id == id);

                    ///check if user exists already
                    if (user == null)
                    {
                        return(HttpNotFound());
                    }

                    ///if password field is not empty change password to new value
                    if (!string.IsNullOrEmpty(viewModel.Password))
                    {
                        var hasher       = new PasswordHasher();
                        var passwordHash = hasher.HashPassword(viewModel.Password);
                        user.PasswordHash = passwordHash;
                    }

                    ///set user property values
                    user.Email    = viewModel.User.Email;
                    user.FullName = viewModel.User.FullName;
                    user.UserName = viewModel.User.Email;
                    this.SetUserRoles(viewModel, user, DB);

                    ///save changes
                    DB.Entry(user).State = EntityState.Modified;
                    DB.SaveChanges();

                    return(RedirectToAction("List"));
                }
            }

            return(View(viewModel));
        }