Beispiel #1
0
        public ActionResult Create(ExtendedUserCustom model)
        {
            var user = new ApplicationUser {
                UserName = model.Email.Trim(), Email = model.Email.Trim(), FullName = model.FullName.Trim(), MonthIntake = model.MonthIntake, YearIntake = model.YearIntake
            };

            try
            {
                var adminUserCreateResult = UserManager.Create(user, model.Password);

                if (adminUserCreateResult.Succeeded == true)
                {
                    string strNewRole = Convert.ToString(Request.Form["Roles"]);
                    if (strNewRole != "0")
                    {
                        //put user in role
                        UserManager.AddToRole(user.Id, strNewRole);
                    }

                    return(Redirect("~/Admin").WithSuccess("User created successfully!"));
                }
                else
                {
                    ViewBag.Roles = GetAllRolesAsSelectList();
                    //ModelState.AddModelError(string.Empty, @"Error: Failed to create user. Check Role constraints.");
                    return(View(model).WithError("Failed to create user. Check role contrainsts."));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Roles = GetAllRolesAsSelectList();
                ModelState.AddModelError(string.Empty, @"Error: " + ex.Message);
                return(View(model));
            }
        }
Beispiel #2
0
        public ActionResult Create()
        {
            var objUserExtended = new ExtendedUserCustom();

            ViewBag.Roles = GetAllRolesAsSelectList();

            return(View(objUserExtended));
        }
Beispiel #3
0
        public ActionResult DeleteRole(string roleName)
        {
            string userName = Request.QueryString["Email"].ToString();

            try
            {
                if ((userName == null) || (roleName == null))
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }

                userName = userName.ToLower();

                // Check that we have an actual user
                ExtendedUserCustom objExpandedUser = GetUser(userName);

                if (objExpandedUser == null)
                {
                    return(HttpNotFound());
                }

                if (userName.ToLower() ==
                    this.User.Identity.Name.ToLower() && roleName == "Administrator")
                {
                    ModelState.AddModelError(string.Empty,
                                             "Error: Cannot delete Administrator Role for the current user");
                }

                // Go get the User
                ApplicationUser user = UserManager.FindByName(userName);
                // Remove User from role
                UserManager.RemoveFromRoles(user.Id, roleName);
                UserManager.Update(user);

                ViewBag.AddRole = new SelectList(RolesUserIsNotIn(userName));

                var objUserAndRoles = GetUserAndRoles(user.Email);

                return(RedirectToAction("EditRoles", objUserAndRoles).WithSuccess("Role deleted successfully!"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex);

                ViewBag.AddRole = new SelectList(RolesUserIsNotIn(userName));

                var objUserAndRolesDTO =
                    GetUserAndRoles(userName);

                return(View("EditRoles", objUserAndRolesDTO));
            }
        }
Beispiel #4
0
        private void DeleteUser(ExtendedUserCustom extUser)
        {
            var user = UserManager.FindByEmail(extUser.Email);

            //not found?
            if (user == null)
            {
                throw new Exception("User not found.");
            }

            UserManager.RemoveFromRoles(user.Id, UserManager.GetRoles(user.Id).ToArray());
            UserManager.Update(user);
            UserManager.Delete(user);
        }
Beispiel #5
0
        public ActionResult ListStudents()
        {
            Session["email"] = null;

            var colUsers = new List <ExtendedUserCustom>();

            //filter user with tutor's assigned group only
            var tutorId = User.Identity.GetUserId();

            List <byte> tutorGroups;

            if (User.IsInRole("Administrator"))
            {
                //display all students
                tutorGroups = _context.GroupTutorModels.Select(m => m.GroupId).ToList();
            }
            else
            {
                //display by group/tutor relation
                tutorGroups = _context.GroupTutorModels.Where(m => m.TutorId == tutorId).Select(m => m.GroupId).ToList();
            }



            var users = UserManager.Users.ToList();

            foreach (var item in users)
            {
                if (tutorGroups.Count == 0 || tutorGroups.Contains(item.GroupId))
                {
                    var user = new ExtendedUserCustom
                    {
                        Email         = item.Email,
                        FullName      = item.FullName,
                        GroupId       = item.GroupId,
                        MonthIntake   = item.MonthIntake,
                        YearIntake    = item.YearIntake,
                        ProgressValue = item.OverallProgress
                    };
                    colUsers.Add(user);
                }
            }

            //get group list for dropdownlist
            ViewBag.Groups = _context.GroupModels.Where(m => m.IsRemoved == false)
                             .OrderByDescending(m => m.CreatedDateTime).ToList();

            return(View(colUsers));
        }
Beispiel #6
0
        private ExtendedUserCustom UpdateUser(ExtendedUserCustom extUser)
        {
            var result = UserManager.FindByEmail(extUser.Email);

            //not found
            if (result == null)
            {
                throw new Exception("User not found.");
            }

            result.Email       = extUser.Email.Trim();
            result.FullName    = extUser.FullName.Trim();
            result.GroupId     = extUser.GroupId;
            result.MonthIntake = extUser.MonthIntake;
            result.YearIntake  = extUser.YearIntake;
            //is account locked? unlock it
            if (UserManager.IsLockedOut(result.Id))
            {
                UserManager.ResetAccessFailedCount(result.Id);
            }

            UserManager.Update(result);

            //was a password sent across?
            if (!string.IsNullOrEmpty(extUser.Password))
            {
                //remove current password
                var removePassword = UserManager.RemovePassword(result.Id);
                if (removePassword.Succeeded)
                {
                    //add new password
                    var AddPassword = UserManager.AddPassword(
                        result.Id,
                        extUser.Password
                        );

                    if (AddPassword.Errors.Count() > 0)
                    {
                        throw new Exception(AddPassword.Errors.FirstOrDefault());
                    }
                }
            }

            return(extUser);
        }
Beispiel #7
0
        private ExtendedUserCustom GetUser(string email)
        {
            var objExtUser = new ExtendedUserCustom();
            var result     = UserManager.FindByEmail(email);

            //not found throw exception
            if (result == null)
            {
                throw new Exception("User not found.");
            }

            objExtUser.Email       = result.Email;
            objExtUser.FullName    = result.FullName;
            objExtUser.GroupId     = result.GroupId;
            objExtUser.MonthIntake = result.MonthIntake;
            objExtUser.YearIntake  = result.YearIntake;

            return(objExtUser);
        }
Beispiel #8
0
        public ActionResult EditUser(ExtendedUserCustom extUser)
        {
            try
            {
                if (extUser == null)
                {
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
                }
                var objExtendedUser = UpdateUser(extUser);
                if (objExtendedUser == null)
                {
                    return(HttpNotFound());
                }

                return(Redirect("~/Admin").WithSuccess("User updated successfully!"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, @"Error: " + ex.Message);
                return(View("EditUser", GetUser(extUser.Email)));
            }
        }
Beispiel #9
0
        public ActionResult Index(string searchKeyword, string currentFilter, int?page)
        {
            Session["email"] = null;

            try
            {
                var colUsers = new List <ExtendedUserCustom>();

                var result = UserManager.Users
                             .OrderBy(c => c.FullName)
                             .ToList();

                foreach (var item in result)
                {
                    var user = new ExtendedUserCustom
                    {
                        Email       = item.Email,
                        FullName    = item.FullName,
                        GroupId     = item.GroupId,
                        MonthIntake = item.MonthIntake,
                        YearIntake  = item.YearIntake
                    };
                    colUsers.Add(user);
                }

                //get group list for dropdown
                ViewBag.Groups = _context.GroupModels.Where(m => m.IsRemoved == false)
                                 .OrderByDescending(m => m.CreatedDateTime).ToList();

                return(View(colUsers));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(string.Empty, "Error: " + ex.Message);
                var colUserExtendeds = new List <ExtendedUserCustom>();
                return(View(colUserExtendeds));
            }
        }