Fix errors from last commit

This commit is contained in:
leigh-mil 2018-11-12 16:00:02 -05:00 committed by Montana
parent 3b6d745955
commit 82868728ba
2 changed files with 8 additions and 40 deletions

View File

@ -3,8 +3,6 @@ from flask import g
from sqlalchemy.orm import class_mapper
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.utils import camel_to_snake, getattr_path
@ -13,38 +11,6 @@ ACTION_UPDATE = "update"
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):
@staticmethod
def create_audit_event(connection, resource, action):
@ -105,7 +71,7 @@ class AuditableMixin(object):
return getattr_path(self, "history")
def auditable_event_details(self):
return getattr_path(self, "auditable_event_details")
return getattr_path(self, "event_details")
def auditable_resource_type(self):
return camel_to_snake(type(self).__name__)

View File

@ -10,6 +10,7 @@ from atst.database import db
from atst.models.environment_role import EnvironmentRole
from atst.models.project import Project
from atst.models.environment import Environment
from atst.models.role import Role
class Status(Enum):
@ -43,14 +44,15 @@ class WorkspaceRole(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
@property
def history(self):
previous_state = AuditableMixin.get_history(self)
from_role = previous_role["role"]
previous_state = mixins.AuditableMixin.get_history(self)
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
return {"role": [from_role, to_role]}
return {"role": [from_role.display_name, to_role]}
@property
def auditable_event_details(self):
return {"updated_user": self.user_name, "updated_user_id" = self.user_id}
def event_details(self):
return {"updated_user": self.user_name, "updated_user_id": str(self.user_id)}
@property
def latest_invitation(self):