@getcommunity/gc-validators 0.0.189 → 0.0.190
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.
- package/dist/{client-content-pillar.document-BOeU2enH.d.cts → client-content-pillar.document-BmtrCuzt.d.cts} +1 -1
- package/dist/{client-content-pillar.document-BkkB5xMX.d.ts → client-content-pillar.document-XoX1rNnY.d.ts} +1 -1
- package/dist/constants/index.cjs +7 -0
- package/dist/constants/index.d.cts +1 -0
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +1 -0
- package/dist/constants/permission.constants.cjs.map +1 -0
- package/dist/constants/permission.constants.js.map +1 -0
- package/dist/index.cjs +0 -7
- package/dist/index.d.cts +3 -5
- package/dist/index.d.ts +3 -5
- package/dist/index.js +0 -1
- package/dist/schemas/client-user.schemas.cjs +4 -5
- package/dist/schemas/client-user.schemas.cjs.map +1 -1
- package/dist/schemas/client-user.schemas.d.cts +1 -1
- package/dist/schemas/client-user.schemas.d.ts +1 -1
- package/dist/schemas/client-user.schemas.js +1 -2
- package/dist/schemas/client-user.schemas.js.map +1 -1
- package/dist/schemas/index.d.cts +1 -1
- package/dist/schemas/index.d.ts +1 -1
- package/dist/types/documents/client-content-pillar.document.d.cts +2 -2
- package/dist/types/documents/client-content-pillar.document.d.ts +2 -2
- package/dist/types/documents/client-media-platform-content-type.document.d.cts +2 -2
- package/dist/types/documents/client-media-platform-content-type.document.d.ts +2 -2
- package/dist/types/documents/client-media-platform.document.d.cts +2 -2
- package/dist/types/documents/client-media-platform.document.d.ts +2 -2
- package/dist/types/documents/client-project.document.d.cts +2 -2
- package/dist/types/documents/client-project.document.d.ts +2 -2
- package/dist/types/documents/client-report.document.d.cts +2 -2
- package/dist/types/documents/client-report.document.d.ts +2 -2
- package/dist/types/documents/client-styleguide.document.d.cts +2 -2
- package/dist/types/documents/client-styleguide.document.d.ts +2 -2
- package/dist/types/documents/client-user.document.d.cts +2 -2
- package/dist/types/documents/client-user.document.d.ts +2 -2
- package/dist/types/documents/client.document.d.cts +2 -2
- package/dist/types/documents/client.document.d.ts +2 -2
- package/dist/types/documents/comment.document.d.cts +1 -1
- package/dist/types/documents/comment.document.d.ts +1 -1
- package/dist/types/documents/content-pillar.document.d.cts +2 -2
- package/dist/types/documents/content-pillar.document.d.ts +2 -2
- package/dist/types/documents/gcflytour-snap.document.d.cts +2 -2
- package/dist/types/documents/gcflytour-snap.document.d.ts +2 -2
- package/dist/types/documents/gcflytour.document.d.cts +2 -2
- package/dist/types/documents/gcflytour.document.d.ts +2 -2
- package/dist/types/documents/index.d.cts +2 -2
- package/dist/types/documents/index.d.ts +2 -2
- package/dist/types/documents/media-content-type.document.d.cts +2 -2
- package/dist/types/documents/media-content-type.document.d.ts +2 -2
- package/dist/types/documents/media-platform.document.d.cts +2 -2
- package/dist/types/documents/media-platform.document.d.ts +2 -2
- package/dist/types/documents/permission.document.d.cts +2 -2
- package/dist/types/documents/permission.document.d.ts +2 -2
- package/dist/types/documents/product-highlight.document.d.cts +2 -2
- package/dist/types/documents/product-highlight.document.d.ts +2 -2
- package/dist/types/documents/role.document.d.cts +2 -2
- package/dist/types/documents/role.document.d.ts +2 -2
- package/dist/types/documents/user-account.document.d.cts +2 -2
- package/dist/types/documents/user-account.document.d.ts +2 -2
- package/dist/types/documents/user.document.d.cts +2 -2
- package/dist/types/documents/user.document.d.ts +2 -2
- package/dist/types/documents/utm-tracking-link.document.d.cts +2 -2
- package/dist/types/documents/utm-tracking-link.document.d.ts +2 -2
- package/dist/types/index.cjs +7 -0
- package/dist/types/index.d.cts +3 -2
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.js +1 -0
- package/dist/types/permissions/index.cjs +14 -0
- package/dist/types/permissions/index.d.cts +19 -0
- package/dist/types/permissions/index.d.ts +19 -0
- package/dist/types/permissions/index.js +3 -0
- package/dist/{permissions → types/permissions}/permission.types.d.cts +18 -18
- package/dist/{permissions → types/permissions}/permission.types.d.ts +18 -18
- package/dist/{permissions/permission.abac.cjs → utilities/permission.utilities.cjs} +10 -2
- package/dist/utilities/permission.utilities.cjs.map +1 -0
- package/dist/{permissions/permission.abac.d.cts → utilities/permission.utilities.d.cts} +5 -8
- package/dist/{permissions/permission.abac.d.ts → utilities/permission.utilities.d.ts} +5 -8
- package/dist/{permissions/permission.abac.js → utilities/permission.utilities.js} +10 -3
- package/dist/utilities/permission.utilities.js.map +1 -0
- package/package.json +1 -17
- package/dist/permissions/index.cjs +0 -35
- package/dist/permissions/index.d.cts +0 -21
- package/dist/permissions/index.d.ts +0 -21
- package/dist/permissions/index.js +0 -6
- package/dist/permissions/permission.abac.cjs.map +0 -1
- package/dist/permissions/permission.abac.js.map +0 -1
- package/dist/permissions/permission.constants.cjs.map +0 -1
- package/dist/permissions/permission.constants.js.map +0 -1
- package/dist/permissions/permission.utilities.cjs +0 -15
- package/dist/permissions/permission.utilities.cjs.map +0 -1
- package/dist/permissions/permission.utilities.d.cts +0 -29
- package/dist/permissions/permission.utilities.d.ts +0 -29
- package/dist/permissions/permission.utilities.js +0 -13
- package/dist/permissions/permission.utilities.js.map +0 -1
- /package/dist/{permissions → constants}/permission.constants.cjs +0 -0
- /package/dist/{permissions → constants}/permission.constants.d.cts +0 -0
- /package/dist/{permissions → constants}/permission.constants.d.ts +0 -0
- /package/dist/{permissions → constants}/permission.constants.js +0 -0
- /package/dist/{permissions → types/permissions}/index.cjs.map +0 -0
- /package/dist/{permissions → types/permissions}/index.js.map +0 -0
- /package/dist/{permissions → types/permissions}/permission.types.cjs +0 -0
- /package/dist/{permissions → types/permissions}/permission.types.cjs.map +0 -0
- /package/dist/{permissions → types/permissions}/permission.types.js +0 -0
- /package/dist/{permissions → types/permissions}/permission.types.js.map +0 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '../
|
|
5
|
-
import '../
|
|
6
|
-
import '../
|
|
7
|
-
import '../
|
|
8
|
-
import '../
|
|
9
|
-
import '
|
|
10
|
-
import '../
|
|
11
|
-
import '../
|
|
12
|
-
import '
|
|
13
|
-
import '../
|
|
14
|
-
import '../
|
|
15
|
-
import '../
|
|
16
|
-
import '../
|
|
17
|
-
import '../
|
|
18
|
-
import '
|
|
1
|
+
import { CLIENT_ENTITY_PERMISSIONS } from '../../constants/permission.constants.cjs';
|
|
2
|
+
import { R as RoleType, U as UserAccountDocument, h as ClientDocument, f as ClientUserDocument, C as ClientContentPillarDocument, b as ClientMediaPlatformDocument, a as ClientMediaPlatformContentTypeDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, i as ContentPillarDocument, k as MediaPlatformDocument, M as MediaContentTypeDocument, q as UtmTrackingLinkDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument, A as AuthorizedUserDocument, g as ClientUserDocumentStatus } from '../../client-content-pillar.document-BmtrCuzt.cjs';
|
|
3
|
+
import { CommentDocument } from '../documents/comment.document.cjs';
|
|
4
|
+
import '../core/document.cjs';
|
|
5
|
+
import '../components/blocks/brand-logos.cjs';
|
|
6
|
+
import '../core/media.cjs';
|
|
7
|
+
import '../components/utm/utm-option.cjs';
|
|
8
|
+
import '../components/shared/rich-text-block.cjs';
|
|
9
|
+
import '../../constants/client-project.constants.cjs';
|
|
10
|
+
import '../components/brand/styleguide-color.cjs';
|
|
11
|
+
import '../components/brand/styleguide-font.cjs';
|
|
12
|
+
import '../../constants/font.constants.cjs';
|
|
13
|
+
import '../components/blocks/fullscreen-content.cjs';
|
|
14
|
+
import '../components/blocks/video.cjs';
|
|
15
|
+
import '../documents/product.document.cjs';
|
|
16
|
+
import '../components/shared/seo.cjs';
|
|
17
|
+
import '../documents/tag.document.cjs';
|
|
18
|
+
import '../../constants/comment.constants.cjs';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Attribute-based access control (ABAC) permissions
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import '../
|
|
5
|
-
import '../
|
|
6
|
-
import '../
|
|
7
|
-
import '../
|
|
8
|
-
import '../
|
|
9
|
-
import '
|
|
10
|
-
import '../
|
|
11
|
-
import '../
|
|
12
|
-
import '
|
|
13
|
-
import '../
|
|
14
|
-
import '../
|
|
15
|
-
import '../
|
|
16
|
-
import '../
|
|
17
|
-
import '../
|
|
18
|
-
import '
|
|
1
|
+
import { CLIENT_ENTITY_PERMISSIONS } from '../../constants/permission.constants.js';
|
|
2
|
+
import { R as RoleType, U as UserAccountDocument, h as ClientDocument, f as ClientUserDocument, C as ClientContentPillarDocument, b as ClientMediaPlatformDocument, a as ClientMediaPlatformContentTypeDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, i as ContentPillarDocument, k as MediaPlatformDocument, M as MediaContentTypeDocument, q as UtmTrackingLinkDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument, A as AuthorizedUserDocument, g as ClientUserDocumentStatus } from '../../client-content-pillar.document-XoX1rNnY.js';
|
|
3
|
+
import { CommentDocument } from '../documents/comment.document.js';
|
|
4
|
+
import '../core/document.js';
|
|
5
|
+
import '../components/blocks/brand-logos.js';
|
|
6
|
+
import '../core/media.js';
|
|
7
|
+
import '../components/utm/utm-option.js';
|
|
8
|
+
import '../components/shared/rich-text-block.js';
|
|
9
|
+
import '../../constants/client-project.constants.js';
|
|
10
|
+
import '../components/brand/styleguide-color.js';
|
|
11
|
+
import '../components/brand/styleguide-font.js';
|
|
12
|
+
import '../../constants/font.constants.js';
|
|
13
|
+
import '../components/blocks/fullscreen-content.js';
|
|
14
|
+
import '../components/blocks/video.js';
|
|
15
|
+
import '../documents/product.document.js';
|
|
16
|
+
import '../components/shared/seo.js';
|
|
17
|
+
import '../documents/tag.document.js';
|
|
18
|
+
import '../../constants/comment.constants.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Attribute-based access control (ABAC) permissions
|
|
@@ -647,7 +647,15 @@ const ROLE_PERMISSIONS = {
|
|
|
647
647
|
}
|
|
648
648
|
}
|
|
649
649
|
};
|
|
650
|
+
function hasPermission(user, permissions, resource, action, data) {
|
|
651
|
+
var _a;
|
|
652
|
+
const permission = (_a = ROLE_PERMISSIONS[user.role.type][resource]) == null ? void 0 : _a[action];
|
|
653
|
+
if (permission == null) return false;
|
|
654
|
+
if (typeof permission === "boolean") return permission;
|
|
655
|
+
return permission(user, permissions, data);
|
|
656
|
+
}
|
|
650
657
|
|
|
651
658
|
exports.ROLE_PERMISSIONS = ROLE_PERMISSIONS;
|
|
652
|
-
|
|
653
|
-
//# sourceMappingURL=permission.
|
|
659
|
+
exports.hasPermission = hasPermission;
|
|
660
|
+
//# sourceMappingURL=permission.utilities.cjs.map
|
|
661
|
+
//# sourceMappingURL=permission.utilities.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/permission.utilities.ts"],"names":[],"mappings":"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","file":"permission.utilities.cjs","sourcesContent":["/**\n * Attribute-based access control (ABAC) permissions\n *\n * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts\n */\nimport {\n AuthorizedUserDocument,\n ClientUserDocumentStatus,\n Permissions,\n RolesWithPermissions,\n RoleType\n} from \"../types\"\n\nexport const ROLE_PERMISSIONS = {\n authenticated: {\n \"user-account\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: false,\n billing: false,\n owner: false,\n manager: false,\n admin: false,\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-user\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-project\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false,\n assign: false\n },\n \"client-report\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-styleguide\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n },\n public: {\n \"user-account\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n comment: {\n list: true,\n create: false,\n update: false,\n delete: false,\n report: false\n },\n client: {\n access: false,\n billing: false,\n owner: false,\n manager: false,\n admin: false,\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-user\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-project\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false,\n assign: false\n },\n \"client-report\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-styleguide\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n },\n employee: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: (u, p, d) => p.scopes.includes(\"client:access\"),\n billing: (u, p, d) => p.scopes.includes(\"client:billing\"),\n owner: (u, p, d) => p.scopes.includes(\"client:owner\"),\n manager: (u, p, d) => p.scopes.includes(\"client:manager\"),\n admin: (u, p, d) => p.scopes.includes(\"client:admin\"),\n list: (u, p, d) => p.scopes.includes(\"client:access\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client:access\"),\n update: (u, p, d) => p.scopes.includes(\"client:manager\"),\n delete: false\n },\n \"client-user\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false,\n verify: true\n },\n \"client-content-pillar\": {\n list: (u, p, d) => p.scopes.includes(\"client-content-pillar:list\"),\n create: (u, p) => p.scopes.includes(\"client-content-pillar:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-content-pillar:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-content-pillar:update\"),\n delete: false\n },\n \"client-media-platform\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-media-platform:update\"),\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform-content-type:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:read\"),\n update: (u, p, d) =>\n p.scopes.includes(\"client-media-platform-content-type:update\"),\n delete: false\n },\n \"client-project\": {\n list: (u, p, d) => p.scopes.includes(\"client-project:list\"),\n create: (u, p) => p.scopes.includes(\"client-project:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-project:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-project:update\"),\n delete: false,\n assign: (u, p, d) => p.scopes.includes(\"client-project:assign\")\n },\n \"client-report\": {\n list: (u, p, d) => p.scopes.includes(\"client-report:list\"),\n create: (u, p) => p.scopes.includes(\"client-report:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-report:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-report:update\"),\n delete: false\n },\n \"client-styleguide\": {\n list: (u, p, d) => p.scopes.includes(\"client-styleguide:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client-styleguide:read\"),\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: (u, p, d) => p.scopes.includes(\"utm-tracking-link:list\"),\n create: (u, p) => p.scopes.includes(\"utm-tracking-link:create\"),\n read: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:read\"),\n update: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:update\"),\n delete: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:delete\")\n },\n gcflytour: {\n list: true,\n create: (u, p) => p.scopes.includes(\"gcflytour:create\"),\n read: true,\n update: (u, p, d) => p.scopes.includes(\"gcflytour:update\"),\n delete: (u, p, d) => p.scopes.includes(\"gcflytour:delete\")\n },\n \"gcflytour-snap\": {\n list: true,\n create: (u, p) => p.scopes.includes(\"gcflytour-snap:create\"),\n read: true,\n update: (u, p, d) => p.scopes.includes(\"gcflytour-snap:update\"),\n delete: (u, p, d) => p.scopes.includes(\"gcflytour-snap:delete\")\n }\n },\n manager: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: true,\n billing: true,\n owner: true,\n manager: true,\n admin: true,\n list: true,\n create: true,\n read: true,\n update: true,\n delete: false\n },\n \"client-user\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true,\n verify: true\n },\n \"client-content-pillar\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-media-platform\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-media-platform-content-type\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-project\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true,\n assign: true\n },\n \"client-report\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-styleguide\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"content-pillar\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"media-platform\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"media-content-type\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"utm-tracking-link\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n gcflytour: {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"gcflytour-snap\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n }\n },\n client: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: (u, p, d) => p.scopes.includes(\"client:access\"),\n billing: (u, p, d) => p.scopes.includes(\"client:billing\"),\n owner: (u, p, d) => p.scopes.includes(\"client:owner\"),\n manager: (u, p, d) => p.scopes.includes(\"client:manager\"),\n admin: (u, p, d) => p.scopes.includes(\"client:admin\"),\n list: (u, p, d) => p.scopes.includes(\"client:access\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client:access\"),\n update: (u, p, d) => p.scopes.includes(\"client:manager\"),\n delete: false\n },\n \"client-user\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false,\n verify: true\n },\n \"client-content-pillar\": {\n list: (u, p, d) => p.scopes.includes(\"client-content-pillar:list\"),\n create: (u, p) => p.scopes.includes(\"client-content-pillar:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-content-pillar:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-content-pillar:update\"),\n delete: false\n },\n \"client-media-platform\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-media-platform:update\"),\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform-content-type:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:read\"),\n update: (u, p, d) =>\n p.scopes.includes(\"client-media-platform-content-type:update\"),\n delete: false\n },\n \"client-project\": {\n list: (u, p, d) => p.scopes.includes(\"client-project:list\"),\n create: (u, p) => p.scopes.includes(\"client-project:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-project:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-project:update\"),\n delete: false,\n assign: (u, p, d) => p.scopes.includes(\"client-project:assign\")\n },\n \"client-report\": {\n list: (u, p, d) => p.scopes.includes(\"client-report:list\"),\n create: (u, p) => p.scopes.includes(\"client-report:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-report:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-report:update\"),\n delete: false\n },\n \"client-styleguide\": {\n list: (u, p, d) => p.scopes.includes(\"client-styleguide:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client-styleguide:read\"),\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: (u, p, d) => p.scopes.includes(\"utm-tracking-link:list\"),\n create: (u, p) => p.scopes.includes(\"utm-tracking-link:create\"),\n read: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:read\"),\n update: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:update\"),\n delete: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:delete\")\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n }\n} as const satisfies RolesWithPermissions\n\nexport function hasPermission<Resource extends keyof Permissions>(\n user: AuthorizedUserDocument,\n permissions: ClientUserDocumentStatus,\n resource: Resource,\n action: Permissions[Resource][\"action\"],\n data?: Permissions[Resource][\"dataType\"]\n) {\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[\n user.role.type as RoleType\n ][resource]?.[action]\n if (permission == null) return false\n\n if (typeof permission === \"boolean\") return permission\n return permission(user, permissions, data)\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { A as AuthorizedUserDocument, g as ClientUserDocumentStatus, U as UserAccountDocument, h as ClientDocument, C as ClientContentPillarDocument, b as ClientMediaPlatformDocument, a as ClientMediaPlatformContentTypeDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, q as UtmTrackingLinkDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument } from '../client-content-pillar.document-
|
|
1
|
+
import { A as AuthorizedUserDocument, g as ClientUserDocumentStatus, U as UserAccountDocument, h as ClientDocument, C as ClientContentPillarDocument, b as ClientMediaPlatformDocument, a as ClientMediaPlatformContentTypeDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, q as UtmTrackingLinkDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument } from '../client-content-pillar.document-BmtrCuzt.cjs';
|
|
2
2
|
import { CommentDocument } from '../types/documents/comment.document.cjs';
|
|
3
|
+
import { Permissions } from '../types/permissions/permission.types.cjs';
|
|
3
4
|
import '../types/core/document.cjs';
|
|
4
5
|
import '../types/components/blocks/brand-logos.cjs';
|
|
5
6
|
import '../types/core/media.cjs';
|
|
@@ -9,7 +10,7 @@ import '../constants/client-project.constants.cjs';
|
|
|
9
10
|
import '../types/components/brand/styleguide-color.cjs';
|
|
10
11
|
import '../types/components/brand/styleguide-font.cjs';
|
|
11
12
|
import '../constants/font.constants.cjs';
|
|
12
|
-
import '
|
|
13
|
+
import '../constants/permission.constants.cjs';
|
|
13
14
|
import '../types/components/blocks/fullscreen-content.cjs';
|
|
14
15
|
import '../types/components/blocks/video.cjs';
|
|
15
16
|
import '../types/documents/product.document.cjs';
|
|
@@ -17,11 +18,6 @@ import '../types/components/shared/seo.cjs';
|
|
|
17
18
|
import '../types/documents/tag.document.cjs';
|
|
18
19
|
import '../constants/comment.constants.cjs';
|
|
19
20
|
|
|
20
|
-
/**
|
|
21
|
-
* Attribute-based access control (ABAC) permissions
|
|
22
|
-
*
|
|
23
|
-
* @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
|
|
24
|
-
*/
|
|
25
21
|
declare const ROLE_PERMISSIONS: {
|
|
26
22
|
readonly authenticated: {
|
|
27
23
|
readonly "user-account": {
|
|
@@ -627,5 +623,6 @@ declare const ROLE_PERMISSIONS: {
|
|
|
627
623
|
};
|
|
628
624
|
};
|
|
629
625
|
};
|
|
626
|
+
declare function hasPermission<Resource extends keyof Permissions>(user: AuthorizedUserDocument, permissions: ClientUserDocumentStatus, resource: Resource, action: Permissions[Resource]["action"], data?: Permissions[Resource]["dataType"]): boolean;
|
|
630
627
|
|
|
631
|
-
export { ROLE_PERMISSIONS };
|
|
628
|
+
export { ROLE_PERMISSIONS, hasPermission };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { A as AuthorizedUserDocument, g as ClientUserDocumentStatus, U as UserAccountDocument, h as ClientDocument, C as ClientContentPillarDocument, b as ClientMediaPlatformDocument, a as ClientMediaPlatformContentTypeDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, q as UtmTrackingLinkDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument } from '../client-content-pillar.document-
|
|
1
|
+
import { A as AuthorizedUserDocument, g as ClientUserDocumentStatus, U as UserAccountDocument, h as ClientDocument, C as ClientContentPillarDocument, b as ClientMediaPlatformDocument, a as ClientMediaPlatformContentTypeDocument, c as ClientProjectDocument, d as ClientReportDocument, e as ClientStyleguideDocument, q as UtmTrackingLinkDocument, j as GCFlyTourDocument, G as GCFlyTourSnapDocument } from '../client-content-pillar.document-XoX1rNnY.js';
|
|
2
2
|
import { CommentDocument } from '../types/documents/comment.document.js';
|
|
3
|
+
import { Permissions } from '../types/permissions/permission.types.js';
|
|
3
4
|
import '../types/core/document.js';
|
|
4
5
|
import '../types/components/blocks/brand-logos.js';
|
|
5
6
|
import '../types/core/media.js';
|
|
@@ -9,7 +10,7 @@ import '../constants/client-project.constants.js';
|
|
|
9
10
|
import '../types/components/brand/styleguide-color.js';
|
|
10
11
|
import '../types/components/brand/styleguide-font.js';
|
|
11
12
|
import '../constants/font.constants.js';
|
|
12
|
-
import '
|
|
13
|
+
import '../constants/permission.constants.js';
|
|
13
14
|
import '../types/components/blocks/fullscreen-content.js';
|
|
14
15
|
import '../types/components/blocks/video.js';
|
|
15
16
|
import '../types/documents/product.document.js';
|
|
@@ -17,11 +18,6 @@ import '../types/components/shared/seo.js';
|
|
|
17
18
|
import '../types/documents/tag.document.js';
|
|
18
19
|
import '../constants/comment.constants.js';
|
|
19
20
|
|
|
20
|
-
/**
|
|
21
|
-
* Attribute-based access control (ABAC) permissions
|
|
22
|
-
*
|
|
23
|
-
* @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts
|
|
24
|
-
*/
|
|
25
21
|
declare const ROLE_PERMISSIONS: {
|
|
26
22
|
readonly authenticated: {
|
|
27
23
|
readonly "user-account": {
|
|
@@ -627,5 +623,6 @@ declare const ROLE_PERMISSIONS: {
|
|
|
627
623
|
};
|
|
628
624
|
};
|
|
629
625
|
};
|
|
626
|
+
declare function hasPermission<Resource extends keyof Permissions>(user: AuthorizedUserDocument, permissions: ClientUserDocumentStatus, resource: Resource, action: Permissions[Resource]["action"], data?: Permissions[Resource]["dataType"]): boolean;
|
|
630
627
|
|
|
631
|
-
export { ROLE_PERMISSIONS };
|
|
628
|
+
export { ROLE_PERMISSIONS, hasPermission };
|
|
@@ -645,7 +645,14 @@ const ROLE_PERMISSIONS = {
|
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
647
|
};
|
|
648
|
+
function hasPermission(user, permissions, resource, action, data) {
|
|
649
|
+
var _a;
|
|
650
|
+
const permission = (_a = ROLE_PERMISSIONS[user.role.type][resource]) == null ? void 0 : _a[action];
|
|
651
|
+
if (permission == null) return false;
|
|
652
|
+
if (typeof permission === "boolean") return permission;
|
|
653
|
+
return permission(user, permissions, data);
|
|
654
|
+
}
|
|
648
655
|
|
|
649
|
-
export { ROLE_PERMISSIONS };
|
|
650
|
-
//# sourceMappingURL=permission.
|
|
651
|
-
//# sourceMappingURL=permission.
|
|
656
|
+
export { ROLE_PERMISSIONS, hasPermission };
|
|
657
|
+
//# sourceMappingURL=permission.utilities.js.map
|
|
658
|
+
//# sourceMappingURL=permission.utilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/permission.utilities.ts"],"names":[],"mappings":"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","file":"permission.utilities.js","sourcesContent":["/**\n * Attribute-based access control (ABAC) permissions\n *\n * @reference https://github.com/WebDevSimplified/permission-system/blob/main/auth-abac.ts\n */\nimport {\n AuthorizedUserDocument,\n ClientUserDocumentStatus,\n Permissions,\n RolesWithPermissions,\n RoleType\n} from \"../types\"\n\nexport const ROLE_PERMISSIONS = {\n authenticated: {\n \"user-account\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: false,\n billing: false,\n owner: false,\n manager: false,\n admin: false,\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-user\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-project\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false,\n assign: false\n },\n \"client-report\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-styleguide\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n },\n public: {\n \"user-account\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n comment: {\n list: true,\n create: false,\n update: false,\n delete: false,\n report: false\n },\n client: {\n access: false,\n billing: false,\n owner: false,\n manager: false,\n admin: false,\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-user\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-project\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false,\n assign: false\n },\n \"client-report\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"client-styleguide\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: false,\n create: false,\n read: false,\n update: false,\n delete: false\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n },\n employee: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: (u, p, d) => p.scopes.includes(\"client:access\"),\n billing: (u, p, d) => p.scopes.includes(\"client:billing\"),\n owner: (u, p, d) => p.scopes.includes(\"client:owner\"),\n manager: (u, p, d) => p.scopes.includes(\"client:manager\"),\n admin: (u, p, d) => p.scopes.includes(\"client:admin\"),\n list: (u, p, d) => p.scopes.includes(\"client:access\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client:access\"),\n update: (u, p, d) => p.scopes.includes(\"client:manager\"),\n delete: false\n },\n \"client-user\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false,\n verify: true\n },\n \"client-content-pillar\": {\n list: (u, p, d) => p.scopes.includes(\"client-content-pillar:list\"),\n create: (u, p) => p.scopes.includes(\"client-content-pillar:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-content-pillar:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-content-pillar:update\"),\n delete: false\n },\n \"client-media-platform\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-media-platform:update\"),\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform-content-type:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:read\"),\n update: (u, p, d) =>\n p.scopes.includes(\"client-media-platform-content-type:update\"),\n delete: false\n },\n \"client-project\": {\n list: (u, p, d) => p.scopes.includes(\"client-project:list\"),\n create: (u, p) => p.scopes.includes(\"client-project:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-project:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-project:update\"),\n delete: false,\n assign: (u, p, d) => p.scopes.includes(\"client-project:assign\")\n },\n \"client-report\": {\n list: (u, p, d) => p.scopes.includes(\"client-report:list\"),\n create: (u, p) => p.scopes.includes(\"client-report:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-report:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-report:update\"),\n delete: false\n },\n \"client-styleguide\": {\n list: (u, p, d) => p.scopes.includes(\"client-styleguide:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client-styleguide:read\"),\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: (u, p, d) => p.scopes.includes(\"utm-tracking-link:list\"),\n create: (u, p) => p.scopes.includes(\"utm-tracking-link:create\"),\n read: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:read\"),\n update: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:update\"),\n delete: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:delete\")\n },\n gcflytour: {\n list: true,\n create: (u, p) => p.scopes.includes(\"gcflytour:create\"),\n read: true,\n update: (u, p, d) => p.scopes.includes(\"gcflytour:update\"),\n delete: (u, p, d) => p.scopes.includes(\"gcflytour:delete\")\n },\n \"gcflytour-snap\": {\n list: true,\n create: (u, p) => p.scopes.includes(\"gcflytour-snap:create\"),\n read: true,\n update: (u, p, d) => p.scopes.includes(\"gcflytour-snap:update\"),\n delete: (u, p, d) => p.scopes.includes(\"gcflytour-snap:delete\")\n }\n },\n manager: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: true,\n billing: true,\n owner: true,\n manager: true,\n admin: true,\n list: true,\n create: true,\n read: true,\n update: true,\n delete: false\n },\n \"client-user\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true,\n verify: true\n },\n \"client-content-pillar\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-media-platform\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-media-platform-content-type\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-project\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true,\n assign: true\n },\n \"client-report\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"client-styleguide\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"content-pillar\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"media-platform\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"media-content-type\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"utm-tracking-link\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n gcflytour: {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n },\n \"gcflytour-snap\": {\n list: true,\n create: true,\n read: true,\n update: true,\n delete: true\n }\n },\n client: {\n \"user-account\": {\n list: true,\n create: false,\n read: true,\n update: (u, p, d) => u.account.documentId === d?.documentId,\n delete: false\n },\n comment: {\n list: true,\n create: true,\n update: (u, p, d) => u.id === Number(d?.author?.id),\n delete: (u, p, d) => u.id === Number(d?.author?.id),\n report: true\n },\n client: {\n access: (u, p, d) => p.scopes.includes(\"client:access\"),\n billing: (u, p, d) => p.scopes.includes(\"client:billing\"),\n owner: (u, p, d) => p.scopes.includes(\"client:owner\"),\n manager: (u, p, d) => p.scopes.includes(\"client:manager\"),\n admin: (u, p, d) => p.scopes.includes(\"client:admin\"),\n list: (u, p, d) => p.scopes.includes(\"client:access\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client:access\"),\n update: (u, p, d) => p.scopes.includes(\"client:manager\"),\n delete: false\n },\n \"client-user\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false,\n verify: true\n },\n \"client-content-pillar\": {\n list: (u, p, d) => p.scopes.includes(\"client-content-pillar:list\"),\n create: (u, p) => p.scopes.includes(\"client-content-pillar:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-content-pillar:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-content-pillar:update\"),\n delete: false\n },\n \"client-media-platform\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-media-platform:update\"),\n delete: false\n },\n \"client-media-platform-content-type\": {\n list: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:list\"),\n create: (u, p) => p.scopes.includes(\"client-media-platform-content-type:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-media-platform-content-type:read\"),\n update: (u, p, d) =>\n p.scopes.includes(\"client-media-platform-content-type:update\"),\n delete: false\n },\n \"client-project\": {\n list: (u, p, d) => p.scopes.includes(\"client-project:list\"),\n create: (u, p) => p.scopes.includes(\"client-project:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-project:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-project:update\"),\n delete: false,\n assign: (u, p, d) => p.scopes.includes(\"client-project:assign\")\n },\n \"client-report\": {\n list: (u, p, d) => p.scopes.includes(\"client-report:list\"),\n create: (u, p) => p.scopes.includes(\"client-report:create\"),\n read: (u, p, d) => p.scopes.includes(\"client-report:read\"),\n update: (u, p, d) => p.scopes.includes(\"client-report:update\"),\n delete: false\n },\n \"client-styleguide\": {\n list: (u, p, d) => p.scopes.includes(\"client-styleguide:list\"),\n create: false,\n read: (u, p, d) => p.scopes.includes(\"client-styleguide:read\"),\n update: false,\n delete: false\n },\n \"content-pillar\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-platform\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"media-content-type\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"utm-tracking-link\": {\n list: (u, p, d) => p.scopes.includes(\"utm-tracking-link:list\"),\n create: (u, p) => p.scopes.includes(\"utm-tracking-link:create\"),\n read: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:read\"),\n update: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:update\"),\n delete: (u, p, d) =>\n d?.creator?.documentId === u.documentId ||\n p.scopes.includes(\"utm-tracking-link:delete\")\n },\n gcflytour: {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n },\n \"gcflytour-snap\": {\n list: true,\n create: false,\n read: true,\n update: false,\n delete: false\n }\n }\n} as const satisfies RolesWithPermissions\n\nexport function hasPermission<Resource extends keyof Permissions>(\n user: AuthorizedUserDocument,\n permissions: ClientUserDocumentStatus,\n resource: Resource,\n action: Permissions[Resource][\"action\"],\n data?: Permissions[Resource][\"dataType\"]\n) {\n const permission = (ROLE_PERMISSIONS as RolesWithPermissions)[\n user.role.type as RoleType\n ][resource]?.[action]\n if (permission == null) return false\n\n if (typeof permission === \"boolean\") return permission\n return permission(user, permissions, data)\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getcommunity/gc-validators",
|
|
3
3
|
"description": "Schema Validator for GetCommunity web-stack types",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.190",
|
|
5
5
|
"author": "Joey Grable <joey@getcommunity.com> (https://joeygrable.com)",
|
|
6
6
|
"contributors": [],
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -25,16 +25,6 @@
|
|
|
25
25
|
"import": "./dist/constants/*.js",
|
|
26
26
|
"require": "./dist/constants/*.cjs"
|
|
27
27
|
},
|
|
28
|
-
"./permissions": {
|
|
29
|
-
"types": "./dist/permissions/index.d.ts",
|
|
30
|
-
"import": "./dist/permissions/index.js",
|
|
31
|
-
"require": "./dist/permissions/index.cjs"
|
|
32
|
-
},
|
|
33
|
-
"./permissions/*": {
|
|
34
|
-
"types": "./dist/permissions/*.d.ts",
|
|
35
|
-
"import": "./dist/permissions/*.js",
|
|
36
|
-
"require": "./dist/permissions/*.cjs"
|
|
37
|
-
},
|
|
38
28
|
"./schemas": {
|
|
39
29
|
"types": "./dist/schemas/index.d.ts",
|
|
40
30
|
"import": "./dist/schemas/index.js",
|
|
@@ -75,12 +65,6 @@
|
|
|
75
65
|
"constants/*": [
|
|
76
66
|
"dist/constants/*"
|
|
77
67
|
],
|
|
78
|
-
"permissions": [
|
|
79
|
-
"dist/permissions/index.d.ts"
|
|
80
|
-
],
|
|
81
|
-
"permissions/*": [
|
|
82
|
-
"dist/permissions/*"
|
|
83
|
-
],
|
|
84
68
|
"schemas": [
|
|
85
69
|
"dist/schemas/index.d.ts"
|
|
86
70
|
],
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var permission_abac = require('./permission.abac');
|
|
4
|
-
var permission_constants = require('./permission.constants');
|
|
5
|
-
var permission_types = require('./permission.types');
|
|
6
|
-
var permission_utilities = require('./permission.utilities');
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
Object.keys(permission_abac).forEach(function (k) {
|
|
11
|
-
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
12
|
-
enumerable: true,
|
|
13
|
-
get: function () { return permission_abac[k]; }
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
Object.keys(permission_constants).forEach(function (k) {
|
|
17
|
-
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
18
|
-
enumerable: true,
|
|
19
|
-
get: function () { return permission_constants[k]; }
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
Object.keys(permission_types).forEach(function (k) {
|
|
23
|
-
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
24
|
-
enumerable: true,
|
|
25
|
-
get: function () { return permission_types[k]; }
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
Object.keys(permission_utilities).forEach(function (k) {
|
|
29
|
-
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
30
|
-
enumerable: true,
|
|
31
|
-
get: function () { return permission_utilities[k]; }
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
//# sourceMappingURL=index.cjs.map
|
|
35
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export { ROLE_PERMISSIONS } from './permission.abac.cjs';
|
|
2
|
-
export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope } from './permission.constants.cjs';
|
|
3
|
-
export { LCRUDActions, Permissions, RolesWithPermissions } from './permission.types.cjs';
|
|
4
|
-
export { hasPermission } from './permission.utilities.cjs';
|
|
5
|
-
import '../client-content-pillar.document-BOeU2enH.cjs';
|
|
6
|
-
import '../types/core/document.cjs';
|
|
7
|
-
import '../types/components/blocks/brand-logos.cjs';
|
|
8
|
-
import '../types/core/media.cjs';
|
|
9
|
-
import '../types/components/utm/utm-option.cjs';
|
|
10
|
-
import '../types/components/shared/rich-text-block.cjs';
|
|
11
|
-
import '../constants/client-project.constants.cjs';
|
|
12
|
-
import '../types/components/brand/styleguide-color.cjs';
|
|
13
|
-
import '../types/components/brand/styleguide-font.cjs';
|
|
14
|
-
import '../constants/font.constants.cjs';
|
|
15
|
-
import '../types/components/blocks/fullscreen-content.cjs';
|
|
16
|
-
import '../types/components/blocks/video.cjs';
|
|
17
|
-
import '../types/documents/product.document.cjs';
|
|
18
|
-
import '../types/components/shared/seo.cjs';
|
|
19
|
-
import '../types/documents/tag.document.cjs';
|
|
20
|
-
import '../types/documents/comment.document.cjs';
|
|
21
|
-
import '../constants/comment.constants.cjs';
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export { ROLE_PERMISSIONS } from './permission.abac.js';
|
|
2
|
-
export { CLIENT_ENTITY_KEYS, CLIENT_ENTITY_PERMISSIONS, CLIENT_ENTITY_SCOPES, ClientEntityActions, ClientEntityKey, ClientEntityScope } from './permission.constants.js';
|
|
3
|
-
export { LCRUDActions, Permissions, RolesWithPermissions } from './permission.types.js';
|
|
4
|
-
export { hasPermission } from './permission.utilities.js';
|
|
5
|
-
import '../client-content-pillar.document-BkkB5xMX.js';
|
|
6
|
-
import '../types/core/document.js';
|
|
7
|
-
import '../types/components/blocks/brand-logos.js';
|
|
8
|
-
import '../types/core/media.js';
|
|
9
|
-
import '../types/components/utm/utm-option.js';
|
|
10
|
-
import '../types/components/shared/rich-text-block.js';
|
|
11
|
-
import '../constants/client-project.constants.js';
|
|
12
|
-
import '../types/components/brand/styleguide-color.js';
|
|
13
|
-
import '../types/components/brand/styleguide-font.js';
|
|
14
|
-
import '../constants/font.constants.js';
|
|
15
|
-
import '../types/components/blocks/fullscreen-content.js';
|
|
16
|
-
import '../types/components/blocks/video.js';
|
|
17
|
-
import '../types/documents/product.document.js';
|
|
18
|
-
import '../types/components/shared/seo.js';
|
|
19
|
-
import '../types/documents/tag.document.js';
|
|
20
|
-
import '../types/documents/comment.document.js';
|
|
21
|
-
import '../constants/comment.constants.js';
|