public ActionResult CreateUserPermission(NewAppUserPermissionViewModel model) { using (var context = new AppSecurityContext()) { var actionRepository = new ActionRepository(context); var permissionRepository = new PermissionRepository(context); var userPermissionRepository = new UserPermissionRepository(context); var userRepository = new UserRepository(context); try { var actions = actionRepository.Query(x => model.SelectedActions.Contains(x.Key)).Select(x => x.Key); var permission = permissionRepository .GetAll() .Where(x => x.ResourceKey == model.SelectedResource) .Where(x => actions.Contains(x.ActionKey)); userPermissionRepository.AddPermissionsByUserId(model.User.Id, permission.Select(x => x.Id).ToArray()); context.SaveChanges(); return(RedirectToAction("UserPermission", new { id = model.User.Id })); } catch (Exception ex) { ViewBag.Error = ex.Message; var actions = actionRepository.GetAll().OrderBy(x => x.Name); var user = userRepository.Find(model.User.Id); model.User = mapper.Map <AppUserViewModel>(user); model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions); model.ResourcesList = PopulateResourceFromNewUserPermission(model.SelectedResource); return(View(model)); } } }
public ActionResult CreateUserPermission(string id) { var model = new NewAppUserPermissionViewModel(); using (var context = new AppSecurityContext()) { var resourcesRepository = new ResourceRepository(context); var userPermissionRository = new UserPermissionRepository(context); var userRepository = new UserRepository(context); var actionRepository = new ActionRepository(context); var user = userRepository.Find(id); if (user == null) { RedirectToAction("Users"); } var actions = actionRepository.GetAll().OrderBy(x => x.Name); model.AvailableActions = mapper.Map <ICollection <AppActionViewModel> >(actions); model.User = mapper.Map <AppUserViewModel>(user); model.ResourcesList = PopulateResourceFromNewUserPermission(id); return(View(model)); } }