Ejemplo n.º 1
0
        public async Task <ActionResult> ManageRole(string roleID)
        {
            AppRole appRole = await RoleManager.FindByIdAsync(roleID);

            if (appRole == null)
            {
                ViewBag.Error = $"Error occurred while looking for role with ID = {roleID}";
                return(View("Error"));
            }

            UserInRoleViewModel userList = new UserInRoleViewModel();

            userList.RoleID   = appRole.Id;
            userList.RoleName = appRole.Name;

            foreach (AppUser user in UserManager.Users)
            {
                userList.Users.Add(user.UserName);
                if (await UserManager.IsInRoleAsync(user.Id, appRole.Name))
                {
                    userList.IsInRole.Add(true);
                }
                else
                {
                    userList.IsInRole.Add(false);
                }
            }
            return(View(userList));
        }
Ejemplo n.º 2
0
        public ActionResult Item(Guid?id)
        {
            if (!id.HasValue)
            {
                throw new HttpException(HttpStatusCode.NotFound.ToInt(), Definition.Message.Item.NotFound);
            }

            var _user = _userRepo.GetById(id.Value);

            if (_user == null)
            {
                throw new HttpException(HttpStatusCode.NotFound.ToInt(), Definition.Message.Item.NotFound);
            }

            var _userRoles = (from rr in _roleRepo.GetAll()
                              join uir in _userInRoleRepo.GetAll(x => x.UserId == id) on rr.ID equals uir.RoleId into luir
                              from uir in luir.DefaultIfEmpty()
                              select new SelectListItem
            {
                Text = rr.Name,
                Value = rr.ID.ToString(),
                Selected = uir.ID != null
            }).ToList();

            var result = new UserInRoleViewModel(id.Value, string.Format("{0} {1}", _user.FirstName, _user.LastName), _userRoles);

            return(View(result));
        }
        public async Task <IActionResult> Edit([Bind("Username, UserRoles")] UserInRoleViewModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            var user = await _context.Users.FirstOrDefaultAsync(u => u.UserName == model.Username);

            if (user == null)
            {
                return(NotFound());
            }

            var roles = await _userManager.GetRolesAsync(user);

            // remove old roles
            await _userManager.RemoveFromRolesAsync(user, roles);

            // add new roles
            await _userManager.AddToRolesAsync(user, model.UserRoles);

            // special case - always have a in admin
            if (user.UserName == "a")
            {
                await _userManager.AddToRoleAsync(user, "Admin");
            }

            return(View(model));
        }
        // GET: UserInRoles/Edit/5
        public async Task <IActionResult> Edit(String id)
        {
            if (id == null)
            {
                return(BadRequest());
            }

            var user = await _context.Users.FirstOrDefaultAsync(u => u.UserName == id);

            if (user == null)
            {
                return(NotFound());
            }

            var viewModel = new UserInRoleViewModel
            {
                Username  = user.UserName,
                Email     = user.Email,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                UserRoles = (await _userManager.GetRolesAsync(user)) as List <string>
            };

            ViewBag.Roles = await _context.Roles.Select(r => r.Name).ToListAsync();

            return(View(viewModel));
        }
        public async Task <IActionResult> EditUsersInRole(EditUsersInRoleViewModel model)
        {
            IdentityRole role = await roleManager.FindByIdAsync(model.RoleId);

            if (role == null)
            {
                return(RoleNotFound(model.RoleId));
            }

            for (int i = 0; i < model.Users.Count; i++)
            {
                UserInRoleViewModel currentUser = model.Users[i];
                ApplicationUser     user        = await userManager.FindByIdAsync(currentUser.Id);

                bool isCurrentlyInRole = await userManager.IsInRoleAsync(user, role.Name);

                if (currentUser.IsRoleSelected && !isCurrentlyInRole)
                {
                    await userManager.AddToRoleAsync(user, role.Name);
                }
                else if (!currentUser.IsRoleSelected && isCurrentlyInRole)
                {
                    await userManager.RemoveFromRoleAsync(user, role.Name);
                }
            }

            return(RedirectToAction("editrole", new { role.Id }));
        }
        public async Task <IActionResult> EditUsersInRole(string roleId)
        {
            IdentityRole role = await roleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                return(RoleNotFound(roleId));
            }

            var model = new EditUsersInRoleViewModel()
            {
                RoleId = role.Id
            };

            List <ApplicationUser> users = await userManager.Users.ToListAsync();

            foreach (ApplicationUser user in users)
            {
                var userInRole = new UserInRoleViewModel
                {
                    Id   = user.Id,
                    Name = user.UserName
                };

                if (await userManager.IsInRoleAsync(user, role.Name))
                {
                    userInRole.IsRoleSelected = true;
                }

                model.Users.Add(userInRole);
            }

            return(View(model));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> EditUsersInRole(string roleTen)
        {
            if (roleTen == null)
            {
                return(NotFound());
            }
            var role = await _roleManager.FindByNameAsync(roleTen);

            if (role == null)
            {
                return(NotFound());
            }
            var model = new List <UserInRoleViewModel>();

            foreach (var user in _userManager.Users)
            {
                var userInRole = new UserInRoleViewModel
                {
                    TaiKhoan = user.UserName,
                    Ten      = user.Ten
                };
                if (await _userManager.IsInRoleAsync(user, roleTen))
                {
                    userInRole.IsSelected = true;
                }
                else
                {
                    userInRole.IsSelected = false;
                }
                model.Add(userInRole);
            }
            ViewBag.roleTen = roleTen;
            return(View(model));
        }
