Exemplo n.º 1
0
        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 }));
        }
Exemplo n.º 2
0
        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 }));
        }
Exemplo n.º 3
0
 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 }));
 }
Exemplo n.º 4
0
        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)));
        }
Exemplo n.º 5
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)));
        }
Exemplo n.º 6
0
        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)));
        }
Exemplo n.º 7
0
        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;
            })));
        }
Exemplo n.º 8
0
 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 }));
 }
Exemplo n.º 9
0
        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);
            })));
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        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 }));
        }
Exemplo n.º 12
0
        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 }));
        }