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:
Tom Moor
2019-08-05 20:38:31 -07:00
committed by GitHub
parent 75b03fdba2
commit fb4f6822a4
37 changed files with 911 additions and 148 deletions

View File

@ -4,7 +4,14 @@ import auth from '../middlewares/authentication';
import addHours from 'date-fns/add_hours';
import { stripSubdomain } from '../../shared/utils/domains';
import { slackAuth } from '../../shared/utils/routeHelpers';
import { Authentication, Collection, Integration, User, Team } from '../models';
import {
Authentication,
Collection,
Integration,
User,
Event,
Team,
} from '../models';
import * as Slack from '../slack';
const router = new Router();
@ -69,6 +76,20 @@ router.get('slack.callback', auth({ required: false }), async ctx => {
await team.provisionSubdomain(data.team.domain);
}
if (isFirstSignin) {
await Event.create({
name: 'users.create',
actorId: user.id,
userId: user.id,
teamId: team.id,
data: {
name: user.name,
service: 'slack',
},
ip: ctx.request.ip,
});
}
// update email address if it's changed in Slack
if (!isFirstSignin && data.user.email !== user.email) {
await user.update({ email: data.user.email });