@aristid/leav-types 0.0.7-dc9cdc7 → 0.0.7-e091028

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -188,5 +188,5 @@ export declare namespace elasticSearch {
188
188
  let url_1: string;
189
189
  export { url_1 as url };
190
190
  }
191
- export declare let pluginsPath: string;
191
+ export declare let pluginsPath: string | any[];
192
192
  export { _export as export, _import as import };
@@ -50,3 +50,4 @@ export let debug: boolean;
50
50
  export namespace redis {
51
51
  let database: number;
52
52
  }
53
+ export let pluginsPath: string[];
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ consumer: {
3
+ channel: {
4
+ ack: jest.Mock<any, any, any>;
5
+ };
6
+ };
7
+ };
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ declare const _default: {
2
+ info: jest.Mock<any, any, any>;
3
+ warn: jest.Mock<any, any, any>;
4
+ error: jest.Mock<any, any, any>;
5
+ debug: jest.Mock<any, any, any>;
6
+ };
7
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import { Mockify } from '@leav/utils';
2
+ import { ICacheService, ICachesService } from '../../infra/cache/cacheService';
3
+ export declare const mockCacheService: Mockify<ICacheService>;
4
+ export declare const mockCachesService: Mockify<ICachesService>;
@@ -28,7 +28,7 @@ export interface IConfig {
28
28
  dbProfiler: IDbProfilerConfig;
29
29
  instanceId: string;
30
30
  elasticSearch: IElasticSearchConfig;
31
- pluginsPath: string;
31
+ pluginsPath: string[];
32
32
  }
