Ejemplo n.º 1
0
        public ActionResult RoleEditor(string userId, RoleEditorViewModel formData)
        {
            if (!ModelState.IsValid || userId is "" || formData is null)
            {
                return(RedirectToAction("UsersAndRoles"));
            }
            //return View();

            var user = UserManager.Users.FirstOrDefault(p => p.Id == userId);

            if (user is null)
            {
                return(RedirectToAction("UsersAndRoles"));
            }

            foreach (var item in formData.RolesUserIsIn)
            {
                var role = DbContext.Roles.FirstOrDefault(p => p.Id == item.RoleId);

                if (role is null)
                {
                    throw new Exception("Role is null: Role Id is missing, check if you're sending the proper roles, or if a user role is missing.");
                }
                else
                {
                    if (item.Selected)
                    {
                        UserManager.AddToRole(user.Id, role.Name);
                    }
                    else
                    {
                        UserManager.RemoveFromRole(user.Id, role.Name);
                    }
                }

                //if (!item.Selected && role != null) // ++Q , technically if the roll is null, it will try to add the null role
                //{
                //    UserManager.RemoveFromRole(user.Id, role.Name);
                //}
                //else
                //{
                //    UserManager.AddToRole(user.Id, role.Name);
                //}
            }

            //UserManager.Update(user);

            return(RedirectToAction("UsersAndRoles"));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AddUserRole(int?clientId, int?Id)
        {
            //TODO: Implement Realistic Implementation
            var user = _userManager.FindByIdAsync(((int)Id).ToString()).Result;

            ViewBag.ClientId = (int)clientId;
            var roleListViewModel = new List <RoleEditorViewModel> ();
            var roleList          = _roleMager.Roles.Where(r => r.Client.Equals((int)clientId)).ToList();

            foreach (var item in roleList)
            {
                var role = new RoleEditorViewModel {
                    Name = item.Name, Id = item.Id
                };
                role.Selected = _userManager.IsInRoleAsync(user, item.Name).Result;

                roleListViewModel.Add(role);
            }

            await Task.Yield();

            return(View(roleListViewModel));
        }