示例#1
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)));
        }
示例#2
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)));
        }
示例#3
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;
            })));
        }
示例#4
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);
            })));
        }
示例#5
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;
        }