feat: Events / audit log (#1008)
* feat: Record events in DB * feat: events API * First pass, hacky activity feed * WIP * Reset dashboard * feat: audit log UI feat: store ip address * chore: Document events.list api * fix: command specs * await event create * fix: backlinks service * tidy * fix: Hide audit log menu item if not admin
This commit is contained in:
33
app/models/Event.js
Normal file
33
app/models/Event.js
Normal file
@ -0,0 +1,33 @@
|
||||
// @flow
|
||||
import BaseModel from './BaseModel';
|
||||
import User from './User';
|
||||
|
||||
class Event extends BaseModel {
|
||||
id: string;
|
||||
name: string;
|
||||
modelId: ?string;
|
||||
actorId: string;
|
||||
actorIpAddress: ?string;
|
||||
documentId: string;
|
||||
collectionId: ?string;
|
||||
userId: string;
|
||||
createdAt: string;
|
||||
actor: User;
|
||||
data: { name: string, email: string };
|
||||
|
||||
get model() {
|
||||
return this.name.split('.')[0];
|
||||
}
|
||||
|
||||
get verb() {
|
||||
return this.name.split('.')[1];
|
||||
}
|
||||
|
||||
get verbPastTense() {
|
||||
const v = this.verb;
|
||||
if (v.endsWith('e')) return `${v}d`;
|
||||
return `${v}ed`;
|
||||
}
|
||||
}
|
||||
|
||||
export default Event;
|
Reference in New Issue
Block a user