Add Role.display_name
This commit is contained in:
parent
7250e1167c
commit
e64b2dd034
45
alembic/versions/c19ae79d2521_add_role_display_name.py
Normal file
45
alembic/versions/c19ae79d2521_add_role_display_name.py
Normal 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 ###
|
@ -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)
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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],
|
||||
),
|
||||
]
|
||||
|
||||
|
@ -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 = []
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user