@openforis/arena-core 2.5.1 → 2.5.2
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/auth/authGroup.d.ts +1 -0
- package/dist/auth/authGroup.js +5 -1
- package/dist/auth/authGroup.js.map +1 -1
- package/dist/auth/authGroups.js +1 -1
- package/dist/auth/authGroups.js.map +1 -1
- package/dist/esm/auth/authGroup.js +3 -0
- package/dist/esm/auth/authGroup.js.map +1 -1
- package/dist/esm/auth/authGroups.js +2 -2
- package/dist/esm/auth/authGroups.js.map +1 -1
- package/dist/esm/survey/factory.js +2 -2
- package/dist/esm/survey/factory.js.map +1 -1
- package/dist/survey/factory.js +1 -1
- package/dist/survey/factory.js.map +1 -1
- package/package.json +1 -1
package/dist/auth/authGroup.d.ts
CHANGED
package/dist/auth/authGroup.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_AUTH_GROUPS = exports.permissionsByGroupName = exports.SYSTEM_ADMIN_GROUP = exports.sortedGroupNames = exports.AuthGroupName = void 0;
|
|
3
|
+
exports.createDefaultAuthGroups = exports.DEFAULT_AUTH_GROUPS = exports.permissionsByGroupName = exports.SYSTEM_ADMIN_GROUP = exports.sortedGroupNames = exports.AuthGroupName = void 0;
|
|
4
4
|
const permission_1 = require("./permission");
|
|
5
5
|
var AuthGroupName;
|
|
6
6
|
(function (AuthGroupName) {
|
|
@@ -124,4 +124,8 @@ exports.DEFAULT_AUTH_GROUPS = [
|
|
|
124
124
|
},
|
|
125
125
|
},
|
|
126
126
|
];
|
|
127
|
+
// copies of the default groups: their permissions and record steps must not be shared between surveys
|
|
128
|
+
// (the permissions arrays are the ones in permissionsByGroupName)
|
|
129
|
+
const createDefaultAuthGroups = () => exports.DEFAULT_AUTH_GROUPS.map((group) => (Object.assign(Object.assign(Object.assign({}, group), (group.permissions ? { permissions: [...group.permissions] } : {})), (group.recordSteps ? { recordSteps: Object.assign({}, group.recordSteps) } : {}))));
|
|
130
|
+
exports.createDefaultAuthGroups = createDefaultAuthGroups;
|
|
127
131
|
//# sourceMappingURL=authGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authGroup.js","sourceRoot":"","sources":["../../src/auth/authGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Permission, RecordStepPermission } from './permission'\n\nexport enum AuthGroupName {\n systemAdmin = 'systemAdmin',\n surveyAdmin = 'surveyAdmin',\n surveyEditor = 'surveyEditor',\n surveyManager = 'surveyManager',\n surveyGuest = 'surveyGuest',\n dataEditor = 'dataEditor',\n dataCleanser = 'dataCleanser',\n dataAnalyst = 'dataAnalyst',\n}\n\nexport interface AuthGroup {\n name: AuthGroupName\n surveyUuid?: string\n permissions?: Array<Permission>\n recordSteps?: { [key: number]: RecordStepPermission }\n uuid?: string\n}\n\nexport const sortedGroupNames = [\n AuthGroupName.systemAdmin,\n AuthGroupName.surveyManager,\n AuthGroupName.surveyAdmin,\n AuthGroupName.surveyEditor,\n AuthGroupName.dataAnalyst,\n AuthGroupName.dataCleanser,\n AuthGroupName.dataEditor,\n AuthGroupName.surveyGuest,\n]\n\nexport const SYSTEM_ADMIN_GROUP: AuthGroup = { name: AuthGroupName.systemAdmin }\n\nexport const permissionsByGroupName: { [key in AuthGroupName]: Permission[] } = {\n [AuthGroupName.systemAdmin]: Object.values(Permission),\n [AuthGroupName.surveyManager]: [\n Permission.permissionsEdit,\n Permission.surveyCreate,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyAdmin]: [\n Permission.permissionsEdit,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyEditor]: [\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataAnalyst]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataCleanser]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n ],\n [AuthGroupName.dataEditor]: [Permission.recordView, Permission.recordCreate, Permission.recordEdit],\n [AuthGroupName.surveyGuest]: [Permission.recordView],\n}\n\nexport const DEFAULT_AUTH_GROUPS: Array<AuthGroup> = [\n {\n name: AuthGroupName.surveyAdmin,\n permissions: permissionsByGroupName[AuthGroupName.surveyAdmin],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.surveyEditor,\n permissions: permissionsByGroupName[AuthGroupName.surveyEditor],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataAnalyst,\n permissions: permissionsByGroupName[AuthGroupName.dataAnalyst],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataCleanser,\n permissions: permissionsByGroupName[AuthGroupName.dataCleanser],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataEditor,\n permissions: permissionsByGroupName[AuthGroupName.dataEditor],\n recordSteps: {\n 1: RecordStepPermission.own,\n },\n },\n {\n name: AuthGroupName.surveyGuest,\n permissions: permissionsByGroupName[AuthGroupName.surveyGuest],\n recordSteps: {\n 3: RecordStepPermission.all,\n },\n },\n]\n"]}
|
|
1
|
+
{"version":3,"file":"authGroup.js","sourceRoot":"","sources":["../../src/auth/authGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Permission, RecordStepPermission } from './permission'\n\nexport enum AuthGroupName {\n systemAdmin = 'systemAdmin',\n surveyAdmin = 'surveyAdmin',\n surveyEditor = 'surveyEditor',\n surveyManager = 'surveyManager',\n surveyGuest = 'surveyGuest',\n dataEditor = 'dataEditor',\n dataCleanser = 'dataCleanser',\n dataAnalyst = 'dataAnalyst',\n}\n\nexport interface AuthGroup {\n name: AuthGroupName\n surveyUuid?: string\n permissions?: Array<Permission>\n recordSteps?: { [key: number]: RecordStepPermission }\n uuid?: string\n}\n\nexport const sortedGroupNames = [\n AuthGroupName.systemAdmin,\n AuthGroupName.surveyManager,\n AuthGroupName.surveyAdmin,\n AuthGroupName.surveyEditor,\n AuthGroupName.dataAnalyst,\n AuthGroupName.dataCleanser,\n AuthGroupName.dataEditor,\n AuthGroupName.surveyGuest,\n]\n\nexport const SYSTEM_ADMIN_GROUP: AuthGroup = { name: AuthGroupName.systemAdmin }\n\nexport const permissionsByGroupName: { [key in AuthGroupName]: Permission[] } = {\n [AuthGroupName.systemAdmin]: Object.values(Permission),\n [AuthGroupName.surveyManager]: [\n Permission.permissionsEdit,\n Permission.surveyCreate,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyAdmin]: [\n Permission.permissionsEdit,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyEditor]: [\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataAnalyst]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataCleanser]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n ],\n [AuthGroupName.dataEditor]: [Permission.recordView, Permission.recordCreate, Permission.recordEdit],\n [AuthGroupName.surveyGuest]: [Permission.recordView],\n}\n\nexport const DEFAULT_AUTH_GROUPS: Array<AuthGroup> = [\n {\n name: AuthGroupName.surveyAdmin,\n permissions: permissionsByGroupName[AuthGroupName.surveyAdmin],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.surveyEditor,\n permissions: permissionsByGroupName[AuthGroupName.surveyEditor],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataAnalyst,\n permissions: permissionsByGroupName[AuthGroupName.dataAnalyst],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataCleanser,\n permissions: permissionsByGroupName[AuthGroupName.dataCleanser],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataEditor,\n permissions: permissionsByGroupName[AuthGroupName.dataEditor],\n recordSteps: {\n 1: RecordStepPermission.own,\n },\n },\n {\n name: AuthGroupName.surveyGuest,\n permissions: permissionsByGroupName[AuthGroupName.surveyGuest],\n recordSteps: {\n 3: RecordStepPermission.all,\n },\n },\n]\n\n// copies of the default groups: their permissions and record steps must not be shared between surveys\n// (the permissions arrays are the ones in permissionsByGroupName)\nexport const createDefaultAuthGroups = (): AuthGroup[] =>\n DEFAULT_AUTH_GROUPS.map((group) => ({\n ...group,\n ...(group.permissions ? { permissions: [...group.permissions] } : {}),\n ...(group.recordSteps ? { recordSteps: { ...group.recordSteps } } : {}),\n }))\n"]}
|
package/dist/auth/authGroups.js
CHANGED
|
@@ -14,7 +14,7 @@ const getRecordEditLevel = (step) => (authGroup) => {
|
|
|
14
14
|
throw new Error('No steps');
|
|
15
15
|
return steps[step];
|
|
16
16
|
};
|
|
17
|
-
const getDefaultAuthGroups = (surveyUuid) => authGroup_1.
|
|
17
|
+
const getDefaultAuthGroups = (surveyUuid) => (0, authGroup_1.createDefaultAuthGroups)().map((group) => (Object.assign(Object.assign({}, group), { uuid: utils_1.UUIDs.v4(), surveyUuid })));
|
|
18
18
|
const getPermissions = (group) => { var _a; return (_a = authGroup_1.permissionsByGroupName[group.name]) !== null && _a !== void 0 ? _a : []; };
|
|
19
19
|
const sortGroups = (groups) => {
|
|
20
20
|
const sortedGroups = [...groups];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authGroups.js","sourceRoot":"","sources":["../../src/auth/authGroups.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"authGroups.js","sourceRoot":"","sources":["../../src/auth/authGroups.ts"],"names":[],"mappings":";;;AAAA,oCAAgC;AAChC,2CAMoB;AAGpB,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,yBAAa,CAAC,WAAW,CAAA;AAEtG,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,yBAAa,CAAC,aAAa,CAAA;AAE1G,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AAEjH,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAsB,EAAE,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,CAAA;AAEzF,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAuD,EAAE,CACpG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAA;AAExB,MAAM,kBAAkB,GACtB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAqB,EAAwB,EAAE;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAEvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAe,EAAE,CAC/D,IAAA,mCAAuB,GAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE,EAAE,UAAU,IAAG,CAAC,CAAA;AAExF,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,EAAE,wBAAC,kCAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,GAAA,CAAA;AAErF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IACzC,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;IAChC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,4BAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,OAAO,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAEY,QAAA,UAAU,GAAG;IACxB,aAAa;IACb,aAAa;IACb,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;CACX,CAAA","sourcesContent":["import { UUIDs } from '../utils'\nimport {\n AuthGroup,\n AuthGroupName,\n createDefaultAuthGroups,\n permissionsByGroupName,\n sortedGroupNames,\n} from './authGroup'\nimport { RecordStepPermission } from './permission'\n\nconst isSystemAdmin = (authGroup: AuthGroup): boolean => authGroup?.name === AuthGroupName.systemAdmin\n\nconst isSurveyManager = (authGroup: AuthGroup): boolean => authGroup?.name === AuthGroupName.surveyManager\n\nconst isSurveyGroup = (authGroup: AuthGroup): boolean => !isSystemAdmin(authGroup) && !isSurveyManager(authGroup)\n\nconst getSurveyUuid = (authGroup: AuthGroup): string | undefined => authGroup?.surveyUuid\n\nconst getRecordSteps = (authGroup?: AuthGroup): { [key: string]: RecordStepPermission } | undefined =>\n authGroup?.recordSteps\n\nconst getRecordEditLevel =\n (step: string) =>\n (authGroup?: AuthGroup): RecordStepPermission => {\n const steps = getRecordSteps(authGroup)\n if (!steps) throw new Error('No steps')\n\n return steps[step]\n }\n\nconst getDefaultAuthGroups = (surveyUuid: string): AuthGroup[] =>\n createDefaultAuthGroups().map((group) => ({ ...group, uuid: UUIDs.v4(), surveyUuid }))\n\nconst getPermissions = (group: AuthGroup) => permissionsByGroupName[group.name] ?? []\n\nconst sortGroups = (groups: AuthGroup[]) => {\n const sortedGroups = [...groups]\n sortedGroups.sort((group1, group2) => {\n const sortOrder1 = sortedGroupNames.indexOf(group1.name)\n const sortOrder2 = sortedGroupNames.indexOf(group2.name)\n return sortOrder1 - sortOrder2\n })\n return sortedGroups\n}\n\nexport const AuthGroups = {\n isSystemAdmin,\n isSurveyGroup,\n isSurveyManager,\n getSurveyUuid,\n getRecordSteps,\n getRecordEditLevel,\n getDefaultAuthGroups,\n getPermissions,\n sortGroups,\n}\n"]}
|
|
@@ -121,4 +121,7 @@ export const DEFAULT_AUTH_GROUPS = [
|
|
|
121
121
|
},
|
|
122
122
|
},
|
|
123
123
|
];
|
|
124
|
+
// copies of the default groups: their permissions and record steps must not be shared between surveys
|
|
125
|
+
// (the permissions arrays are the ones in permissionsByGroupName)
|
|
126
|
+
export const createDefaultAuthGroups = () => DEFAULT_AUTH_GROUPS.map((group) => (Object.assign(Object.assign(Object.assign({}, group), (group.permissions ? { permissions: [...group.permissions] } : {})), (group.recordSteps ? { recordSteps: Object.assign({}, group.recordSteps) } : {}))));
|
|
124
127
|
//# sourceMappingURL=authGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authGroup.js","sourceRoot":"","sources":["../../../src/auth/authGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Permission, RecordStepPermission } from './permission'\n\nexport enum AuthGroupName {\n systemAdmin = 'systemAdmin',\n surveyAdmin = 'surveyAdmin',\n surveyEditor = 'surveyEditor',\n surveyManager = 'surveyManager',\n surveyGuest = 'surveyGuest',\n dataEditor = 'dataEditor',\n dataCleanser = 'dataCleanser',\n dataAnalyst = 'dataAnalyst',\n}\n\nexport interface AuthGroup {\n name: AuthGroupName\n surveyUuid?: string\n permissions?: Array<Permission>\n recordSteps?: { [key: number]: RecordStepPermission }\n uuid?: string\n}\n\nexport const sortedGroupNames = [\n AuthGroupName.systemAdmin,\n AuthGroupName.surveyManager,\n AuthGroupName.surveyAdmin,\n AuthGroupName.surveyEditor,\n AuthGroupName.dataAnalyst,\n AuthGroupName.dataCleanser,\n AuthGroupName.dataEditor,\n AuthGroupName.surveyGuest,\n]\n\nexport const SYSTEM_ADMIN_GROUP: AuthGroup = { name: AuthGroupName.systemAdmin }\n\nexport const permissionsByGroupName: { [key in AuthGroupName]: Permission[] } = {\n [AuthGroupName.systemAdmin]: Object.values(Permission),\n [AuthGroupName.surveyManager]: [\n Permission.permissionsEdit,\n Permission.surveyCreate,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyAdmin]: [\n Permission.permissionsEdit,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyEditor]: [\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataAnalyst]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataCleanser]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n ],\n [AuthGroupName.dataEditor]: [Permission.recordView, Permission.recordCreate, Permission.recordEdit],\n [AuthGroupName.surveyGuest]: [Permission.recordView],\n}\n\nexport const DEFAULT_AUTH_GROUPS: Array<AuthGroup> = [\n {\n name: AuthGroupName.surveyAdmin,\n permissions: permissionsByGroupName[AuthGroupName.surveyAdmin],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.surveyEditor,\n permissions: permissionsByGroupName[AuthGroupName.surveyEditor],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataAnalyst,\n permissions: permissionsByGroupName[AuthGroupName.dataAnalyst],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataCleanser,\n permissions: permissionsByGroupName[AuthGroupName.dataCleanser],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataEditor,\n permissions: permissionsByGroupName[AuthGroupName.dataEditor],\n recordSteps: {\n 1: RecordStepPermission.own,\n },\n },\n {\n name: AuthGroupName.surveyGuest,\n permissions: permissionsByGroupName[AuthGroupName.surveyGuest],\n recordSteps: {\n 3: RecordStepPermission.all,\n },\n },\n]\n"]}
|
|
1
|
+
{"version":3,"file":"authGroup.js","sourceRoot":"","sources":["../../../src/auth/authGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import { Permission, RecordStepPermission } from './permission'\n\nexport enum AuthGroupName {\n systemAdmin = 'systemAdmin',\n surveyAdmin = 'surveyAdmin',\n surveyEditor = 'surveyEditor',\n surveyManager = 'surveyManager',\n surveyGuest = 'surveyGuest',\n dataEditor = 'dataEditor',\n dataCleanser = 'dataCleanser',\n dataAnalyst = 'dataAnalyst',\n}\n\nexport interface AuthGroup {\n name: AuthGroupName\n surveyUuid?: string\n permissions?: Array<Permission>\n recordSteps?: { [key: number]: RecordStepPermission }\n uuid?: string\n}\n\nexport const sortedGroupNames = [\n AuthGroupName.systemAdmin,\n AuthGroupName.surveyManager,\n AuthGroupName.surveyAdmin,\n AuthGroupName.surveyEditor,\n AuthGroupName.dataAnalyst,\n AuthGroupName.dataCleanser,\n AuthGroupName.dataEditor,\n AuthGroupName.surveyGuest,\n]\n\nexport const SYSTEM_ADMIN_GROUP: AuthGroup = { name: AuthGroupName.systemAdmin }\n\nexport const permissionsByGroupName: { [key in AuthGroupName]: Permission[] } = {\n [AuthGroupName.systemAdmin]: Object.values(Permission),\n [AuthGroupName.surveyManager]: [\n Permission.permissionsEdit,\n Permission.surveyCreate,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyAdmin]: [\n Permission.permissionsEdit,\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n Permission.userEdit,\n Permission.userInvite,\n ],\n [AuthGroupName.surveyEditor]: [\n Permission.surveyEdit,\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataAnalyst]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n Permission.recordAnalyse,\n ],\n [AuthGroupName.dataCleanser]: [\n Permission.recordView,\n Permission.recordCreate,\n Permission.recordEdit,\n Permission.recordCleanse,\n ],\n [AuthGroupName.dataEditor]: [Permission.recordView, Permission.recordCreate, Permission.recordEdit],\n [AuthGroupName.surveyGuest]: [Permission.recordView],\n}\n\nexport const DEFAULT_AUTH_GROUPS: Array<AuthGroup> = [\n {\n name: AuthGroupName.surveyAdmin,\n permissions: permissionsByGroupName[AuthGroupName.surveyAdmin],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.surveyEditor,\n permissions: permissionsByGroupName[AuthGroupName.surveyEditor],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataAnalyst,\n permissions: permissionsByGroupName[AuthGroupName.dataAnalyst],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n 3: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataCleanser,\n permissions: permissionsByGroupName[AuthGroupName.dataCleanser],\n recordSteps: {\n 1: RecordStepPermission.all,\n 2: RecordStepPermission.all,\n },\n },\n {\n name: AuthGroupName.dataEditor,\n permissions: permissionsByGroupName[AuthGroupName.dataEditor],\n recordSteps: {\n 1: RecordStepPermission.own,\n },\n },\n {\n name: AuthGroupName.surveyGuest,\n permissions: permissionsByGroupName[AuthGroupName.surveyGuest],\n recordSteps: {\n 3: RecordStepPermission.all,\n },\n },\n]\n\n// copies of the default groups: their permissions and record steps must not be shared between surveys\n// (the permissions arrays are the ones in permissionsByGroupName)\nexport const createDefaultAuthGroups = (): AuthGroup[] =>\n DEFAULT_AUTH_GROUPS.map((group) => ({\n ...group,\n ...(group.permissions ? { permissions: [...group.permissions] } : {}),\n ...(group.recordSteps ? { recordSteps: { ...group.recordSteps } } : {}),\n }))\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UUIDs } from '../utils';
|
|
2
|
-
import { AuthGroupName,
|
|
2
|
+
import { AuthGroupName, createDefaultAuthGroups, permissionsByGroupName, sortedGroupNames, } from './authGroup';
|
|
3
3
|
const isSystemAdmin = (authGroup) => (authGroup === null || authGroup === void 0 ? void 0 : authGroup.name) === AuthGroupName.systemAdmin;
|
|
4
4
|
const isSurveyManager = (authGroup) => (authGroup === null || authGroup === void 0 ? void 0 : authGroup.name) === AuthGroupName.surveyManager;
|
|
5
5
|
const isSurveyGroup = (authGroup) => !isSystemAdmin(authGroup) && !isSurveyManager(authGroup);
|
|
@@ -11,7 +11,7 @@ const getRecordEditLevel = (step) => (authGroup) => {
|
|
|
11
11
|
throw new Error('No steps');
|
|
12
12
|
return steps[step];
|
|
13
13
|
};
|
|
14
|
-
const getDefaultAuthGroups = (surveyUuid) =>
|
|
14
|
+
const getDefaultAuthGroups = (surveyUuid) => createDefaultAuthGroups().map((group) => (Object.assign(Object.assign({}, group), { uuid: UUIDs.v4(), surveyUuid })));
|
|
15
15
|
const getPermissions = (group) => { var _a; return (_a = permissionsByGroupName[group.name]) !== null && _a !== void 0 ? _a : []; };
|
|
16
16
|
const sortGroups = (groups) => {
|
|
17
17
|
const sortedGroups = [...groups];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authGroups.js","sourceRoot":"","sources":["../../../src/auth/authGroups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"authGroups.js","sourceRoot":"","sources":["../../../src/auth/authGroups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAEL,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,aAAa,CAAA;AAGpB,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,aAAa,CAAC,WAAW,CAAA;AAEtG,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,aAAa,CAAC,aAAa,CAAA;AAE1G,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAW,EAAE,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;AAEjH,MAAM,aAAa,GAAG,CAAC,SAAoB,EAAsB,EAAE,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,CAAA;AAEzF,MAAM,cAAc,GAAG,CAAC,SAAqB,EAAuD,EAAE,CACpG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAA;AAExB,MAAM,kBAAkB,GACtB,CAAC,IAAY,EAAE,EAAE,CACjB,CAAC,SAAqB,EAAwB,EAAE;IAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IAEvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;AACpB,CAAC,CAAA;AAEH,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAe,EAAE,CAC/D,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,IAAG,CAAC,CAAA;AAExF,MAAM,cAAc,GAAG,CAAC,KAAgB,EAAE,EAAE,wBAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,GAAA,CAAA;AAErF,MAAM,UAAU,GAAG,CAAC,MAAmB,EAAE,EAAE;IACzC,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;IAChC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACxD,OAAO,UAAU,GAAG,UAAU,CAAA;IAChC,CAAC,CAAC,CAAA;IACF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,aAAa;IACb,aAAa;IACb,eAAe;IACf,aAAa;IACb,cAAc;IACd,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,UAAU;CACX,CAAA","sourcesContent":["import { UUIDs } from '../utils'\nimport {\n AuthGroup,\n AuthGroupName,\n createDefaultAuthGroups,\n permissionsByGroupName,\n sortedGroupNames,\n} from './authGroup'\nimport { RecordStepPermission } from './permission'\n\nconst isSystemAdmin = (authGroup: AuthGroup): boolean => authGroup?.name === AuthGroupName.systemAdmin\n\nconst isSurveyManager = (authGroup: AuthGroup): boolean => authGroup?.name === AuthGroupName.surveyManager\n\nconst isSurveyGroup = (authGroup: AuthGroup): boolean => !isSystemAdmin(authGroup) && !isSurveyManager(authGroup)\n\nconst getSurveyUuid = (authGroup: AuthGroup): string | undefined => authGroup?.surveyUuid\n\nconst getRecordSteps = (authGroup?: AuthGroup): { [key: string]: RecordStepPermission } | undefined =>\n authGroup?.recordSteps\n\nconst getRecordEditLevel =\n (step: string) =>\n (authGroup?: AuthGroup): RecordStepPermission => {\n const steps = getRecordSteps(authGroup)\n if (!steps) throw new Error('No steps')\n\n return steps[step]\n }\n\nconst getDefaultAuthGroups = (surveyUuid: string): AuthGroup[] =>\n createDefaultAuthGroups().map((group) => ({ ...group, uuid: UUIDs.v4(), surveyUuid }))\n\nconst getPermissions = (group: AuthGroup) => permissionsByGroupName[group.name] ?? []\n\nconst sortGroups = (groups: AuthGroup[]) => {\n const sortedGroups = [...groups]\n sortedGroups.sort((group1, group2) => {\n const sortOrder1 = sortedGroupNames.indexOf(group1.name)\n const sortOrder2 = sortedGroupNames.indexOf(group2.name)\n return sortOrder1 - sortOrder2\n })\n return sortedGroups\n}\n\nexport const AuthGroups = {\n isSystemAdmin,\n isSurveyGroup,\n isSurveyManager,\n getSurveyUuid,\n getRecordSteps,\n getRecordEditLevel,\n getDefaultAuthGroups,\n getPermissions,\n sortGroups,\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { DEFAULT_SRS } from '../srs';
|
|
2
2
|
import { LanguageCode } from '../language';
|
|
3
3
|
import { UUIDs } from '../utils';
|
|
4
|
-
import {
|
|
4
|
+
import { createDefaultAuthGroups } from '../auth/authGroup';
|
|
5
5
|
// built at every call: default objects must not be shared between survey instances
|
|
6
6
|
const createDefaultParams = () => ({
|
|
7
7
|
languages: [LanguageCode.en],
|
|
8
8
|
published: false,
|
|
9
9
|
draft: true,
|
|
10
10
|
template: false,
|
|
11
|
-
authGroups:
|
|
11
|
+
authGroups: createDefaultAuthGroups(),
|
|
12
12
|
});
|
|
13
13
|
export const SurveyFactory = {
|
|
14
14
|
createInstance: (params) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/survey/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAIpC,OAAO,EAAU,YAAY,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAa,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/survey/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAIpC,OAAO,EAAU,YAAY,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAa,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAetE,mFAAmF;AACnF,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,uBAAuB,EAAE;CACtC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAyC;IACjE,cAAc,EAAE,CAAC,MAA2B,EAAU,EAAE;QACtD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,mCACxG,mBAAmB,EAAE,GACrB,MAAM,CACV,CAAA;QAED,OAAO;YACL,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;YAChB,SAAS;YACT,KAAK;YACL,SAAS;YACT,UAAU;YACV,KAAK,EAAE;gBACL,IAAI;gBACJ,SAAS;gBACT,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC9C,GAAG,EAAE,CAAC,WAAW,CAAC;gBAClB,MAAM,EAAE;oBACN,GAAG,EAAE;wBACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAClD;iBACF;gBACD,YAAY;gBACZ,UAAU;aACX;YACD,QAAQ;SACT,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { DEFAULT_SRS } from '../srs'\n\nimport { Factory } from '../common'\nimport { Survey } from './survey'\nimport { Labels, LanguageCode } from '../language'\nimport { UUIDs } from '../utils'\nimport { AuthGroup, createDefaultAuthGroups } from '../auth/authGroup'\n\nexport type SurveyFactoryParams = {\n ownerUuid: string\n name: string\n label?: string\n languages?: LanguageCode[]\n published?: boolean\n draft?: boolean\n template?: boolean\n collectUri?: string\n descriptions?: Labels\n authGroups?: AuthGroup[]\n}\n\n// built at every call: default objects must not be shared between survey instances\nconst createDefaultParams = () => ({\n languages: [LanguageCode.en],\n published: false,\n draft: true,\n template: false,\n authGroups: createDefaultAuthGroups(),\n})\n\nexport const SurveyFactory: Factory<Survey, SurveyFactoryParams> = {\n createInstance: (params: SurveyFactoryParams): Survey => {\n const { ownerUuid, name, label, languages, published, draft, collectUri, descriptions, authGroups, template } = {\n ...createDefaultParams(),\n ...params,\n }\n\n return {\n id: undefined,\n uuid: UUIDs.v4(),\n published,\n draft,\n ownerUuid,\n authGroups,\n props: {\n name,\n languages,\n labels: label ? { [languages[0]]: label } : {},\n srs: [DEFAULT_SRS],\n cycles: {\n '0': {\n dateStart: new Date().toISOString().split('T')[0],\n },\n },\n descriptions,\n collectUri,\n },\n template,\n }\n },\n}\n"]}
|
package/dist/survey/factory.js
CHANGED
|
@@ -11,7 +11,7 @@ const createDefaultParams = () => ({
|
|
|
11
11
|
published: false,
|
|
12
12
|
draft: true,
|
|
13
13
|
template: false,
|
|
14
|
-
authGroups: authGroup_1.
|
|
14
|
+
authGroups: (0, authGroup_1.createDefaultAuthGroups)(),
|
|
15
15
|
});
|
|
16
16
|
exports.SurveyFactory = {
|
|
17
17
|
createInstance: (params) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/survey/factory.ts"],"names":[],"mappings":";;;AAAA,gCAAoC;AAIpC,0CAAkD;AAClD,oCAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/survey/factory.ts"],"names":[],"mappings":";;;AAAA,gCAAoC;AAIpC,0CAAkD;AAClD,oCAAgC;AAChC,iDAAsE;AAetE,mFAAmF;AACnF,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,CAAC;IACjC,SAAS,EAAE,CAAC,uBAAY,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,KAAK;IAChB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,IAAA,mCAAuB,GAAE;CACtC,CAAC,CAAA;AAEW,QAAA,aAAa,GAAyC;IACjE,cAAc,EAAE,CAAC,MAA2B,EAAU,EAAE;QACtD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,mCACxG,mBAAmB,EAAE,GACrB,MAAM,CACV,CAAA;QAED,OAAO;YACL,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,aAAK,CAAC,EAAE,EAAE;YAChB,SAAS;YACT,KAAK;YACL,SAAS;YACT,UAAU;YACV,KAAK,EAAE;gBACL,IAAI;gBACJ,SAAS;gBACT,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;gBAC9C,GAAG,EAAE,CAAC,iBAAW,CAAC;gBAClB,MAAM,EAAE;oBACN,GAAG,EAAE;wBACH,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAClD;iBACF;gBACD,YAAY;gBACZ,UAAU;aACX;YACD,QAAQ;SACT,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { DEFAULT_SRS } from '../srs'\n\nimport { Factory } from '../common'\nimport { Survey } from './survey'\nimport { Labels, LanguageCode } from '../language'\nimport { UUIDs } from '../utils'\nimport { AuthGroup, createDefaultAuthGroups } from '../auth/authGroup'\n\nexport type SurveyFactoryParams = {\n ownerUuid: string\n name: string\n label?: string\n languages?: LanguageCode[]\n published?: boolean\n draft?: boolean\n template?: boolean\n collectUri?: string\n descriptions?: Labels\n authGroups?: AuthGroup[]\n}\n\n// built at every call: default objects must not be shared between survey instances\nconst createDefaultParams = () => ({\n languages: [LanguageCode.en],\n published: false,\n draft: true,\n template: false,\n authGroups: createDefaultAuthGroups(),\n})\n\nexport const SurveyFactory: Factory<Survey, SurveyFactoryParams> = {\n createInstance: (params: SurveyFactoryParams): Survey => {\n const { ownerUuid, name, label, languages, published, draft, collectUri, descriptions, authGroups, template } = {\n ...createDefaultParams(),\n ...params,\n }\n\n return {\n id: undefined,\n uuid: UUIDs.v4(),\n published,\n draft,\n ownerUuid,\n authGroups,\n props: {\n name,\n languages,\n labels: label ? { [languages[0]]: label } : {},\n srs: [DEFAULT_SRS],\n cycles: {\n '0': {\n dateStart: new Date().toISOString().split('T')[0],\n },\n },\n descriptions,\n collectUri,\n },\n template,\n }\n },\n}\n"]}
|