Ejemplo n.º 8
0
        public static UserInRole Attach(UserInRoleViewModel userInRoleViewModel)
        {
            UserInRole userInRole = new UserInRole();

            userInRole.id     = userInRoleViewModel.id;
            userInRole.RoleId = userInRoleViewModel.RoleId;
            userInRole.UserId = userInRoleViewModel.UserId;

            return(userInRole);
        }
Ejemplo n.º 9
0
        [ValidateAntiForgeryToken]  // Prevent Cross Site Request Forgery (CSRF) Attacks by generating and comparing Token automatically
        public ActionResult SaveUser(UserInRoleViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new UserInRoleViewModel
                {
                    UserId    = vm.UserId,
                    Username  = vm.Username,
                    Role      = vm.Role,
                    RoleId    = vm.RoleId,
                    IsEnabled = vm.IsEnabled,
                    Roles     = (from role in _context.Roles select role).ToList()
                };
                return(View("EditUser", viewModel));
            }

            // modify existing user
            var oldUser = UserManager.FindById(vm.UserId);

            oldUser.IsEnabled = vm.IsEnabled;
            UserManager.Update(oldUser);
            oldUser.IsEnabled = vm.IsEnabled;
            string oldRoleId   = null;
            var    oldRoleName = string.Empty;

            try
            {
                oldRoleId   = oldUser.Roles.SingleOrDefault().RoleId;
                oldRoleName = _context.Roles.SingleOrDefault(r => r.Id == oldRoleId).Name;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
            var newRoleName = _context.Roles.SingleOrDefault(r => r.Id == vm.RoleId).Name;

            if (string.IsNullOrEmpty(oldRoleId))
            {
                UserManager.AddToRole(vm.UserId, _context.Roles.SingleOrDefault(r => r.Id == vm.RoleId).Name);
            }
            else if (oldRoleId != vm.RoleId)
            {
                UserManager.RemoveFromRole(vm.UserId, oldRoleName);
                UserManager.AddToRole(vm.UserId, _context.Roles.SingleOrDefault(r => r.Id == vm.RoleId).Name);
            }
            //_context.Entry(user).State = EntityState.Modified;


            TempData[Constant.Success] = Constant.Update;
            //_context.SaveChanges();

            return(RedirectToAction("ManageUsers", "Manage"));
        }
Ejemplo n.º 10
0
        public ActionResult AddToRole([Bind] UserInRoleViewModel ur)
        {
            //if (ur == null)
            //{
            //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            //}
            //var role = roleManager.FindById(id);

            //if (role == null)
            //{
            //    return HttpNotFound();
            //}
            //UserInRoleViewModel ur = new UserInRoleViewModel() { Role = role };
            //PopulateUsersDropDownList(ur.UserId);
            //return View(ur);
        }
Ejemplo n.º 11
0
        public async Task <ActionResult> ManageRole(UserInRoleViewModel userList)
        {
            AppRole appRole = await RoleManager.FindByIdAsync(userList.RoleID);

            if (appRole == null)
            {
                ViewBag.Error = $"Error occurred while looking for role with ID = {userList.RoleID ?? "NULL ID"}";
                return(View("Error"));
            }

            for (int i = 0; i < userList.IsInRole.Count; i++)
            {
                AppUser user = await UserManager.FindByNameAsync(userList.Users[i]);

                IdentityResult result;
                if (userList.IsInRole[i] && !(await UserManager.IsInRoleAsync(user.Id, userList.RoleName)))
                {
                    result = await UserManager.AddToRoleAsync(user.Id, userList.RoleName);
                }
                else if (!userList.IsInRole[i] && await UserManager.IsInRoleAsync(user.Id, userList.RoleName))
                {
                    result = await UserManager.RemoveFromRoleAsync(user.Id, userList.RoleName);
                }
                else
                {
                    continue;
                }

                if (result.Succeeded)
                {
                    if (i < userList.IsInRole.Count)
                    {
                        continue;
                    }
                    else
                    {
                        return(RedirectToAction("EditRole", new { id = userList.RoleID }));
                    }
                }
            }

            return(RedirectToAction("EditRole", new { id = userList.RoleID }));
        }
