mirror of
https://github.com/directus/directus.git
synced 2026-01-28 18:38:10 -05:00
Fix things for MySQL
This commit is contained in:
@@ -50,9 +50,9 @@ const app = express()
|
||||
.use('/admin', express.static(path.join(__dirname, 'admin')))
|
||||
.use('/admin/*', (req, res) => res.sendFile(path.join(__dirname, 'admin/index.html')))
|
||||
|
||||
.use('/auth', authRouter)
|
||||
|
||||
.use(authenticate)
|
||||
|
||||
.use('/auth', authRouter)
|
||||
.use('/activity', activityRouter)
|
||||
.use('/assets', assetsRouter)
|
||||
.use('/collections', collectionsRouter)
|
||||
|
||||
@@ -9,8 +9,6 @@ import getEmailFromProfile from '../utils/get-email-from-profile';
|
||||
import { InvalidPayloadException } from '../exceptions/invalid-payload';
|
||||
import ms from 'ms';
|
||||
import cookieParser from 'cookie-parser';
|
||||
import { Action } from '../types';
|
||||
import ActivityService from '../services/activity';
|
||||
|
||||
const router = Router();
|
||||
|
||||
@@ -26,7 +24,6 @@ router.post(
|
||||
const authenticationService = new AuthenticationService({
|
||||
accountability: req.accountability,
|
||||
});
|
||||
const activityService = new ActivityService();
|
||||
|
||||
const { error } = loginSchema.validate(req.body);
|
||||
if (error) throw new InvalidPayloadException(error.message);
|
||||
@@ -47,16 +44,6 @@ router.post(
|
||||
}
|
||||
);
|
||||
|
||||
/** @todo move activity creation to AuthService */
|
||||
await activityService.create({
|
||||
action: Action.AUTHENTICATE,
|
||||
collection: 'directus_users',
|
||||
item: id,
|
||||
ip: ip,
|
||||
user_agent: userAgent,
|
||||
action_by: id,
|
||||
});
|
||||
|
||||
const payload = {
|
||||
data: { access_token: accessToken, expires },
|
||||
} as Record<string, Record<string, any>>;
|
||||
@@ -159,7 +146,6 @@ router.use(grant.express()(getGrantConfig()));
|
||||
router.get(
|
||||
'/sso/:provider/callback',
|
||||
asyncHandler(async (req, res) => {
|
||||
const activityService = new ActivityService();
|
||||
const authenticationService = new AuthenticationService({
|
||||
accountability: req.accountability,
|
||||
});
|
||||
@@ -170,18 +156,6 @@ router.get(
|
||||
email
|
||||
);
|
||||
|
||||
const ip = req.ip;
|
||||
const userAgent = req.get('user-agent');
|
||||
|
||||
await activityService.create({
|
||||
action: Action.AUTHENTICATE,
|
||||
collection: 'directus_users',
|
||||
item: id,
|
||||
ip: ip,
|
||||
user_agent: userAgent,
|
||||
action_by: id,
|
||||
});
|
||||
|
||||
return res.status(200).json({
|
||||
data: { access_token: accessToken, refresh_token: refreshToken, expires },
|
||||
});
|
||||
|
||||
@@ -4,8 +4,9 @@ import argon2 from 'argon2';
|
||||
import { nanoid } from 'nanoid';
|
||||
import ms from 'ms';
|
||||
import { InvalidCredentialsException } from '../exceptions';
|
||||
import { Session, Accountability, AbstractServiceOptions } from '../types';
|
||||
import { Session, Accountability, AbstractServiceOptions, Action } from '../types';
|
||||
import Knex from 'knex';
|
||||
import ActivityService from '../services/activity';
|
||||
|
||||
type AuthenticateOptions = {
|
||||
email: string;
|
||||
@@ -17,10 +18,12 @@ type AuthenticateOptions = {
|
||||
export default class AuthenticationService {
|
||||
knex: Knex;
|
||||
accountability: Accountability | null;
|
||||
activityService: ActivityService;
|
||||
|
||||
constructor(options?: AbstractServiceOptions) {
|
||||
this.knex = options?.knex || database;
|
||||
this.accountability = options?.accountability || null;
|
||||
this.activityService = new ActivityService();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -72,6 +75,17 @@ export default class AuthenticationService {
|
||||
user_agent: userAgent,
|
||||
});
|
||||
|
||||
if (this.accountability) {
|
||||
await this.activityService.create({
|
||||
action: Action.AUTHENTICATE,
|
||||
action_by: user.id,
|
||||
ip: this.accountability.ip,
|
||||
user_agent: this.accountability.userAgent,
|
||||
collection: 'directus_users',
|
||||
item: user.id,
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
accessToken,
|
||||
refreshToken,
|
||||
|
||||
@@ -42,14 +42,10 @@ export default class FieldsService {
|
||||
fields = (await this.service.readByQuery({})) as Field[];
|
||||
}
|
||||
|
||||
const fieldsQuery = this.knex.select('*').from('directus_fields');
|
||||
|
||||
if (collection) {
|
||||
fieldsQuery.where({ collection });
|
||||
}
|
||||
|
||||
const columns = await schemaInspector.columnInfo(collection);
|
||||
|
||||
console.log(columns);
|
||||
|
||||
return columns.map((column) => {
|
||||
const field = fields.find(
|
||||
(field) => field.field === column.name && field.collection === column.table
|
||||
|
||||
@@ -48,6 +48,7 @@ export default class ItemsService implements AbstractService {
|
||||
accountability: this.accountability,
|
||||
knex: trx,
|
||||
});
|
||||
|
||||
const authorizationService = new AuthorizationService({
|
||||
accountability: this.accountability,
|
||||
knex: trx,
|
||||
|
||||
Reference in New Issue
Block a user