Add Role.display_name

This commit is contained in:
richard-dds 2018-09-24 14:10:55 -04:00
parent 7250e1167c
commit e64b2dd034
6 changed files with 79 additions and 2 deletions

View File

@ -0,0 +1,45 @@
"""add role.display_name
Revision ID: c19ae79d2521
Revises: 359caaf8c5f1
Create Date: 2018-09-24 14:02:59.533928
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = "c19ae79d2521"
down_revision = "359caaf8c5f1"
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column(
"request_status_events",
"time_created",
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True,
existing_server_default=sa.text("now()"),
)
op.add_column(
"roles",
sa.Column("display_name", sa.String(), nullable=False, server_default=""),
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column("roles", "display_name")
op.alter_column(
"request_status_events",
"time_created",
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True,
existing_server_default=sa.text("now()"),
)
# ### end Alembic commands ###

View File

@ -10,6 +10,7 @@ class Role(Base, mixins.TimestampsMixin):
id = types.Id()
name = Column(String, index=True, unique=True, nullable=False)
display_name = Column(String, nullable=False)
description = Column(String, nullable=False)
permissions = Column(ARRAY(String), index=True, server_default="{}", nullable=False)

View File

@ -36,6 +36,10 @@ class WorkspaceUser(object):
def role(self):
return self.workspace_role.role.name
@property
def role_displayname(self):
return self.workspace_role.role.display_name
@property
def status(self):
return "active"

View File

@ -13,6 +13,7 @@ from atst.models import Role, Permissions
roles = [
Role(
name="ccpo",
display_name="CCPO",
description="",
permissions=[
Permissions.VIEW_ORIGINAL_JEDI_REQEUST,
@ -51,6 +52,7 @@ roles = [
),
Role(
name="owner",
display_name="Owner",
description="",
permissions=[
Permissions.REQUEST_JEDI_WORKSPACE,
@ -82,6 +84,7 @@ roles = [
),
Role(
name="admin",
display_name="Admin",
description="",
permissions=[
Permissions.VIEW_USAGE_REPORT,
@ -108,16 +111,18 @@ roles = [
),
Role(
name="developer",
display_name="Developer",
description="",
permissions=[
Permissions.VIEW_USAGE_REPORT,
Permissions.VIEW_USAGE_DOLLARS,
Permissions.VIEW_WORKSPACE,
Permissions.VIEW_APPLICATION_IN_WORKSPACE
Permissions.VIEW_APPLICATION_IN_WORKSPACE,
],
),
Role(
name="billing_auditor",
display_name="Billing Auditor",
description="",
permissions=[
Permissions.VIEW_USAGE_REPORT,
@ -129,6 +134,7 @@ roles = [
Role(
name="security_auditor",
description="",
display_name="Security Auditor",
permissions=[
Permissions.VIEW_ASSIGNED_ATAT_ROLE_CONFIGURATIONS,
Permissions.VIEW_ASSIGNED_CSP_ROLE_CONFIGURATIONS,
@ -138,7 +144,10 @@ roles = [
],
),
Role(
name="default", description="", permissions=[Permissions.REQUEST_JEDI_WORKSPACE]
name="default",
display_name="Default",
description="",
permissions=[Permissions.REQUEST_JEDI_WORKSPACE],
),
]

View File

@ -28,6 +28,7 @@ class RoleFactory(Base):
model = Role
name = factory.Faker("name")
display_name = "Role display name"
description = "This is a test role."
permissions = []

View File

@ -1,6 +1,7 @@
from atst.domain.environments import Environments
from atst.domain.workspaces import Workspaces
from atst.domain.projects import Projects
from atst.models.workspace_user import WorkspaceUser
from tests.factories import RequestFactory, UserFactory
@ -37,3 +38,19 @@ def test_has_environment_roles():
)
Environments.add_member(owner, project.environments[0], workspace_user.user)
assert workspace_user.has_environment_roles
def test_role_displayname():
owner = UserFactory.create()
developer_data = {
"dod_id": "1234567890",
"first_name": "Test",
"last_name": "User",
"email": "test.user@mail.com",
"workspace_role": "developer",
}
workspace = Workspaces.create(RequestFactory.create(creator=owner))
workspace_user = Workspaces.create_member(owner, workspace, developer_data)
assert workspace_user.role_displayname == "Developer"