Ejemplo n.º 12
0
        // GET: Roles/AddToRole/id
        public ActionResult AddToRole(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var role = roleManager.FindById(id);

            if (role == null)
            {
                return(HttpNotFound());
            }
            UserInRoleViewModel ur = new UserInRoleViewModel()
            {
                Role = role
            };

            PopulateUsersDropDownList(ur.UserId);
            return(View(ur));
        }
Ejemplo n.º 13
0
        public async Task GetAllInRolesPerPageAsyncShouldReturnCorrectModelCollection()
        {
            var teacherId = await this.CreateUserAsync("*****@*****.**", "Teacher", "Teacher", "Teacher");

            await this.CreateUserAsync("*****@*****.**", "Student", "Student");

            var model = new UserInRoleViewModel()
            {
                Id       = teacherId,
                FullName = "Teacher Teacher",
                Email    = "*****@*****.**",
            };

            var resultModelCollection = await this.Service.GetAllInRolesPerPageAsync <UserInRoleViewModel>(1, 1);

            Assert.Equal(1, resultModelCollection.Count);
            Assert.Equal(model.Id, resultModelCollection.First().Id);
            Assert.Equal(model.FullName, resultModelCollection.First().FullName);
            Assert.Equal(model.Email, resultModelCollection.First().Email);
        }
Ejemplo n.º 14
0
        public JsonResult Update(UserInRoleViewModel userInRole)
        {
            _userInRoleRepo.Delete(x => x.UserId == userInRole.UserId);

            foreach (var item in userInRole.Roles)
            {
                var _userInRole = new UserInRole
                {
                    UserId = userInRole.UserId,
                    RoleId = new Guid(item)
                };

                _userInRoleRepo.Create(_userInRole);
            }

            _unitOfWork.SaveChanges();

            var redirectUrl = Definition.Url.User.Item;

            return(Result(new Result(Definition.Message.Updated, redirectUrl)));
        }
Ejemplo n.º 15
0
        public async Task <IQueryable <UserInRoleViewModel> > QueryUsersInRoles(string[] roles, string[] excludeUserIds)
        {
            ICollection <ApplicationUser> users = await(from u in _context.Users
                                                        join ur in _context.UserRoles on u.Id equals ur.UserId
                                                        join r in _context.Roles on ur.RoleId equals r.Id
                                                        select u).ToListAsync();

            ICollection <ApplicationUser> usersFilteredByIds = new List <ApplicationUser>();

            foreach (var user in users)
            {
                foreach (var excludeUserId in excludeUserIds)
                {
                    if (!(user.Id == excludeUserId))
                    {
                        usersFilteredByIds.Add(user);
                    }
                }
            }

            ICollection <UserInRoleViewModel> usersInRoles = new List <UserInRoleViewModel>();

            foreach (var user in usersFilteredByIds)
            {
                foreach (var role in roles)
                {
                    if (await _userManager.IsInRoleAsync(user, role))
                    {
                        UserInRoleViewModel userInRole = new UserInRoleViewModel()
                        {
                            User = user,
                            Role = role
                        };
                        usersInRoles.Add(userInRole);
                    }
                }
            }

            return(usersInRoles.AsQueryable());
        }
Ejemplo n.º 16
0
        public async Task GetAllInRolesPerPageAsyncShouldFilterCorectlyWhenSearchCriteriaIsTeacherAndSearchTextIsPassed(string searchCriteria, string searchText)
        {
            await this.CreateUserAsync("*****@*****.**", "Admin", "Admin", "Administrator");

            await this.CreateUserAsync("*****@*****.**", "Student", "Student");

            var teacherId = await this.CreateUserAsync("*****@*****.**", "John", "Doe", "Teacher");

            var teacherModel = new UserInRoleViewModel()
            {
                Id       = teacherId,
                FullName = "John Doe",
                Email    = "*****@*****.**",
            };

            var resultModelCollection = await this.Service.GetAllInRolesPerPageAsync <UserInRoleViewModel>(1, 1, searchCriteria, searchText);

            Assert.Equal(1, resultModelCollection.Count);
            Assert.Equal(teacherModel.Id, resultModelCollection.First().Id);
            Assert.Equal(teacherModel.FullName, resultModelCollection.First().FullName);
            Assert.Equal(teacherModel.Email, resultModelCollection.First().Email);
        }
        public async Task <IActionResult> EditUsersInRole(string roleId)
        {
            ViewBag.roleId = roleId;

            var role = await roleManager.FindByIdAsync(roleId);

            if (role == null)
            {
                ViewBag.ErrorMessage = $"Role with Id = {roleId} cannot be found";
                return(NotFound());
            }

            var model = new List <UserInRoleViewModel>();

            foreach (var user in userManager.Users)
            {
                var userRoleViewModel = new UserInRoleViewModel
                {
                    UserId   = user.Id,
                    UserName = user.UserName
                };

                if (await userManager.IsInRoleAsync(user, role.Name))
                {
                    userRoleViewModel.IsSelected = true;
                }
                else
                {
                    userRoleViewModel.IsSelected = false;
                }

                model.Add(userRoleViewModel);
            }

            return(View(model));
        }
Ejemplo n.º 18
0
        public ActionResult Edit([Bind(Exclude = "UserName")] UserViewModel userVM)
        {
            if (ModelState.IsValidField("FirstName") && ModelState.IsValidField("LastName") &&
                ModelState.IsValidField("Dob") && ModelState.IsValidField("Password") &&
                ModelState.IsValidField("RoleId") && ModelState.IsValidField("Email") &&
                ModelState.IsValidField("MobileNo") && ModelState.IsValidField("CityId"))
            {
                if (CheckUserByCityAndRole(userVM))
                {
                    ModelState.AddModelError("UserExist", "User already exist for selected role. Please change the city or role");
                    var roles  = _roleMasterService.Get(r => r.IsActive == true);
                    var cities = _cityMasterService.Get(r => r.IsActive == true);
                    userVM.Roles = roles.Select(s => new SelectListItem {
                        Text = s.RoleName, Value = s.RoleId.ToString()
                    }).ToList();
                    userVM.Cities = cities.Select(c => new SelectListItem {
                        Text = c.CityName, Value = c.CityId.ToString()
                    }).ToList();
                    userVM.IsActive = true;
                    return(View(userVM));
                }

                var fName    = userVM.FirstName;
                var lName    = userVM.LastName;
                var mobileNo = userVM.MobileNo;

                string firstCharOfFname =
                    !String.IsNullOrWhiteSpace(fName) && fName.Length >= 1 ? fName.Substring(0, 1) : fName;
                var userName = firstCharOfFname + userVM.LastName;

                if (Session["roleId"] == null)
                {
                    return(RedirectToAction("Index"));
                }
                var userInRoleVM     = new UserInRoleViewModel();
                var userInRoleMaster = new UserInRole();
                var userData         = _userService.GetUserById(userVM.UserId);
                var userInRole       = _userInRoleService.Get().Where(r => r.RoleId == Convert.ToInt32(Session["roleId"])).FirstOrDefault();

                userData.UserName  = userName;
                userData.Password  = userVM.Password.Encrypt();
                userData.Email     = userVM.Email;
                userData.MobileNo  = userVM.MobileNo;
                userData.Address   = userVM.Address;
                userData.CityId    = userVM.CityId;
                userData.FirstName = userVM.FirstName;
                userData.LastName  = userVM.LastName;
                userData.Dob       = userVM.Dob;
                //userData.CompanyID = userVM.CompanyID;

                userInRole.RoleId = userVM.RoleId;
                userInRole.UserId = userVM.UserId;

                _userInRoleService.Update(userInRole);
                _userInRoleService.SaveChanges();
                _userService.Update(userData);
                _userService.SaveChanges();

                return(RedirectToAction("Index"));
            }
            else
            {
                var roles  = _roleMasterService.Get(r => r.IsActive == true);
                var cities = _cityMasterService.Get(r => r.IsActive == true);

                userVM.Roles  = new List <SelectListItem>();
                userVM.Cities = new List <SelectListItem>();

                userVM.Roles = roles.Select(s => new SelectListItem {
                    Text = s.RoleName, Value = s.RoleId.ToString()
                }).ToList();
                userVM.Cities = cities.Select(c => new SelectListItem {
                    Text = c.CityName, Value = c.CityId.ToString()
                }).ToList();

                return(View(userVM));
            }
        }
Ejemplo n.º 19
0
        public static UserInRoleViewModel Detach(UserInRole userInRole)
        {
            UserInRoleViewModel userInRoleViewModel = new UserInRoleViewModel();

            return(userInRoleViewModel);
        }
Ejemplo n.º 20
0
        public ActionResult Index()
        {
            var userStore = new UserStore<User>(this.dbContext);
            var userManager = new UserManager<User>(userStore);
            var users = userManager.Users.ToList();

            var userModels = new List<UserInRoleViewModel>();

            string role = GlobalConstants.EngineerRoleName;
            foreach (User user in users)
            {
                if (user.Id == this.User.Identity.GetUserId())
                {
                    continue;
                }

                var userModel = new UserInRoleViewModel
                {
                    UserId = user.Id,
                    Username = user.UserName,
                    IsInRole = userManager.IsInRole(user.Id, role)
                };

                userModels.Add(userModel);
            }

            this.ViewBag.RoleName = role;

            return this.View(userModels);
        }