public async Task <ActionResult> Add(AclViewModel viewModel) { try { await ProjectService.GrantAccess(new GrantAccessRequest() { ProjectId = viewModel.ProjectId, UserId = viewModel.UserId, CanGrantRights = viewModel.CanGrantRights, CanChangeFields = viewModel.CanChangeFields, CanChangeProjectProperties = viewModel.CanChangeProjectProperties, CanManageClaims = viewModel.CanManageClaims, CanEditRoles = viewModel.CanEditRoles, CanManageMoney = viewModel.CanManageMoney, CanSendMassMails = viewModel.CanSendMassMails, CanManagePlots = viewModel.CanManagePlots, CanManageAccommodation = viewModel.CanManageAccommodation, CanSetPlayersAccommodations = viewModel.CanSetPlayersAccommodations, }); } catch { //TODO Fix this. ModelState.AddModelError("", "Error!"); return(RedirectToAction("Details", "User", new { viewModel.UserId })); } return(RedirectToAction("Index", "Acl", new { viewModel.ProjectId })); }
public async Task <ActionResult> Add(AclViewModel viewModel) { var project = await ProjectRepository.GetProjectAsync(viewModel.ProjectId); var error = AsMaster(project, a => a.CanGrantRights); if (error != null) { return(error); } try { await ProjectService.GrantAccess(viewModel.ProjectId, CurrentUserId, viewModel.UserId, viewModel.CanGrantRights, viewModel.CanChangeFields, viewModel.CanChangeProjectProperties, viewModel.CanManageClaims, viewModel.CanEditRoles, viewModel.CanManageMoney, viewModel.CanSendMassMails, viewModel.CanManagePlots); } catch { //TODO Fix this. ModelState.AddModelError("", "Error!"); return(RedirectToAction("Details", "User", new { viewModel.UserId })); } return(RedirectToAction("Index", "Acl", new { viewModel.ProjectId })); }
public async Task <ActionResult> Edit(AclViewModel viewModel) { try { await ProjectService.ChangeAccess(new ChangeAccessRequest() { ProjectId = viewModel.ProjectId, UserId = viewModel.UserId, CanGrantRights = viewModel.CanGrantRights, CanChangeFields = viewModel.CanChangeFields, CanChangeProjectProperties = viewModel.CanChangeProjectProperties, CanManageClaims = viewModel.CanManageClaims, CanEditRoles = viewModel.CanEditRoles, CanManageMoney = viewModel.CanManageMoney, CanSendMassMails = viewModel.CanSendMassMails, CanManagePlots = viewModel.CanManagePlots, CanManageAccommodation = viewModel.CanManageAccommodation, CanSetPlayersAccommodations = viewModel.CanSetPlayersAccommodations, }); } catch { return(View(viewModel)); } return(RedirectToAction("Index", "Acl", new { viewModel.ProjectId })); }
public async Task <ActionResult> Delete(int projectid, int projectaclid) { var project = await ProjectRepository.GetProjectAsync(projectid); return(AsMaster(project, acl => acl.CanGrantRights) ?? View(AclViewModel.FromAcl(project.ProjectAcls.Single(acl => acl.ProjectAclId == projectaclid), 0))); }
public async Task <ActionResult> Add(int projectId, int userId) { var project = await ProjectRepository.GetProjectAsync(projectId); var currentUser = await UserRepository.GetById(currentUserAccessor.UserId); var targetUser = await UserRepository.GetById(userId); var projectAcl = project.ProjectAcls.Single(acl => acl.UserId == currentUserAccessor.UserId); return(View(AclViewModel.New(projectAcl, currentUser, targetUser))); }
public async Task <ActionResult> Edit(int projectId, int?projectaclid) { var project = await ProjectRepository.GetProjectAsync(projectId); var groups = await ProjectRepository.GetGroupsWithResponsible(projectId); var projectAcl = project.ProjectAcls.Single(acl => acl.ProjectAclId == projectaclid); var currentUser = await GetCurrentUserAsync(); return(View(AclViewModel.FromAcl(projectAcl, 0, groups.Where(gr => gr.ResponsibleMasterUserId == projectAcl.UserId).ToList(), currentUser))); }
public async Task <ActionResult> Index(int projectId) { var project = await ProjectRepository.GetProjectWithDetailsAsync(projectId); var claims = await ClaimRepository.GetClaims(projectId, ClaimStatusSpec.Active); return(AsMaster(project) ?? View(project.ProjectAcls.Select(acl => { var result = AclViewModel.FromAcl(acl, claims.Count(c => c.ResponsibleMasterUserId == acl.UserId)); result.ProblemClaimsCount = claims.Where(c => c.ResponsibleMasterUserId == acl.UserId) .Count(claim => claim.GetProblems(ProblemSeverity.Warning).Any()); return result; }))); }
public async Task <ActionResult> Edit(AclViewModel viewModel) { try { await ProjectService.ChangeAccess(viewModel.ProjectId, CurrentUserId, viewModel.UserId, viewModel.CanGrantRights, viewModel.CanChangeFields, viewModel.CanChangeProjectProperties, viewModel.CanManageClaims, viewModel.CanEditRoles, viewModel.CanManageMoney, viewModel.CanSendMassMails, viewModel.CanManagePlots); } catch { return(View(viewModel)); } return(RedirectToAction("Index", "Acl", new { viewModel.ProjectId })); }
public async Task <ActionResult> Index(int projectId) { var project = await ProjectRepository.GetProjectWithDetailsAsync(projectId); var claims = await ClaimRepository.GetClaimsCountByMasters(projectId, ClaimStatusSpec.Active); var groups = await ProjectRepository.GetGroupsWithResponsible(projectId); var currentUser = await GetCurrentUserAsync(); return(View(project.ProjectAcls.Select(acl => { return AclViewModel.FromAcl(acl, claims.SingleOrDefault(c => c.MasterId == acl.UserId)?.ClaimCount ?? 0, groups.Where(gr => gr.ResponsibleMasterUserId == acl.UserId).ToList(), currentUser); }))); }
public MastersListViewModel( Project project, IReadOnlyCollection <ClaimCountByMaster> claims, IReadOnlyCollection <CharacterGroup> groups, User currentUser, IUriService uriService) { Masters = project.ProjectAcls.Select(acl => { return(AclViewModel.FromAcl(acl, claims.SingleOrDefault(c => c.MasterId == acl.UserId)?.ClaimCount ?? 0, groups.Where(gr => gr.ResponsibleMasterUserId == acl.UserId && gr.IsActive).ToList(), currentUser, uriService)); }).ToList(); CanCurrentUserGrantRights = Masters.Single(acl => acl.UserId == currentUser.UserId).CanGrantRights; AnyoneElseCanGrantRights = Masters.Any(x => x.CanChangeFields && x.UserId != currentUser.UserId); CurrentUserId = currentUser.UserId; }
public async Task <ActionResult> Delete(AclViewModel viewModel) { var project = await ProjectRepository.GetProjectAsync(viewModel.ProjectId); var error = AsMaster(project, acl => acl.CanGrantRights); if (error != null) { return(error); } try { await ProjectService.RemoveAccess(viewModel.ProjectId, CurrentUserId, viewModel.UserId); } catch { return(View(viewModel)); } return(RedirectToAction("Index", "Acl", new { viewModel.ProjectId })); }
public async Task <ActionResult> Edit(AclViewModel viewModel) { var project = await ProjectRepository.GetProjectAsync(viewModel.ProjectId); var error = AsMaster(project, acl => acl.CanGrantRights); if (error != null) { return(error); } try { await ProjectService.ChangeAccess(viewModel.ProjectId, CurrentUserId, viewModel.UserId, viewModel.CanGrantRights, viewModel.CanChangeFields, viewModel.CanChangeProjectProperties, viewModel.CanManageClaims, viewModel.CanEditRoles, viewModel.CanManageMoney, viewModel.CanSendMassMails, viewModel.CanManagePlots); } catch { return(View(viewModel)); } return(RedirectToAction("Index", "Acl", new { viewModel.ProjectId })); }