Minor fixes
This commit is contained in:
parent
b903336707
commit
f35d0add55
@ -1,5 +1,5 @@
|
||||
from sqlalchemy import String, Column, ForeignKey, inspect
|
||||
from sqlalchemy.dialects.postgresql import UUID, JSON
|
||||
from sqlalchemy.dialects.postgresql import UUID, JSONB
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from atst.models import Base, types
|
||||
@ -20,8 +20,8 @@ class AuditEvent(Base, TimestampsMixin):
|
||||
request_id = Column(UUID(as_uuid=True), ForeignKey("requests.id"), index=True)
|
||||
request = relationship("Request", backref="audit_events")
|
||||
|
||||
changed_state = Column(JSON())
|
||||
event_details = Column(JSON())
|
||||
changed_state = Column(JSONB())
|
||||
event_details = Column(JSONB())
|
||||
|
||||
resource_type = Column(String(), nullable=False)
|
||||
resource_id = Column(UUID(as_uuid=True), index=True, nullable=False)
|
||||
|
@ -45,19 +45,24 @@ class WorkspaceRole(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
|
||||
@property
|
||||
def history(self):
|
||||
previous_state = mixins.AuditableMixin.get_history(self)
|
||||
auditable_previous_state = {}
|
||||
change_set = {}
|
||||
if "role_id" in previous_state:
|
||||
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
|
||||
auditable_previous_state["role"] = [from_role.display_name, to_role]
|
||||
change_set["role"] = [from_role.display_name, to_role]
|
||||
if "status" in previous_state:
|
||||
auditable_previous_state["status"]= previous_state["status"].value
|
||||
return auditable_previous_state
|
||||
from_status = previous_state["status"].value
|
||||
to_status = self.status.value
|
||||
change_set["status"] = [from_status, to_status]
|
||||
return change_set
|
||||
|
||||
@property
|
||||
def event_details(self):
|
||||
return {"updated_user": self.user_name, "updated_user_id": str(self.user_id)}
|
||||
return {
|
||||
"updated_user_name": self.user_name,
|
||||
"updated_user_id": str(self.user_id),
|
||||
}
|
||||
|
||||
@property
|
||||
def latest_invitation(self):
|
||||
|
@ -29,7 +29,7 @@
|
||||
<br>
|
||||
|
||||
{% if event.event_details %}
|
||||
for User <code>{{ event.event_details.updated_user_id }}</code> ({{ event.event_details.updated_user }})
|
||||
for User <code>{{ event.event_details.updated_user_id }}</code> ({{ event.event_details.updated_user_name }})
|
||||
<br>
|
||||
{% endif %}
|
||||
|
||||
|
@ -20,14 +20,15 @@ def test_has_no_history(session):
|
||||
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_role = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
audit_events = (
|
||||
create_event = (
|
||||
session.query(AuditEvent)
|
||||
.filter(AuditEvent.resource_id == workspace_role.id)
|
||||
.all()
|
||||
.filter(
|
||||
AuditEvent.resource_id == workspace_role.id, AuditEvent.action == "create"
|
||||
)
|
||||
.one()
|
||||
)
|
||||
|
||||
create_event = [event for event in audit_events if event.action == "create"]
|
||||
assert not create_event[0].changed_state
|
||||
assert not create_event.changed_state
|
||||
|
||||
|
||||
def test_has_history(session):
|
||||
@ -44,7 +45,8 @@ def test_has_history(session):
|
||||
)
|
||||
changed_events = [event for event in audit_events if event.changed_state]
|
||||
|
||||
assert changed_events[0].changed_state["role"]
|
||||
assert changed_events[0].changed_state["role"][0]
|
||||
assert changed_events[0].changed_state["role"][1]
|
||||
|
||||
|
||||
def test_event_details():
|
||||
@ -54,7 +56,7 @@ def test_event_details():
|
||||
workspace = Workspaces.create(RequestFactory.create(creator=owner))
|
||||
workspace_role = WorkspaceRoles.add(user, workspace.id, "developer")
|
||||
|
||||
assert workspace_role.event_details["updated_user"] == user.displayname
|
||||
assert workspace_role.event_details["updated_user_name"] == user.displayname
|
||||
assert workspace_role.event_details["updated_user_id"] == str(user.id)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user