33
33
  export declare enum CoreMode {
34
34
  SERVER = "server",
@@ -113,7 +113,6 @@ export interface IAmqp {
113
113
  exchange: string;
114
114
  type: string;
115
115
  prefetch?: number;
116
- queues?: string[];
117
116
  }
118
117
  export interface IRedis {
119
118
  host: string;
@@ -1,3 +1,4 @@
1
+ import { IKeyValue } from './shared';
1
2
  export interface IGlobalSettings {
2
3
  defaultApp: string;
3
4
  name: string;
@@ -9,4 +10,5 @@ export interface IGlobalSettings {
9
10
  library: string;
10
11
  recordId: string;
11
12
  };
13
+ settings?: IKeyValue<any>;
12
14
  }
@@ -3,12 +3,12 @@ import { IDbProfiler } from './dbProfiler';
3
3
  import { IValueVersion } from './value';
4
4
  export interface IQueryInfos {
5
5
  userId: string;
6
+ groupsId?: string[];
6
7
  lang?: string;
7
8
  defaultLang?: string;
8
9
  queryId?: string;
9
10
  version?: IValueVersion;
10
11
  treeId?: string;
11
- groupsId?: string[];
12
12
  applicationId?: string;
13
13
  dbProfiler?: IDbProfiler;
14
14
  trigger?: string;
@@ -3,6 +3,8 @@ import { IAdminPermissionDomain } from 'domain/permission/adminPermissionDomain'
3
3
  import { IGlobalSettingsRepo } from 'infra/globalSettings/globalSettingsRepo';
4
4
  import { IGlobalSettings } from '_types/globalSettings';
5
5
  import { IQueryInfos } from '_types/queryInfos';
6
+ import { IUtils } from '../../utils/utils';
7
+ import { ICachesService } from '../../infra/cache/cacheService';
6
8
  export interface IGlobalSettingsDomain {
7
9
  saveSettings({ settings, ctx }: {
8
10
  settings: IGlobalSettings;
@@ -14,5 +16,7 @@ export interface IGlobalSettingsDomainDeps {
14
16
  'core.domain.permission.admin': IAdminPermissionDomain;
15
17
  'core.domain.eventsManager': IEventsManagerDomain;
16
18
  'core.infra.globalSettings': IGlobalSettingsRepo;
19
+ 'core.infra.cache.cacheService': ICachesService;
20
+ 'core.utils': IUtils;
17
21
  }
18
- export default function ({ 'core.domain.permission.admin': adminPermissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.infra.globalSettings': globalSettingsRepo }: IGlobalSettingsDomainDeps): IGlobalSettingsDomain;
22
+ export default function ({ 'core.domain.permission.admin': adminPermissionDomain, 'core.domain.eventsManager': eventsManagerDomain, 'core.infra.globalSettings': globalSettingsRepo, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils }: IGlobalSettingsDomainDeps): IGlobalSettingsDomain;
@@ -1,6 +1,6 @@
1
1
  import { AdminPermissionsActions, ApplicationPermissionsActions, AttributePermissionsActions, IPermissionsTreeTarget, ITreePermissionsConf, LibraryPermissionsActions, PermissionsActions, PermissionTypes, RecordAttributePermissionsActions, RecordPermissionsActions, TreeNodePermissionsActions, TreePermissionsActions } from '_types/permissions';
2
2
  import { IQueryInfos } from '_types/queryInfos';
3
- import { ITreeNode, TreePaths } from '_types/tree';
3
+ import { TreePaths } from '_types/tree';
4
4
  export declare const PERMISSIONS_CACHE_HEADER = "permissions";
5
5
  export declare const PERMISSIONS_NULL_PLACEHOLDER = "__null__";
6
6
  export interface IPermissionTarget {
@@ -28,18 +28,6 @@ export interface IGetPermissionsByActionsParams {
28
28
  export type PermByActionsRes = {
29
29
  [name: string]: boolean | null;
30
30
  } | null;
31
- export interface IGetPermissionByUserGroupsParams {
32
- type: PermissionTypes;
33
- action: PermissionsActions;
34
- userGroupsPaths: TreePaths[];
35
- applyTo?: string;
36
- treeTarget?: {
37
- tree: string;
38
- path: ITreeNode[];
39
- };
40
- getDefaultPermission?: () => Promise<boolean> | boolean;
41
- ctx: IQueryInfos;
42
- }
43
31
  export interface IGetAdminPermissionParams {
44
32
  action: AdminPermissionsActions;
45
33
  userId: string;
@@ -1,9 +1,11 @@
1
1
  import { IPermissionRepo } from 'infra/permission/permissionRepo';
2
- import { IGetPermissionByUserGroupsParams } from '../_types';
3
2
  import { IReducePermissionsArrayHelper } from './reducePermissionsArray';
4
3
  import { ISimplePermissionHelper } from './simplePermission';
5
4
  import { IDefaultPermissionHelper } from './defaultPermission';
6
5
  import { IElementAncestorsHelper } from 'domain/tree/helpers/elementAncestors';
6
+ import { ITreeNode, TreePaths } from '../../../_types/tree';
7
+ import { PermissionsActions, PermissionTypes } from '../../../_types/permissions';
8
+ import { IQueryInfos } from '../../../_types/queryInfos';
7
9
  export interface IPermissionByUserGroupsHelperDeps {
8
10
  'core.domain.permission.helpers.simplePermission': ISimplePermissionHelper;
9
11
  'core.domain.permission.helpers.reducePermissionsArray': IReducePermissionsArrayHelper;
@@ -11,7 +13,20 @@ export interface IPermissionByUserGroupsHelperDeps {
11
13
  'core.domain.tree.helpers.elementAncestors': IElementAncestorsHelper;
12
14
  'core.infra.permission'?: IPermissionRepo;
13
15
  }
16
+ interface IGetPermissionByUserGroupsParams {
17
+ type: PermissionTypes;
18
+ action: PermissionsActions;
19
+ userGroupsPaths: TreePaths[];
20
+ applyTo?: string;
21
+ treeTarget?: {
22
+ tree: string;
23
+ path: ITreeNode[];
24
+ };
25
+ getDefaultPermission?: () => Promise<boolean> | boolean;
26
+ ctx: IQueryInfos;
27
+ }
14
28
  export interface IPermissionByUserGroupsHelper {
15
29
  getPermissionByUserGroups: (params: IGetPermissionByUserGroupsParams) => Promise<boolean>;
16
30
  }
17
31
  export default function (deps: IPermissionByUserGroupsHelperDeps): IPermissionByUserGroupsHelper;
32
+ export {};
@@ -0,0 +1,24 @@
1
+ import { IAttribute } from '_types/attribute';
2
+ import { IQueryInfos } from '_types/queryInfos';
3
+ import { ITreeNode } from '_types/tree';
4
+ import { GetCoreEntityByIdFunc } from 'domain/helpers/getCoreEntityById';
5
+ import { IPermissionRepo } from 'infra/permission/permissionRepo';
6
+ import { ITreeRepo } from 'infra/tree/treeRepo';
7
+ import { IDefaultPermissionHelper } from 'domain/permission/helpers/defaultPermission';
8
+ interface IAccessPermissionFilterDeps {
9
+ 'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
10
+ 'core.infra.tree': ITreeRepo;
11
+ 'core.infra.permission': IPermissionRepo;
12
+ 'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
13
+ }
14
+ export interface IGetAccessPermissionsValue {
15
+ treeId: string;
16
+ attribute: IAttribute;
17
+ permissions: {
18
+ true: Array<ITreeNode['id']>;
19
+ false: Array<ITreeNode['id']>;
20
+ };
21
+ }
22
+ export type IGetAccessPermissions = (groupsIds: string[], library: string, deps: IAccessPermissionFilterDeps, ctx: IQueryInfos) => Promise<IGetAccessPermissionsValue[]>;
23
+ declare const getAccessPermissionsFilters: IGetAccessPermissions;
24
+ export default getAccessPermissionsFilters;
@@ -1 +1,2 @@
1
1
  export { default as sendRecordUpdateEvent } from './sendRecordUpdateEvent';
2
+ export { default as getAccessPermissionFilters } from './getAccessPermissionFilters';
@@ -22,6 +22,8 @@ import { ICreateRecordResult, IFindRecordParams } from './_types';
22
22
  import { IFormRepo } from 'infra/form/formRepo';
23
23
  import { IRecordAttributePermissionDomain } from '../permission/recordAttributePermissionDomain';
24
24
  import { IAttributePermissionDomain } from '../permission/attributePermissionDomain';
25
+ import { IPermissionRepo } from 'infra/permission/permissionRepo';
26
+ import { IDefaultPermissionHelper } from 'domain/permission/helpers/defaultPermission';
25
27
  export interface IRecordDomain {
26
28
  createRecord(params: {
27
29
  library: string;
@@ -94,6 +96,7 @@ export interface IRecordDomainDeps {
94
96
  'core.domain.permission.library': ILibraryPermissionDomain;
95
97
  'core.domain.permission.attribute': IAttributePermissionDomain;
96
98
  'core.domain.permission.recordAttribute': IRecordAttributePermissionDomain;
99
+ 'core.domain.permission.helpers.defaultPermission': IDefaultPermissionHelper;
97
100
  'core.domain.helpers.getCoreEntityById': GetCoreEntityByIdFunc;
98
101
  'core.domain.helpers.validate': IValidateHelper;
99
102
  'core.domain.record.helpers.sendRecordUpdateEvent': SendRecordUpdateEventHelper;
@@ -101,9 +104,10 @@ export interface IRecordDomainDeps {
101
104
  'core.infra.tree': ITreeRepo;
102
105
  'core.infra.value': IValueRepo;
103
106
  'core.infra.form': IFormRepo;
107
+ 'core.infra.permission': IPermissionRepo;
104
108
  'core.domain.eventsManager': IEventsManagerDomain;
105
109
  'core.infra.cache.cacheService': ICachesService;
106
110
  'core.utils': IUtils;
107
111
  translator: i18n;
108
112
  }
109
- export default function ({ config, 'core.infra.record': recordRepo, 'core.domain.attribute': attributeDomain, 'core.domain.value': valueDomain, 'core.domain.permission.record': recordPermissionDomain, 'core.domain.permission.library': libraryPermissionDomain, 'core.domain.permission.attribute': attrPermissionDomain, 'core.domain.permission.recordAttribute': recordAttributePermissionDomain, 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.helpers.validate': validateHelper, 'core.domain.record.helpers.sendRecordUpdateEvent': sendRecordUpdateEvent, 'core.infra.library': libraryRepo, 'core.infra.tree': treeRepo, 'core.infra.value': valueRepo, 'core.infra.form': formRepo, 'core.domain.eventsManager': eventsManager, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils, translator }: IRecordDomainDeps): IRecordDomain;
113
+ export default function ({ config, 'core.infra.record': recordRepo, 'core.domain.attribute': attributeDomain, 'core.domain.value': valueDomain, 'core.domain.permission.record': recordPermissionDomain, 'core.domain.permission.library': libraryPermissionDomain, 'core.domain.permission.attribute': attrPermissionDomain, 'core.domain.permission.recordAttribute': recordAttributePermissionDomain, 'core.domain.permission.helpers.defaultPermission': defaultPermHelper, 'core.domain.helpers.getCoreEntityById': getCoreEntityById, 'core.domain.helpers.validate': validateHelper, 'core.domain.record.helpers.sendRecordUpdateEvent': sendRecordUpdateEvent, 'core.infra.library': libraryRepo, 'core.infra.tree': treeRepo, 'core.infra.value': valueRepo, 'core.infra.form': formRepo, 'core.infra.permission': permissionRepo, 'core.domain.eventsManager': eventsManager, 'core.infra.cache.cacheService': cacheService, 'core.utils': utils, translator }: IRecordDomainDeps): IRecordDomain;
@@ -73,6 +73,7 @@ export interface IValueDomain {
73
73
  values: IValue[];
74
74
  ctx: IQueryInfos;
75
75
  keepEmpty?: boolean;
76
+ skipPermission?: boolean;
76
77
  }): Promise<ISaveBatchValueResult>;
77
78
  deleteValue(params: IDeleteValueParams): Promise<IValue[]>;
78
79
  formatValue(params: {
@@ -1,6 +1,5 @@
1
1
  import { GeneratedAqlQuery } from 'arangojs/aql';
2
2
  import { AwilixContainer } from 'awilix';
3
- import { IPluginsRepo } from 'infra/plugins/pluginsRepo';
4
3
  import * as winston from 'winston';
5
4
  import { IConfig } from '_types/config';
6
5
  import { IList, IPaginationParams, ISortParams } from '_types/list';
@@ -33,8 +32,7 @@ interface IDeps {
33
32
  'core.infra.db.dbService'?: IDbService;
34
33
  'core.infra.cache.cacheService'?: ICachesService;
35
34
  'core.utils.logger'?: winston.Winston;
36
- 'core.infra.plugins'?: IPluginsRepo;
37
35
  config?: IConfig;
38
36
  }
39
- export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.cache.cacheService': cacheService, 'core.utils.logger': logger, 'core.infra.plugins': pluginsRepo, config }?: IDeps): IDbUtils;
37
+ export default function ({ 'core.infra.db.dbService': dbService, 'core.infra.cache.cacheService': cacheService, 'core.utils.logger': logger, config }?: IDeps): IDbUtils;
40
38
  export {};
@@ -0,0 +1,7 @@
1
+ import { type IDbService } from '../dbService';
2
+ import { type IMigration } from '../../../_types/migration';
3
+ interface IDeps {
4
+ 'core.infra.db.dbService'?: IDbService;
5
+ }
6
+ export default function ({ 'core.infra.db.dbService': dbService }?: IDeps): IMigration;
7
+ export {};
@@ -13,7 +13,7 @@ export interface IOIDCClientService {
13
13
  queryId: string;
14
14
  }) => Promise<string>;
15
15
  getLogoutUrl: (params: {
16
- userId: string;
16
+ userId: string | null;
17
17
  }) => Promise<string>;
18
18
  saveOIDCTokens: (params: {
19
19
  userId: string;
@@ -1,5 +1,5 @@
1
1
  import { IQueryInfos } from '_types/queryInfos';
2
- import { IPermission, IPermissionsTreeTarget, PermissionTypes } from '../../_types/permissions';
2
+ import { IPermission, IPermissionsTreeTarget, PermissionsActions, PermissionTypes } from '../../_types/permissions';
3
3
  import { IDbService } from '../db/dbService';
4
4
  import { IDbUtils } from '../db/dbUtils';
5
5
  export interface IPermissionRepo {
@@ -14,6 +14,14 @@ export interface IPermissionRepo {
14
14
  permissionTreeTarget?: IPermissionsTreeTarget;
15
15
  ctx: IQueryInfos;
16
16
  }): Promise<IPermission | null>;
17
+ getAllPermissionsForTree({ type, applyTo, actionKey, treeId, groupsIds, ctx }: {
18
+ type: PermissionTypes;
19
+ applyTo: string;
20
+ actionKey: PermissionsActions;
21
+ treeId: string;
22
+ groupsIds: string[];
23
+ ctx: IQueryInfos;
24
+ }): Promise<IPermission[]>;
17
25
  }
18
26
  export declare const PERM_COLLECTION_NAME = "core_permissions";
19
27
  export declare const USERS_GROUP_ATTRIBUTE_NAME = "user_groups";
@@ -11,6 +11,7 @@ import { IDbUtils } from '../db/dbUtils';
11
11
  import { IFilterTypesHelper } from './helpers/filterTypes';
12
12
  import { GetSearchVariableName } from './helpers/getSearchVariableName';
13
13
  import { GetSearchVariablesQueryPart } from './helpers/getSearchVariablesQueryPart';
14
+ import { IGetAccessPermissionsValue } from 'domain/record/helpers/getAccessPermissionFilters';
14
15
  export interface IFindRequestResult {
15
16
  initialVars: GeneratedAqlQuery[];
16
17
  queryPart: GeneratedAqlQuery;
@@ -44,6 +45,7 @@ export interface IRecordRepo {
44
45
  retrieveInactive?: boolean;
45
46
  fulltextSearch?: string;
46
47
  ctx: IQueryInfos;
48
+ accessPermissionFilters?: IGetAccessPermissionsValue[];
47
49
  }): Promise<IListWithCursor<IRecord>>;
48
50
  }
49
51
  export interface IRecordRepoDeps {
@@ -1,2 +1,2 @@
1
1
  import { AwilixContainer } from 'awilix';
2
- export declare const initPlugins: (folder: string | null, depsManager: AwilixContainer) => Promise<void>;
2
+ export declare const initPlugins: (pluginsPath: string[], depsManager: AwilixContainer) => Promise<void>;
@@ -79,6 +79,7 @@ export interface IUtils {
79
79
  getFullApplicationEndpoint(endpoint?: string): string;
80
80
  getCoreEntityCacheKey(entityType: string, entityId: string): string;
81
81
  getRecordsCacheKey(libraryId: string, recordId: string): string;
82
+ getGlobalSettingsCacheKey(): string;
82
83
  generateExplicitValidationError<T>(field: keyof T, message: ErrorFieldDetailMessage, lang?: string): ValidationError<T>;
83
84
  deleteFile(path: string): Promise<void>;
84
85
  getUnixTime(): number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aristid/leav-types",
3
- "version": "0.0.7-dc9cdc7",
3
+ "version": "0.0.7-e091028",
4
4
  "description": "Shared Leav types",
5
5
  "scripts": {
6
6
  "tscheck": "",