Display app users view only table
This commit is contained in:
@@ -5,6 +5,13 @@ from atst.models import Base
|
||||
from atst.models.types import Id
|
||||
from atst.models import mixins
|
||||
|
||||
from atst.models.application_role import (
|
||||
ApplicationRole,
|
||||
Status as ApplicationRoleStatuses,
|
||||
)
|
||||
|
||||
from atst.database import db
|
||||
|
||||
|
||||
class Application(
|
||||
Base, mixins.TimestampsMixin, mixins.AuditableMixin, mixins.DeletableMixin
|
||||
@@ -28,6 +35,15 @@ class Application(
|
||||
def users(self):
|
||||
return set(role.user for role in self.roles)
|
||||
|
||||
@property
|
||||
def members(self):
|
||||
return (
|
||||
db.session.query(ApplicationRole)
|
||||
.filter(ApplicationRole.application_id == self.id)
|
||||
.filter(ApplicationRole.status != ApplicationRoleStatuses.DISABLED)
|
||||
.all()
|
||||
)
|
||||
|
||||
@property
|
||||
def num_users(self):
|
||||
return len(self.users)
|
||||
|
@@ -4,6 +4,7 @@ from sqlalchemy.dialects.postgresql import UUID
|
||||
from sqlalchemy.orm import relationship
|
||||
from sqlalchemy.event import listen
|
||||
|
||||
from atst.utils import first_or_none
|
||||
from atst.models import Base, mixins
|
||||
from atst.models.mixins.auditable import record_permission_sets_updates
|
||||
from .types import Id
|
||||
@@ -59,6 +60,11 @@ class ApplicationRole(
|
||||
def history(self):
|
||||
return self.get_changes()
|
||||
|
||||
def has_permission_set(self, perm_set_name):
|
||||
return first_or_none(
|
||||
lambda prms: prms.name == perm_set_name, self.permission_sets
|
||||
)
|
||||
|
||||
|
||||
Index(
|
||||
"application_role_user_application",
|
||||
|
Reference in New Issue
Block a user