diff --git a/package.json b/package.json index ae046c4..625daac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "directus-helpers", - "version": "1.4.0", + "version": "1.5.0", "description": "Helpers Directus Extensions", "author": "AntoXa PRO ", "homepage": "https://antoxahub.ru/antoxa/directus-helpers", diff --git a/src/services/factory.ts b/src/services/factory.ts index c744b25..3b36b08 100644 --- a/src/services/factory.ts +++ b/src/services/factory.ts @@ -3,7 +3,9 @@ import type { ItemsService, FilesService, UsersService, - RolesService + RolesService, + AuthorizationService, + AuthenticationService } from '@directus/api/dist/services' export type TFactoryServicesOpts = { @@ -22,6 +24,8 @@ export class FactoryServices { private _files: FilesService | null = null private _users: UsersService | null = null private _roles: RolesService | null = null + private _authorization: AuthorizationService | null = null + private _authentication: AuthenticationService | null = null constructor(opts: TFactoryServicesOpts) { this.opts = opts @@ -68,4 +72,24 @@ export class FactoryServices { } return this._roles as RolesService } + + get authorization() { + if (!this._authorization) { + this._roles = new this.opts.services.AuthorizationService({ + schema: this.opts.schema, + accountability: this.opts.accountability + }) + } + return this._authorization as AuthorizationService + } + + get authentication() { + if (!this._authentication) { + this._roles = new this.opts.services.AuthenticationService({ + schema: this.opts.schema, + accountability: this.opts.accountability + }) + } + return this._authentication as AuthenticationService + } }