public bool IsPrimaryAuthorityForRole(string userId, ApprovalAuthorityRole role) { if (role == ApprovalAuthorityRole.Supervisor) { return(true); } return(_formOptions.Authorities.TryGetValue(role, out var authorityIds) && authorityIds.FirstOrDefault() == userId); }
public virtual bool IsAuthorityApplicable(Proposal proposal, ApprovalAuthorityRole authorityRole) { if (!ApprovalRoles.Contains(authorityRole)) { throw new ArgumentOutOfRangeException(nameof(authorityRole)); } return(true); }
public IEnumerable <string> GetAuthorityIdsForRole(Proposal proposal, ApprovalAuthorityRole role) { if (role == ApprovalAuthorityRole.Supervisor) { return(proposal.SupervisorId.Yield()); } return(_formOptions.Authorities.TryGetValue(role, out var authorityIds) ? authorityIds : Enumerable.Empty <string>()); }
public override bool IsAuthorityApplicable(Proposal proposal, ApprovalAuthorityRole authorityRole) { var hasAnyMri = proposal.Labs.Any(l => _labProvider.Labs[l.Modality].IsMri); var hasAnyNonMri = proposal.Labs.Any(l => !_labProvider.Labs[l.Modality].IsMri); var hasCustomQuota = proposal.CustomQuota; return(authorityRole switch { ApprovalAuthorityRole.LabMri => hasAnyMri, ApprovalAuthorityRole.LabOther => hasAnyNonMri, ApprovalAuthorityRole.LabData => hasCustomQuota || !(hasAnyMri || hasAnyNonMri), _ => throw new ArgumentOutOfRangeException(nameof(authorityRole), authorityRole, null) });
public bool HasApprovalAuthorityRole(ApprovalAuthorityRole role) { return(ApprovalRoles.Contains(role)); }
public async Task <ProjectDbUser> GetPrimaryAuthorityForRoleAsync(Proposal proposal, ApprovalAuthorityRole role) { var authorityId = GetPrimaryAuthorityId(proposal, role); return(authorityId == null ? null : await _userManager.GetUserByIdAsync(authorityId)); }
public Task <ICollection <ProjectDbUser> > GetAuthoritiesByRoleAsync(Proposal proposal, ApprovalAuthorityRole role) { return(_userManager.GetUsersByIdsAsync(GetAuthorityIdsForRole(proposal, role))); }
public string GetPrimaryAuthorityId(Proposal proposal, ApprovalAuthorityRole role) { return(GetAuthorityIdsForRole(proposal, role).FirstOrDefault()); }
public bool IsInApprovalRole(ClaimsPrincipal principal, ApprovalAuthorityRole role) { return(GetApprovalRoles(principal).Contains(role)); }