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