Coverage for rfpy/vendor/api/audit.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-29 13:25 +0000

1from typing import Annotated 

2 

3from rfpy.suxint import http 

4from rfpy.api import fetch 

5from rfpy.auth import perms 

6from rfpy.model import AuditEvent 

7from rfpy.web import serial 

8 

9 

10@http 

11def get_events( 

12 session, user, pager 

13) -> Annotated[list[dict], list[serial.SummaryEvent]]: 

14 user.check_permission(perms.MANAGE_USERS) 

15 q = fetch.audit_events(user.organisation) 

16 cols = ( 

17 AuditEvent.id, 

18 AuditEvent.timestamp, 

19 AuditEvent.user_id, 

20 AuditEvent.event_type, 

21 ) 

22 return [ 

23 e._asdict() for e in q.slice(pager.startfrom, pager.goto).with_entities(*cols) 

24 ]