diff --git a/atst/models/workspace_role.py b/atst/models/workspace_role.py index 97074602..d7ae975d 100644 --- a/atst/models/workspace_role.py +++ b/atst/models/workspace_role.py @@ -36,6 +36,18 @@ class WorkspaceRole(Base, mixins.TimestampsMixin, mixins.AuditableMixin): self.role.name, self.workspace.name, self.user_id, self.id ) + @property + def display_status(self): + if self.status == Status.ACTIVE: + return "Active" + else: + if any(i.is_expired for i in self.invitations): + return "Invitation Expired" + elif any(i.is_rejected for i in self.invitations): + return "Invitation Rejected" + else: + return "Pending" + Index( "workspace_role_user_workspace", diff --git a/atst/models/workspace_user.py b/atst/models/workspace_user.py index aae7b88a..93b6e9f5 100644 --- a/atst/models/workspace_user.py +++ b/atst/models/workspace_user.py @@ -35,7 +35,7 @@ class WorkspaceUser(object): @property def status(self): - return "active" + return self.workspace_role.display_status @property def num_environment_roles(self):