feat(auth): add user and role management

This commit is contained in:
Ali BARIN
2023-07-18 21:00:10 +00:00
parent b581f539e2
commit 9e64af4793
68 changed files with 1970 additions and 156 deletions

View File

@@ -2,7 +2,7 @@ import crypto from 'node:crypto';
import { QueryContext, ModelOptions } from 'objection';
import bcrypt from 'bcrypt';
import { DateTime } from 'luxon';
import { Ability } from '@casl/ability';
import { PureAbility, fieldPatternMatcher, mongoQueryMatcher } from '@casl/ability';
import type { Subject } from '@casl/ability';
import appConfig from '../config/app';
@@ -297,7 +297,11 @@ class User extends Base {
throw new Error('User.permissions must be fetched!');
}
return new Ability(this.permissions);
// We're not using mongo, but our fields, conditions match
return new PureAbility(this.permissions, {
conditionsMatcher: mongoQueryMatcher,
fieldMatcher: fieldPatternMatcher
});
}
can(action: string, subject: Subject) {