public ActionResult UserPermission(string id) { try { using (var context = new AppSecurityContext()) { var userPermissionRep = new UserPermissionRepository(context); var permissionRep = new PermissionRepository(context); var userRep = new UserRepository(context); var permissions = userPermissionRep.GetAll() .Where(x => x.UserId == id); var user = userRep.Find(id); var model = new ListAppUserPermissionViewModel(); model.UserId = user.Id; model.UserName = user.UserName; model.UserPermissions = mapper.Map <IEnumerable <AppUserPermissionViewModel> >(permissions); return(View(model)); } } catch { return(View("Users")); } }
public ActionResult DetailsUser(string id) { var context = new AppSecurityContext(); var userRepository = new UserRepository(context); var roleRepository = new RoleRepository(context); var userPermissionRep = new UserPermissionRepository(context); var user = userRepository.Find(id); var roles = roleRepository.GetRolesByUserId(user.Id); var model = new DetailsAppUserViewModel(); model.Email = user.Email; model.Id = user.Id; model.AssignedRoles = new List <AppRoleViewModel>(); foreach (var item in roles) { model.AssignedRoles.Add(new AppRoleViewModel { Id = item.Id, Name = item.Name }); } var permissions = userPermissionRep.GetAll() .Where(x => x.UserId == id); model.UserPermissions = mapper.Map <IEnumerable <AppUserPermissionViewModel> >(permissions); return(View(model)); }
public ActionResult EditUserPermission(int?id) { if (id == null) { return(RedirectToAction("DetailsUserPermission")); } var model = new EditAppUserPermissionViewModel(); using (var context = new AppSecurityContext()) { var actionRepository = new ActionRepository(context); var resourceRepository = new ResourceRepository(context); var userPermissionRository = new UserPermissionRepository(context); var userRepository = new UserRepository(context); var userPermision = userPermissionRository.GetAll().Where(x => x.Id == id).FirstOrDefault(); var resource = resourceRepository.Find(userPermision.Permission.ResourceKey); var userPermissions = userPermissionRository.GetAll() .Where(x => x.UserId == userPermision.UserId) .Where(x => x.Permission.ResourceKey == resource.Key) .ToList(); var actionKeys = userPermissions.Select(x => x.Permission.ActionKey).ToArray(); var actions = actionRepository.GetAll(); model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions); model.SelectedActions = actionKeys; model.ResourceKey = resource.Key; model.ResourceName = resource.Name; model.User = mapper.Map <AppUserViewModel>(userRepository.Find(userPermision.UserId)); return(View(model)); } }
public ActionResult EditUserPermission(int id, EditAppUserPermissionViewModel model) { //Clave del resource using (var context = new AppSecurityContext()) { var actionRepository = new ActionRepository(context); var resourceRepository = new ResourceRepository(context); var permissionRepository = new PermissionRepository(context); var userPermissionRository = new UserPermissionRepository(context); try { var userPermision = userPermissionRository.GetAll().Where(x => x.Id == id).FirstOrDefault(); var actions = actionRepository.GetAll(); var resource = resourceRepository.Find(userPermision.Permission.ResourceKey); var permissions = userPermissionRository.GetAll() .Where(x => x.Permission.ResourceKey == resource.Key) .Where(x => x.UserId == userPermision.UserId); var actionKeys = permissions.Select(x => x.Permission.ActionKey).ToArray(); model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions); //Se eliminan los permisos anteriores foreach (var perm in permissions) { userPermissionRository.Delete(perm); } if (model.SelectedActions != null) { //Se agregan los nuevos var permissionForInsert = permissionRepository .GetAll() .Where(x => x.ResourceKey == resource.Key) .Where(x => model.SelectedActions.Contains(x.ActionKey)); foreach (var p in permissionForInsert) { var permission = new AppUserPermission(); permission.UserId = userPermision.UserId; permission.PermissionId = p.Id; userPermissionRository.Insert(permission); } model.SelectedActions = actionKeys; model.ResourceKey = resource.Key; model.ResourceName = resource.Name; } context.SaveChanges(); return(RedirectToAction("UserPermission", new { id = model.User.Id })); } catch (Exception ex) { ViewBag.Error = ex.Message; if (ex.InnerException != null) { ViewBag.Error += ex.InnerException.Message; } return(View(model)); } } }