mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-05-20 11:29:25 +02:00
wip
This commit is contained in:
parent
cc7f588dad
commit
dd1b923404
5 changed files with 45 additions and 33 deletions
|
@ -69,6 +69,8 @@ def portfolio_permissions(request):
|
||||||
"has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(
|
"has_domain_requests_portfolio_permission": request.user.has_domain_requests_portfolio_permission(
|
||||||
portfolio
|
portfolio
|
||||||
),
|
),
|
||||||
|
"has_view_members_portfolio_permission": request.user.has_view_members_portfolio_permission(portfolio),
|
||||||
|
"has_edit_members_portfolio_permission": request.user.has_edit_members_portfolio_permission(portfolio),
|
||||||
"has_view_suborganization": request.user.has_view_suborganization(portfolio),
|
"has_view_suborganization": request.user.has_view_suborganization(portfolio),
|
||||||
"has_edit_suborganization": request.user.has_edit_suborganization(portfolio),
|
"has_edit_suborganization": request.user.has_edit_suborganization(portfolio),
|
||||||
"portfolio": portfolio,
|
"portfolio": portfolio,
|
||||||
|
@ -78,6 +80,8 @@ def portfolio_permissions(request):
|
||||||
"has_base_portfolio_permission": False,
|
"has_base_portfolio_permission": False,
|
||||||
"has_domains_portfolio_permission": False,
|
"has_domains_portfolio_permission": False,
|
||||||
"has_domain_requests_portfolio_permission": False,
|
"has_domain_requests_portfolio_permission": False,
|
||||||
|
"has_view_members_portfolio_permission": False,
|
||||||
|
"has_edit_members_portfolio_permission": False,
|
||||||
"has_view_suborganization": False,
|
"has_view_suborganization": False,
|
||||||
"has_edit_suborganization": False,
|
"has_edit_suborganization": False,
|
||||||
"portfolio": None,
|
"portfolio": None,
|
||||||
|
@ -90,6 +94,8 @@ def portfolio_permissions(request):
|
||||||
"has_base_portfolio_permission": False,
|
"has_base_portfolio_permission": False,
|
||||||
"has_domains_portfolio_permission": False,
|
"has_domains_portfolio_permission": False,
|
||||||
"has_domain_requests_portfolio_permission": False,
|
"has_domain_requests_portfolio_permission": False,
|
||||||
|
"has_view_members_portfolio_permission": False,
|
||||||
|
"has_edit_members_portfolio_permission": False,
|
||||||
"has_view_suborganization": False,
|
"has_view_suborganization": False,
|
||||||
"has_edit_suborganization": False,
|
"has_edit_suborganization": False,
|
||||||
"portfolio": None,
|
"portfolio": None,
|
||||||
|
|
|
@ -64,32 +64,6 @@ class User(AbstractUser):
|
||||||
# after they login.
|
# after they login.
|
||||||
FIXTURE_USER = "fixture_user", "Created by fixtures"
|
FIXTURE_USER = "fixture_user", "Created by fixtures"
|
||||||
|
|
||||||
PORTFOLIO_ROLE_PERMISSIONS = {
|
|
||||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN: [
|
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS,
|
|
||||||
UserPortfolioPermissionChoices.VIEW_MEMBER,
|
|
||||||
UserPortfolioPermissionChoices.EDIT_MEMBER,
|
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
|
||||||
UserPortfolioPermissionChoices.EDIT_REQUESTS,
|
|
||||||
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
|
||||||
UserPortfolioPermissionChoices.EDIT_PORTFOLIO,
|
|
||||||
# Domain: field specific permissions
|
|
||||||
UserPortfolioPermissionChoices.VIEW_SUBORGANIZATION,
|
|
||||||
UserPortfolioPermissionChoices.EDIT_SUBORGANIZATION,
|
|
||||||
],
|
|
||||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN_READ_ONLY: [
|
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS,
|
|
||||||
UserPortfolioPermissionChoices.VIEW_MEMBER,
|
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
|
||||||
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
|
||||||
# Domain: field specific permissions
|
|
||||||
UserPortfolioPermissionChoices.VIEW_SUBORGANIZATION,
|
|
||||||
],
|
|
||||||
UserPortfolioRoleChoices.ORGANIZATION_MEMBER: [
|
|
||||||
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
|
||||||
],
|
|
||||||
}
|
|
||||||
|
|
||||||
# #### Constants for choice fields ####
|
# #### Constants for choice fields ####
|
||||||
RESTRICTED = "restricted"
|
RESTRICTED = "restricted"
|
||||||
STATUS_CHOICES = ((RESTRICTED, RESTRICTED),)
|
STATUS_CHOICES = ((RESTRICTED, RESTRICTED),)
|
||||||
|
@ -224,10 +198,40 @@ class User(AbstractUser):
|
||||||
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS)
|
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MANAGED_DOMAINS)
|
||||||
|
|
||||||
def has_domain_requests_portfolio_permission(self, portfolio):
|
def has_domain_requests_portfolio_permission(self, portfolio):
|
||||||
|
## BEGIN
|
||||||
|
## Note code below is to add organization_request feature
|
||||||
|
request = HttpRequest()
|
||||||
|
request.user = self
|
||||||
|
has_organization_requests_flag = flag_is_active(request, "organization_requests")
|
||||||
|
if not has_organization_requests_flag:
|
||||||
|
return False
|
||||||
|
## END
|
||||||
return self._has_portfolio_permission(
|
return self._has_portfolio_permission(
|
||||||
portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS
|
portfolio, UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS
|
||||||
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS)
|
) or self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_CREATED_REQUESTS)
|
||||||
|
|
||||||
|
def has_view_members_portfolio_permission(self, portfolio):
|
||||||
|
## BEGIN
|
||||||
|
## Note code below is to add organization_request feature
|
||||||
|
request = HttpRequest()
|
||||||
|
request.user = self
|
||||||
|
has_organization_members_flag = flag_is_active(request, "organization_members")
|
||||||
|
if not has_organization_members_flag:
|
||||||
|
return False
|
||||||
|
## END
|
||||||
|
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_MEMBERS)
|
||||||
|
|
||||||
|
def has_edit_members_portfolio_permission(self, portfolio):
|
||||||
|
## BEGIN
|
||||||
|
## Note code below is to add organization_request feature
|
||||||
|
request = HttpRequest()
|
||||||
|
request.user = self
|
||||||
|
has_organization_members_flag = flag_is_active(request, "organization_members")
|
||||||
|
if not has_organization_members_flag:
|
||||||
|
return False
|
||||||
|
## END
|
||||||
|
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.EDIT_MEMBERS)
|
||||||
|
|
||||||
def has_view_all_domains_permission(self, portfolio):
|
def has_view_all_domains_permission(self, portfolio):
|
||||||
"""Determines if the current user can view all available domains in a given portfolio"""
|
"""Determines if the current user can view all available domains in a given portfolio"""
|
||||||
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
return self._has_portfolio_permission(portfolio, UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS)
|
||||||
|
|
|
@ -16,8 +16,8 @@ class UserPortfolioPermission(TimeStampedModel):
|
||||||
PORTFOLIO_ROLE_PERMISSIONS = {
|
PORTFOLIO_ROLE_PERMISSIONS = {
|
||||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN: [
|
UserPortfolioRoleChoices.ORGANIZATION_ADMIN: [
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS,
|
UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS,
|
||||||
UserPortfolioPermissionChoices.VIEW_MEMBER,
|
UserPortfolioPermissionChoices.VIEW_MEMBERS,
|
||||||
UserPortfolioPermissionChoices.EDIT_MEMBER,
|
UserPortfolioPermissionChoices.EDIT_MEMBERS,
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
||||||
UserPortfolioPermissionChoices.EDIT_REQUESTS,
|
UserPortfolioPermissionChoices.EDIT_REQUESTS,
|
||||||
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
|
@ -28,7 +28,7 @@ class UserPortfolioPermission(TimeStampedModel):
|
||||||
],
|
],
|
||||||
UserPortfolioRoleChoices.ORGANIZATION_ADMIN_READ_ONLY: [
|
UserPortfolioRoleChoices.ORGANIZATION_ADMIN_READ_ONLY: [
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS,
|
UserPortfolioPermissionChoices.VIEW_ALL_DOMAINS,
|
||||||
UserPortfolioPermissionChoices.VIEW_MEMBER,
|
UserPortfolioPermissionChoices.VIEW_MEMBERS,
|
||||||
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
UserPortfolioPermissionChoices.VIEW_ALL_REQUESTS,
|
||||||
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
UserPortfolioPermissionChoices.VIEW_PORTFOLIO,
|
||||||
# Domain: field specific permissions
|
# Domain: field specific permissions
|
||||||
|
|
|
@ -17,8 +17,8 @@ class UserPortfolioPermissionChoices(models.TextChoices):
|
||||||
VIEW_ALL_DOMAINS = "view_all_domains", "View all domains and domain reports"
|
VIEW_ALL_DOMAINS = "view_all_domains", "View all domains and domain reports"
|
||||||
VIEW_MANAGED_DOMAINS = "view_managed_domains", "View managed domains"
|
VIEW_MANAGED_DOMAINS = "view_managed_domains", "View managed domains"
|
||||||
|
|
||||||
VIEW_MEMBER = "view_member", "View members"
|
VIEW_MEMBERS = "view_members", "View members"
|
||||||
EDIT_MEMBER = "edit_member", "Create and edit members"
|
EDIT_MEMBERS = "edit_members", "Create and edit members"
|
||||||
|
|
||||||
VIEW_ALL_REQUESTS = "view_all_requests", "View all requests"
|
VIEW_ALL_REQUESTS = "view_all_requests", "View all requests"
|
||||||
VIEW_CREATED_REQUESTS = "view_created_requests", "View created requests"
|
VIEW_CREATED_REQUESTS = "view_created_requests", "View created requests"
|
||||||
|
|
|
@ -23,11 +23,11 @@
|
||||||
Domains
|
Domains
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="usa-nav__primary-item">
|
<!-- <li class="usa-nav__primary-item">
|
||||||
<a href="#" class="usa-nav-link">
|
<a href="#" class="usa-nav-link">
|
||||||
Domain groups
|
Domain groups
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li> -->
|
||||||
|
|
||||||
{% if has_domain_requests_portfolio_permission %}
|
{% if has_domain_requests_portfolio_permission %}
|
||||||
<li class="usa-nav__primary-item">
|
<li class="usa-nav__primary-item">
|
||||||
|
@ -37,11 +37,13 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if has_view_members_portfolio_permission %}
|
||||||
<li class="usa-nav__primary-item">
|
<li class="usa-nav__primary-item">
|
||||||
<a href="#" class="usa-nav-link">
|
<a href="#" class="usa-nav-link">
|
||||||
Members
|
Members
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
{% endif %}
|
||||||
<li class="usa-nav__primary-item">
|
<li class="usa-nav__primary-item">
|
||||||
{% url 'organization' as url %}
|
{% url 'organization' as url %}
|
||||||
<!-- Move the padding from the a to the span so that the descenders do not get cut off -->
|
<!-- Move the padding from the a to the span so that the descenders do not get cut off -->
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue