Fix errors from last commit
This commit is contained in:
parent
3b6d745955
commit
82868728ba
@ -3,8 +3,6 @@ from flask import g
|
|||||||
from sqlalchemy.orm import class_mapper
|
from sqlalchemy.orm import class_mapper
|
||||||
from sqlalchemy.orm.attributes import get_history
|
from sqlalchemy.orm.attributes import get_history
|
||||||
|
|
||||||
from atst.database import db
|
|
||||||
from atst.models.workspace_role import WorkspaceRole
|
|
||||||
from atst.models.audit_event import AuditEvent
|
from atst.models.audit_event import AuditEvent
|
||||||
from atst.utils import camel_to_snake, getattr_path
|
from atst.utils import camel_to_snake, getattr_path
|
||||||
|
|
||||||
@ -13,38 +11,6 @@ ACTION_UPDATE = "update"
|
|||||||
ACTION_DELETE = "delete"
|
ACTION_DELETE = "delete"
|
||||||
|
|
||||||
|
|
||||||
class AuditableWorkspaceRole(AuditableMixin):
|
|
||||||
target = target
|
|
||||||
changed_state = get_changed_state()
|
|
||||||
event_details = get_event_details()
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def get_changed_state(self, resource):
|
|
||||||
previous_state = {}
|
|
||||||
inspr = inspect(target)
|
|
||||||
attrs = class_mapper(target.__class__).column_attrs
|
|
||||||
for attr in attrs:
|
|
||||||
history = getattr(inspr.attrs, attr.key).history
|
|
||||||
if history.has_changes():
|
|
||||||
previous_state[attr.key] = get_history(target, attr.key)[2].pop()
|
|
||||||
|
|
||||||
from_role = previous_role["role"]
|
|
||||||
to_role = target.role_displayname
|
|
||||||
return {"role": [from_role, to_role]}
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def get_event_details(self):
|
|
||||||
# get user that is being updated
|
|
||||||
# does this need to query the db?
|
|
||||||
ws_role_id = target.auditable_request_id()
|
|
||||||
ws_role = (
|
|
||||||
db.session.query(WorkspaceRole)
|
|
||||||
.filter(WorkspaceRole.id == ws_role_id)
|
|
||||||
.first()
|
|
||||||
)
|
|
||||||
return {"user": ws_role.user_name}
|
|
||||||
|
|
||||||
|
|
||||||
class AuditableMixin(object):
|
class AuditableMixin(object):
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def create_audit_event(connection, resource, action):
|
def create_audit_event(connection, resource, action):
|
||||||
@ -105,7 +71,7 @@ class AuditableMixin(object):
|
|||||||
return getattr_path(self, "history")
|
return getattr_path(self, "history")
|
||||||
|
|
||||||
def auditable_event_details(self):
|
def auditable_event_details(self):
|
||||||
return getattr_path(self, "auditable_event_details")
|
return getattr_path(self, "event_details")
|
||||||
|
|
||||||
def auditable_resource_type(self):
|
def auditable_resource_type(self):
|
||||||
return camel_to_snake(type(self).__name__)
|
return camel_to_snake(type(self).__name__)
|
||||||
|
@ -10,6 +10,7 @@ from atst.database import db
|
|||||||
from atst.models.environment_role import EnvironmentRole
|
from atst.models.environment_role import EnvironmentRole
|
||||||
from atst.models.project import Project
|
from atst.models.project import Project
|
||||||
from atst.models.environment import Environment
|
from atst.models.environment import Environment
|
||||||
|
from atst.models.role import Role
|
||||||
|
|
||||||
|
|
||||||
class Status(Enum):
|
class Status(Enum):
|
||||||
@ -43,14 +44,15 @@ class WorkspaceRole(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def history(self):
|
def history(self):
|
||||||
previous_state = AuditableMixin.get_history(self)
|
previous_state = mixins.AuditableMixin.get_history(self)
|
||||||
from_role = previous_role["role"]
|
from_role_id = previous_state["role_id"]
|
||||||
|
from_role = db.session.query(Role).filter(Role.id == from_role_id).one()
|
||||||
to_role = self.role_displayname
|
to_role = self.role_displayname
|
||||||
return {"role": [from_role, to_role]}
|
return {"role": [from_role.display_name, to_role]}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def auditable_event_details(self):
|
def event_details(self):
|
||||||
return {"updated_user": self.user_name, "updated_user_id" = self.user_id}
|
return {"updated_user": self.user_name, "updated_user_id": str(self.user_id)}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def latest_invitation(self):
|
def latest_invitation(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user