studiokit-scaffolding-js 7.0.12-next.1.4 → 7.0.12-next.2.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/lib/components/ActionList.js +170 -34
- package/lib/components/AlertDialog.js +133 -9
- package/lib/components/AlertWithIcon.js +92 -25
- package/lib/components/ConnectedModal.js +43 -13
- package/lib/components/Dropdowns/GroupsDropdown.js +69 -44
- package/lib/components/Dropdowns/ManagedNavDropdown.js +100 -67
- package/lib/components/Dropdowns/UserDropdown.js +111 -21
- package/lib/components/Dropdowns/index.js +27 -9
- package/lib/components/EntityOwnerList.js +52 -18
- package/lib/components/Error.js +106 -11
- package/lib/components/ErrorBoundary.js +134 -35
- package/lib/components/ErrorMessage.js +44 -9
- package/lib/components/Forms/DateField.js +61 -42
- package/lib/components/Forms/TimeField.js +81 -42
- package/lib/components/Forms/index.js +27 -4
- package/lib/components/Groups/CreateEditCopySaveButtons.js +114 -11
- package/lib/components/Groups/ExternalGroups/Attach.js +212 -148
- package/lib/components/Groups/ExternalGroups/Table.js +181 -45
- package/lib/components/Groups/GroupCreateOrEditCommonProps.js +5 -1
- package/lib/components/Groups/RosterSyncInfo.js +147 -20
- package/lib/components/HOC/AccessibleAppComponent.js +98 -73
- package/lib/components/HOC/ActivityRequiredComponent.js +92 -49
- package/lib/components/HOC/AsyncComponent.js +54 -39
- package/lib/components/HOC/AuthenticatedComponent.js +58 -38
- package/lib/components/HOC/CollectionComponent.js +170 -110
- package/lib/components/HOC/CollectionFirstItemComponent.js +51 -38
- package/lib/components/HOC/CollectionItemComponent.js +168 -106
- package/lib/components/HOC/ConnectedModalComponent.js +109 -80
- package/lib/components/HOC/DataDependentComponent.js +29 -21
- package/lib/components/HOC/EntityComponent.js +71 -57
- package/lib/components/HOC/FullscreenModalComponent.js +163 -123
- package/lib/components/HOC/GroupActivityRequiredComponent.js +45 -31
- package/lib/components/HOC/GuidComponent.js +29 -22
- package/lib/components/HOC/ModelContextDependencyVerifyComponent.js +41 -31
- package/lib/components/HOC/ModelErrorRedirectComponent.js +51 -47
- package/lib/components/HOC/SearchPersistorComponent.js +240 -166
- package/lib/components/HOC/UnauthenticatedComponent.js +37 -25
- package/lib/components/HOC/UserComponent.js +12 -7
- package/lib/components/Icons/IconAlphaList.js +33 -5
- package/lib/components/Icons/IconExternalUser.js +33 -5
- package/lib/components/Icons/IconImpersonation.js +33 -5
- package/lib/components/Icons/IconStopImpersonating.js +33 -5
- package/lib/components/Icons/IconTable.js +35 -7
- package/lib/components/Icons/IconTableDeleteCol.js +33 -5
- package/lib/components/Icons/IconTableDeleteRow.js +33 -5
- package/lib/components/Icons/IconTableInsertCol.js +33 -5
- package/lib/components/Icons/IconTableInsertRow.js +33 -5
- package/lib/components/Impersonation/Button.js +77 -13
- package/lib/components/Impersonation/Link.js +77 -13
- package/lib/components/Impersonation/UserDetail.js +66 -9
- package/lib/components/Loading.js +26 -4
- package/lib/components/LockDownBrowser/Check.js +194 -49
- package/lib/components/LockDownBrowser/ExitButton.js +26 -9
- package/lib/components/LockDownBrowser/Launch.js +70 -62
- package/lib/components/Lti/Confirm.js +152 -11
- package/lib/components/Lti/CreateNonLtiGroupAlertDialog.js +170 -33
- package/lib/components/Lti/Launch.js +105 -24
- package/lib/components/Lti/LaunchGroup.js +85 -13
- package/lib/components/ManageTable.js +309 -87
- package/lib/components/ManageTableNoDataComponent.js +42 -4
- package/lib/components/NewVersionAlert.js +82 -46
- package/lib/components/NotFound.js +86 -10
- package/lib/components/Notifications.js +185 -126
- package/lib/components/PaginationNextButton.js +33 -6
- package/lib/components/PaginationPreviousButton.js +33 -6
- package/lib/components/Quill/CustomToolbar.js +432 -218
- package/lib/components/Quill/Formats/Image.js +73 -63
- package/lib/components/Quill/Formats/List.js +45 -45
- package/lib/components/Quill/Formats/Video.js +28 -24
- package/lib/components/Quill/ImageDropModule.js +147 -117
- package/lib/components/Quill/ImageWarning.js +47 -9
- package/lib/components/Quill/ImageWithAltTextModal.js +425 -86
- package/lib/components/Quill/Specs/CustomImageSpec.js +42 -34
- package/lib/components/Quill/Specs/CustomVideoSpec.js +34 -28
- package/lib/components/Quill/TableModule/Blots/BaseTableBlot.js +98 -98
- package/lib/components/Quill/TableModule/Blots/TableBlot.js +52 -47
- package/lib/components/Quill/TableModule/Blots/TableBodyBlot.js +53 -48
- package/lib/components/Quill/TableModule/Blots/TableCellBlot.js +224 -221
- package/lib/components/Quill/TableModule/Blots/TableContainer.js +80 -83
- package/lib/components/Quill/TableModule/Blots/TableRowBlot.js +75 -70
- package/lib/components/Quill/TableModule/constants.js +45 -41
- package/lib/components/Quill/TableModule/index.js +362 -301
- package/lib/components/Quill/TableModule/utils.js +42 -38
- package/lib/components/Quill/accessibilityFix.js +234 -232
- package/lib/components/Quill/index.js +34 -28
- package/lib/components/RefreshIndicator/Bordered.js +47 -6
- package/lib/components/RefreshIndicator/Inline.js +47 -8
- package/lib/components/RefreshIndicator/index.js +263 -59
- package/lib/components/SearchControls.js +216 -11
- package/lib/components/SentryRoute.js +11 -6
- package/lib/components/Tables/RoleFilter.js +69 -32
- package/lib/components/Tables/TextFilter.js +62 -13
- package/lib/components/UserRoles/Add.js +199 -96
- package/lib/components/UserRoles/Context.js +11 -7
- package/lib/components/UserRoles/RoleCell.js +181 -72
- package/lib/components/UserRoles/Select.js +157 -17
- package/lib/components/UserRoles/Table.js +221 -80
- package/lib/components/UserRoles/index.js +534 -384
- package/lib/config/eslint/index.js +32 -28
- package/lib/config/eslint/lib/order.js +26 -27
- package/lib/config/eslint/lib/prettier.js +20 -18
- package/lib/config/eslint/lib/typescript.js +93 -112
- package/lib/config/eslint/react.js +24 -14
- package/lib/constants/baseActivity.js +30 -26
- package/lib/constants/baseRole.js +14 -10
- package/lib/constants/configuration.js +33 -29
- package/lib/constants/externalProviderType.js +10 -6
- package/lib/constants/fetchErrorData.js +15 -11
- package/lib/constants/index.js +137 -14
- package/lib/constants/lockDownBrowser.js +28 -24
- package/lib/constants/mockData.js +382 -297
- package/lib/constants/modelStatus.js +15 -11
- package/lib/constants/notificationType.js +12 -8
- package/lib/constants/operatingSystem.js +12 -8
- package/lib/constants/shard.js +11 -7
- package/lib/constants/table.js +21 -21
- package/lib/constants/tier.js +12 -8
- package/lib/constants/userRole.js +15 -5
- package/lib/endpointMappings.js +197 -181
- package/lib/hooks/useCollection.js +82 -62
- package/lib/hooks/useCollectionConfiguration.js +228 -83
- package/lib/hooks/useCollectionItem.js +154 -54
- package/lib/hooks/useGuid.js +20 -8
- package/lib/hooks/usePrevious.js +19 -13
- package/lib/index.js +157 -25
- package/lib/redux/actionCreator.js +50 -28
- package/lib/redux/actions/AuthAction.js +44 -31
- package/lib/redux/actions/ModalAction.js +10 -6
- package/lib/redux/actions/ModelAction.js +77 -39
- package/lib/redux/actions/NotificationAction.js +10 -6
- package/lib/redux/actions/SearchAction.js +9 -5
- package/lib/redux/actions/index.js +60 -7
- package/lib/redux/configureReducers.js +60 -49
- package/lib/redux/configureStore.js +83 -87
- package/lib/redux/helpers.js +6 -2
- package/lib/redux/reducers/authReducer.js +50 -43
- package/lib/redux/reducers/index.js +41 -13
- package/lib/redux/reducers/modalsReducer.js +47 -29
- package/lib/redux/reducers/modelsReducer.js +178 -173
- package/lib/redux/reducers/notificationsReducer.js +24 -18
- package/lib/redux/reducers/searchReducer.js +25 -19
- package/lib/redux/sagas/appInsightsSaga.js +22 -18
- package/lib/redux/sagas/authSaga.js +253 -218
- package/lib/redux/sagas/caliperSaga.js +159 -143
- package/lib/redux/sagas/clockOffsetSaga.js +34 -31
- package/lib/redux/sagas/configurationSaga.js +11 -7
- package/lib/redux/sagas/downtimeApiErrorSaga.js +20 -17
- package/lib/redux/sagas/errorSaga.js +27 -21
- package/lib/redux/sagas/googleAnalyticsSaga.js +28 -24
- package/lib/redux/sagas/identityProviderSaga.js +22 -18
- package/lib/redux/sagas/initialDataLoadSaga.js +37 -28
- package/lib/redux/sagas/lockDownBrowserErrorSaga.js +29 -20
- package/lib/redux/sagas/modelFetchSaga.js +355 -322
- package/lib/redux/sagas/noStoreSaga.js +61 -48
- package/lib/redux/sagas/postLoginDataSaga.js +45 -34
- package/lib/redux/sagas/postLoginRedirectSaga.js +27 -27
- package/lib/redux/sagas/rootSaga.js +82 -57
- package/lib/redux/sagas/sentrySaga.js +29 -25
- package/lib/redux/sagas/userIdSaga.js +16 -12
- package/lib/services/codeProviderService.js +25 -19
- package/lib/services/dateService.js +12 -7
- package/lib/services/documentService.js +17 -12
- package/lib/services/fetchService.js +129 -112
- package/lib/services/persistenceService.js +33 -29
- package/lib/services/ticketProviderService.js +29 -23
- package/lib/services/tokenPersistenceService.js +12 -8
- package/lib/services/windowService.js +18 -14
- package/lib/startup.js +132 -114
- package/lib/types/AppConfiguration.js +5 -1
- package/lib/types/Artifact.js +11 -7
- package/lib/types/BaseReduxState.js +5 -1
- package/lib/types/Client.js +5 -1
- package/lib/types/Collection.js +5 -1
- package/lib/types/Configuration.js +5 -1
- package/lib/types/DeepLinkingResponseRequest.js +5 -1
- package/lib/types/DeletableModel.js +5 -1
- package/lib/types/Event.js +5 -1
- package/lib/types/ExternalGroup.js +5 -1
- package/lib/types/ExternalProvider.js +5 -1
- package/lib/types/ExternalTerm.js +5 -1
- package/lib/types/Group.js +5 -1
- package/lib/types/IdentityProvider.js +5 -1
- package/lib/types/LtiLaunch.js +5 -1
- package/lib/types/NameOnlyEntity.js +5 -1
- package/lib/types/Notification.js +5 -1
- package/lib/types/OptionalRecord.js +5 -1
- package/lib/types/OwnerSchedule.js +5 -1
- package/lib/types/PropertyOfType.js +5 -1
- package/lib/types/Quill.js +5 -1
- package/lib/types/RoleDescription.js +5 -1
- package/lib/types/Search.js +5 -1
- package/lib/types/SimpleLocation.js +5 -1
- package/lib/types/UniTime.js +5 -1
- package/lib/types/User.js +5 -1
- package/lib/types/UserRole.js +5 -1
- package/lib/types/auth/AuthState.js +5 -1
- package/lib/types/auth/CasV1LoginRequestBody.js +5 -1
- package/lib/types/auth/ClientCredentials.js +5 -1
- package/lib/types/auth/CodeProviderService.js +5 -1
- package/lib/types/auth/LocalLoginRequestBody.js +5 -1
- package/lib/types/auth/TicketProviderService.js +5 -1
- package/lib/types/auth/TokenPersistenceService.js +5 -1
- package/lib/types/auth/index.js +82 -9
- package/lib/types/externals.d.js +2 -0
- package/lib/types/index.js +313 -30
- package/lib/types/net/EndpointConfig.js +5 -1
- package/lib/types/net/EndpointMapping.js +5 -1
- package/lib/types/net/EndpointMappings.js +5 -1
- package/lib/types/net/ErrorHandler.js +5 -1
- package/lib/types/net/FetchConfig.js +5 -1
- package/lib/types/net/FetchErrorData.js +10 -6
- package/lib/types/net/FetchResult.js +5 -1
- package/lib/types/net/HTTPMethod.js +5 -1
- package/lib/types/net/HTTPStatusCode.js +16 -12
- package/lib/types/net/Metadata.js +5 -1
- package/lib/types/net/Model.js +5 -1
- package/lib/types/net/ModelCollection.js +5 -1
- package/lib/types/net/ModelsState.js +5 -1
- package/lib/types/net/OAuthToken.js +5 -1
- package/lib/types/net/OAuthTokenOrNull.js +5 -1
- package/lib/types/net/TokenAccessFunction.js +5 -1
- package/lib/types/net/index.js +181 -18
- package/lib/utils/baseActivity.js +133 -123
- package/lib/utils/baseRole.js +37 -33
- package/lib/utils/collection.js +425 -298
- package/lib/utils/cookies.js +22 -19
- package/lib/utils/date.js +303 -279
- package/lib/utils/dom.js +176 -165
- package/lib/utils/domainIdentifier.js +9 -5
- package/lib/utils/entityUserRole.js +6 -2
- package/lib/utils/error.js +17 -15
- package/lib/utils/events.js +40 -31
- package/lib/utils/externalGroup.js +22 -18
- package/lib/utils/externalProviders.js +8 -4
- package/lib/utils/externalTerms.js +10 -3
- package/lib/utils/fetch.js +179 -180
- package/lib/utils/group.js +18 -7
- package/lib/utils/groupDates.js +37 -33
- package/lib/utils/groupRoles.js +25 -21
- package/lib/utils/lockDownBrowser.js +15 -11
- package/lib/utils/logger.js +26 -22
- package/lib/utils/lti.js +9 -4
- package/lib/utils/model.js +36 -41
- package/lib/utils/number.js +21 -18
- package/lib/utils/promise.js +28 -21
- package/lib/utils/quill.js +65 -62
- package/lib/utils/route.js +58 -55
- package/lib/utils/search.js +76 -80
- package/lib/utils/shard.js +37 -37
- package/lib/utils/sort.js +50 -42
- package/lib/utils/string.js +13 -8
- package/lib/utils/table.js +38 -33
- package/lib/utils/timezone.js +10 -6
- package/lib/utils/url.js +142 -142
- package/lib/utils/user.js +58 -55
- package/lib/utils/userAgent.js +10 -10
- package/lib/utils/userRole.js +57 -49
- package/package.json +17 -3
|
@@ -1,144 +1,154 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultOptions = exports.canPerformActivityGloballyOrOnSomeEntities = exports.canPerformActivityGloballyOrOnEntity = exports.canPerformActivityGlobally = exports.canPerformActivityOnSomeEntities = exports.canPerformActivityOnEntity = void 0;
|
|
4
|
-
const model_1 = require("./model");
|
|
5
|
-
/*
|
|
6
|
-
The functions in this module all are designed as predicates to determine whether a
|
|
7
|
-
user has been granted a set of activities to perform, either at an entity-specific
|
|
8
|
-
level or at a global level.
|
|
9
2
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultOptions = exports.canPerformActivityOnSomeEntities = exports.canPerformActivityOnEntity = exports.canPerformActivityGloballyOrOnSomeEntities = exports.canPerformActivityGloballyOrOnEntity = exports.canPerformActivityGlobally = void 0;
|
|
7
|
+
var _model = require("./model");
|
|
8
|
+
/*
|
|
9
|
+
The functions in this module all are designed as predicates to determine whether a
|
|
10
|
+
user has been granted a set of activities to perform, either at an entity-specific
|
|
11
|
+
level or at a global level.
|
|
12
|
+
|
|
13
|
+
Because Javascript doesn’t have named parameters, we use an 'options object' to
|
|
14
|
+
pass the needed items. By ensuring all these functions have the same signature,
|
|
15
|
+
we can use them interchangeably in constructing the ActivityRequiredComponent.
|
|
16
|
+
|
|
17
|
+
The options object has the following structure:
|
|
18
|
+
{
|
|
19
|
+
entities: {
|
|
20
|
+
{
|
|
21
|
+
1: {
|
|
22
|
+
activities: [
|
|
23
|
+
"activityName1",
|
|
24
|
+
"activityName2"
|
|
25
|
+
...
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
...
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
entity: {
|
|
32
|
+
activities: [
|
|
33
|
+
"activityName1",
|
|
34
|
+
"activityName2"
|
|
35
|
+
...
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
userInfo: {
|
|
39
|
+
activities: [
|
|
40
|
+
"activityName1",
|
|
41
|
+
"activityName2",
|
|
42
|
+
...
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
`entity` is a single entity and `entities` is a set of entities to which a user has been granted a set of activities.
|
|
48
|
+
While we could use the array of entities and eliminate the need for the entity property, the singular property will be
|
|
49
|
+
used in most cases and it prevents to the need to stuff the entity in an array unnecessarily.
|
|
50
|
+
|
|
51
|
+
`userInfo` contains a property with an array of activities the user has been granted at a global level
|
|
49
52
|
*/
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* @param {
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Return true if user has activity for the single entity
|
|
56
|
+
*
|
|
57
|
+
* @param {string} requiredActivity The activity required to return true
|
|
58
|
+
* @param {object} options See above
|
|
55
59
|
*/
|
|
56
60
|
const canPerformActivityOnEntity = (requiredActivity, options) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
return !!((_a = options.entity.activities) === null || _a === void 0 ? void 0 : _a.includes(requiredActivity));
|
|
61
|
+
if (!requiredActivity) {
|
|
62
|
+
throw new Error('`requiredActivity` must be provided');
|
|
63
|
+
}
|
|
64
|
+
if (!options.entity) {
|
|
65
|
+
throw new Error('`options.entity` must be provided');
|
|
66
|
+
}
|
|
67
|
+
return !!options.entity.activities?.includes(requiredActivity);
|
|
65
68
|
};
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Return true if user has activity on any of the entities
|
|
69
|
-
*
|
|
70
|
-
* @param {string} requiredActivity The activity required to return true
|
|
71
|
-
* @param {object} options See above
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Return true if user has activity on any of the entities
|
|
72
|
+
*
|
|
73
|
+
* @param {string} requiredActivity The activity required to return true
|
|
74
|
+
* @param {object} options See above
|
|
72
75
|
*/
|
|
76
|
+
exports.canPerformActivityOnEntity = canPerformActivityOnEntity;
|
|
73
77
|
const canPerformActivityOnSomeEntities = (requiredActivity, options) => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
if (!requiredActivity) {
|
|
79
|
+
throw new Error('`requiredActivity` must be provided');
|
|
80
|
+
}
|
|
81
|
+
if (!options.entities) {
|
|
82
|
+
throw new Error('`options.entities` must be provided');
|
|
83
|
+
}
|
|
84
|
+
return (0, _model.getModelArray)(options.entities).some(entity => canPerformActivityOnEntity(requiredActivity, {
|
|
85
|
+
entity
|
|
86
|
+
}));
|
|
81
87
|
};
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Return true if user has activity globally
|
|
85
|
-
*
|
|
86
|
-
* This function can accept an null/undefined userInfo property for the
|
|
87
|
-
* options argument. In which case it returns false. This is because userInfo
|
|
88
|
-
* may not be loaded yet. If it is provided however, it must contain an
|
|
89
|
-
* activities array
|
|
90
|
-
*
|
|
91
|
-
* @param {string} requiredActivity The activity required to return true
|
|
92
|
-
* @param {object} options See above
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Return true if user has activity globally
|
|
91
|
+
*
|
|
92
|
+
* This function can accept an null/undefined userInfo property for the
|
|
93
|
+
* options argument. In which case it returns false. This is because userInfo
|
|
94
|
+
* may not be loaded yet. If it is provided however, it must contain an
|
|
95
|
+
* activities array
|
|
96
|
+
*
|
|
97
|
+
* @param {string} requiredActivity The activity required to return true
|
|
98
|
+
* @param {object} options See above
|
|
93
99
|
*/
|
|
100
|
+
exports.canPerformActivityOnSomeEntities = canPerformActivityOnSomeEntities;
|
|
94
101
|
const canPerformActivityGlobally = (requiredActivity, options) => {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
+
if (!requiredActivity) {
|
|
103
|
+
throw new Error('`requiredActivity` must be provided');
|
|
104
|
+
}
|
|
105
|
+
if (!!options.userInfo && !!options.userInfo.activities && !Array.isArray(options.userInfo.activities)) {
|
|
106
|
+
throw new Error('`options.userInfo.activities` must be an array');
|
|
107
|
+
}
|
|
108
|
+
return !!options.userInfo && !!options.userInfo.activities && options.userInfo.activities.includes(requiredActivity);
|
|
102
109
|
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Return true if user has activity either globally or on a single entity
|
|
113
|
+
*
|
|
114
|
+
* @param {string} requiredActivity The activity required to return true
|
|
115
|
+
* @param {object} options See above
|
|
116
|
+
*/
|
|
103
117
|
exports.canPerformActivityGlobally = canPerformActivityGlobally;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
*
|
|
108
|
-
*
|
|
118
|
+
const canPerformActivityGloballyOrOnEntity = (requiredActivity, options) => canPerformActivityGlobally(requiredActivity, options) || canPerformActivityOnEntity(requiredActivity, options);
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Return true if user has activity globally or on any of the entities provided
|
|
122
|
+
*
|
|
123
|
+
* @param {string} requiredActivity The activity required to return true
|
|
124
|
+
* @param {object} options See above
|
|
109
125
|
*/
|
|
110
|
-
const canPerformActivityGloballyOrOnEntity = (requiredActivity, options) => (0, exports.canPerformActivityGlobally)(requiredActivity, options) || (0, exports.canPerformActivityOnEntity)(requiredActivity, options);
|
|
111
126
|
exports.canPerformActivityGloballyOrOnEntity = canPerformActivityGloballyOrOnEntity;
|
|
112
|
-
/**
|
|
113
|
-
* Return true if user has activity globally or on any of the entities provided
|
|
114
|
-
*
|
|
115
|
-
* @param {string} requiredActivity The activity required to return true
|
|
116
|
-
* @param {object} options See above
|
|
117
|
-
*/
|
|
118
127
|
const canPerformActivityGloballyOrOnSomeEntities = (requiredActivity, options) => {
|
|
119
|
-
|
|
120
|
-
(0, exports.canPerformActivityOnSomeEntities)(requiredActivity, options));
|
|
128
|
+
return canPerformActivityGlobally(requiredActivity, options) || canPerformActivityOnSomeEntities(requiredActivity, options);
|
|
121
129
|
};
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* Return an options object that can be used in the functions in this module. This
|
|
125
|
-
* encapsulates the default logic of looking in state for a set of entities or
|
|
126
|
-
* looking in props for a single entity.
|
|
127
|
-
*
|
|
128
|
-
* Override or decorate with app specific logic in your app if needed.
|
|
129
|
-
*
|
|
130
|
-
* @param {Object} state The redux state
|
|
131
|
-
* @param {Object} [props] A props object (typically ownProps)
|
|
132
|
-
* @param {string} [modelsProperty] The property used to locate the entity or entities
|
|
133
|
-
* needed for entity-level activity grants. For sets of entities, this function
|
|
134
|
-
* looks in `state.models`. For a single entity, it looks in `props`
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Return an options object that can be used in the functions in this module. This
|
|
133
|
+
* encapsulates the default logic of looking in state for a set of entities or
|
|
134
|
+
* looking in props for a single entity.
|
|
135
|
+
*
|
|
136
|
+
* Override or decorate with app specific logic in your app if needed.
|
|
137
|
+
*
|
|
138
|
+
* @param {Object} state The redux state
|
|
139
|
+
* @param {Object} [props] A props object (typically ownProps)
|
|
140
|
+
* @param {string} [modelsProperty] The property used to locate the entity or entities
|
|
141
|
+
* needed for entity-level activity grants. For sets of entities, this function
|
|
142
|
+
* looks in `state.models`. For a single entity, it looks in `props`
|
|
135
143
|
*/
|
|
144
|
+
exports.canPerformActivityGloballyOrOnSomeEntities = canPerformActivityGloballyOrOnSomeEntities;
|
|
136
145
|
const defaultOptions = (state, props, modelsProperty) => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
146
|
+
// if implementing in app, override / decorate with app specific logic
|
|
147
|
+
return {
|
|
148
|
+
entity: modelsProperty ? props && props[modelsProperty] : undefined,
|
|
149
|
+
entities: modelsProperty ? state.models[modelsProperty] : undefined,
|
|
150
|
+
userInfo: state.models.user && state.models.user.userInfo
|
|
151
|
+
};
|
|
143
152
|
};
|
|
144
153
|
exports.defaultOptions = defaultOptions;
|
|
154
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9kZWwiLCJyZXF1aXJlIiwiY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkiLCJyZXF1aXJlZEFjdGl2aXR5Iiwib3B0aW9ucyIsIkVycm9yIiwiZW50aXR5IiwiYWN0aXZpdGllcyIsImluY2x1ZGVzIiwiZXhwb3J0cyIsImNhblBlcmZvcm1BY3Rpdml0eU9uU29tZUVudGl0aWVzIiwiZW50aXRpZXMiLCJnZXRNb2RlbEFycmF5Iiwic29tZSIsImNhblBlcmZvcm1BY3Rpdml0eUdsb2JhbGx5IiwidXNlckluZm8iLCJBcnJheSIsImlzQXJyYXkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25FbnRpdHkiLCJjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25Tb21lRW50aXRpZXMiLCJkZWZhdWx0T3B0aW9ucyIsInN0YXRlIiwicHJvcHMiLCJtb2RlbHNQcm9wZXJ0eSIsInVuZGVmaW5lZCIsIm1vZGVscyIsInVzZXIiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYmFzZUFjdGl2aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VSZWR1eFN0YXRlLCBNb2RlbCwgTW9kZWxDb2xsZWN0aW9uLCBVc2VySW5mbyB9IGZyb20gJy4uL3R5cGVzJ1xyXG5pbXBvcnQgeyBnZXRNb2RlbEFycmF5IH0gZnJvbSAnLi9tb2RlbCdcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZpdHlPcHRpb25zIHtcclxuXHRlbnRpdHk/OiBNb2RlbCAmIHtcclxuXHRcdGFjdGl2aXRpZXM/OiBzdHJpbmdbXVxyXG5cdH1cclxuXHRlbnRpdGllcz86IE1vZGVsQ29sbGVjdGlvblxyXG5cdHVzZXJJbmZvPzogVXNlckluZm8gfCBQYXJ0aWFsPFVzZXJJbmZvPlxyXG59XHJcblxyXG4vKlxyXG5cdFRoZSBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgYWxsIGFyZSBkZXNpZ25lZCBhcyBwcmVkaWNhdGVzIHRvIGRldGVybWluZSB3aGV0aGVyIGFcclxuXHR1c2VyIGhhcyBiZWVuIGdyYW50ZWQgYSBzZXQgb2YgYWN0aXZpdGllcyB0byBwZXJmb3JtLCBlaXRoZXIgYXQgYW4gZW50aXR5LXNwZWNpZmljXHJcblx0bGV2ZWwgb3IgYXQgYSBnbG9iYWwgbGV2ZWwuXHJcblxyXG5cdEJlY2F1c2UgSmF2YXNjcmlwdCBkb2VzbuKAmXQgaGF2ZSBuYW1lZCBwYXJhbWV0ZXJzLCB3ZSB1c2UgYW4gJ29wdGlvbnMgb2JqZWN0JyB0b1xyXG5cdHBhc3MgdGhlIG5lZWRlZCBpdGVtcy4gQnkgZW5zdXJpbmcgYWxsIHRoZXNlIGZ1bmN0aW9ucyBoYXZlIHRoZSBzYW1lIHNpZ25hdHVyZSxcclxuXHR3ZSBjYW4gdXNlIHRoZW0gaW50ZXJjaGFuZ2VhYmx5IGluIGNvbnN0cnVjdGluZyB0aGUgQWN0aXZpdHlSZXF1aXJlZENvbXBvbmVudC5cclxuXHJcblx0VGhlIG9wdGlvbnMgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHN0cnVjdHVyZTpcclxuXHR7XHJcblx0XHRlbnRpdGllczoge1xyXG5cdFx0XHR7XHJcblx0XHRcdFx0MToge1xyXG5cdFx0XHRcdFx0XHRhY3Rpdml0aWVzOiBbXHJcblx0XHRcdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUxXCIsXHJcblx0XHRcdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUyXCJcclxuXHRcdFx0XHRcdFx0XHQuLi5cclxuXHRcdFx0XHRcdFx0XVxyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHRcdC4uLlxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0ZW50aXR5OiB7XHJcblx0XHRcdFx0YWN0aXZpdGllczogW1xyXG5cdFx0XHRcdFx0XCJhY3Rpdml0eU5hbWUxXCIsXHJcblx0XHRcdFx0XHRcImFjdGl2aXR5TmFtZTJcIlxyXG5cdFx0XHRcdFx0Li4uXHJcblx0XHRcdFx0XVxyXG5cdFx0fVxyXG5cdFx0dXNlckluZm86IHtcclxuXHRcdFx0YWN0aXZpdGllczogW1xyXG5cdFx0XHRcdFwiYWN0aXZpdHlOYW1lMVwiLFxyXG5cdFx0XHRcdFwiYWN0aXZpdHlOYW1lMlwiLFxyXG5cdFx0XHRcdC4uLlxyXG5cdFx0XHRdXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRgZW50aXR5YCBpcyBhIHNpbmdsZSBlbnRpdHkgYW5kIGBlbnRpdGllc2AgaXMgYSBzZXQgb2YgZW50aXRpZXMgdG8gd2hpY2ggYSB1c2VyIGhhcyBiZWVuIGdyYW50ZWQgYSBzZXQgb2YgYWN0aXZpdGllcy5cclxuXHRXaGlsZSB3ZSBjb3VsZCB1c2UgdGhlIGFycmF5IG9mIGVudGl0aWVzIGFuZCBlbGltaW5hdGUgdGhlIG5lZWQgZm9yIHRoZSBlbnRpdHkgcHJvcGVydHksIHRoZSBzaW5ndWxhciBwcm9wZXJ0eSB3aWxsIGJlXHJcblx0dXNlZCBpbiBtb3N0IGNhc2VzIGFuZCBpdCBwcmV2ZW50cyB0byB0aGUgbmVlZCB0byBzdHVmZiB0aGUgZW50aXR5IGluIGFuIGFycmF5IHVubmVjZXNzYXJpbHkuXHJcblxyXG5cdGB1c2VySW5mb2AgY29udGFpbnMgYSBwcm9wZXJ0eSB3aXRoIGFuIGFycmF5IG9mIGFjdGl2aXRpZXMgdGhlIHVzZXIgaGFzIGJlZW4gZ3JhbnRlZCBhdCBhIGdsb2JhbCBsZXZlbFxyXG4qL1xyXG5cclxuLyoqXHJcbiAqIFJldHVybiB0cnVlIGlmIHVzZXIgaGFzIGFjdGl2aXR5IGZvciB0aGUgc2luZ2xlIGVudGl0eVxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWlyZWRBY3Rpdml0eSBUaGUgYWN0aXZpdHkgcmVxdWlyZWQgdG8gcmV0dXJuIHRydWVcclxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgU2VlIGFib3ZlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcclxuXHRpZiAoIXJlcXVpcmVkQWN0aXZpdHkpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignYHJlcXVpcmVkQWN0aXZpdHlgIG11c3QgYmUgcHJvdmlkZWQnKVxyXG5cdH1cclxuXHRpZiAoIW9wdGlvbnMuZW50aXR5KSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2BvcHRpb25zLmVudGl0eWAgbXVzdCBiZSBwcm92aWRlZCcpXHJcblx0fVxyXG5cdHJldHVybiAhIW9wdGlvbnMuZW50aXR5LmFjdGl2aXRpZXM/LmluY2x1ZGVzKHJlcXVpcmVkQWN0aXZpdHkpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBvbiBhbnkgb2YgdGhlIGVudGl0aWVzXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1aXJlZEFjdGl2aXR5IFRoZSBhY3Rpdml0eSByZXF1aXJlZCB0byByZXR1cm4gdHJ1ZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjYW5QZXJmb3JtQWN0aXZpdHlPblNvbWVFbnRpdGllcyA9IChyZXF1aXJlZEFjdGl2aXR5OiBzdHJpbmcsIG9wdGlvbnM6IEFjdGl2aXR5T3B0aW9ucykgPT4ge1xyXG5cdGlmICghcmVxdWlyZWRBY3Rpdml0eSkge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgcmVxdWlyZWRBY3Rpdml0eWAgbXVzdCBiZSBwcm92aWRlZCcpXHJcblx0fVxyXG5cdGlmICghb3B0aW9ucy5lbnRpdGllcykge1xyXG5cdFx0dGhyb3cgbmV3IEVycm9yKCdgb3B0aW9ucy5lbnRpdGllc2AgbXVzdCBiZSBwcm92aWRlZCcpXHJcblx0fVxyXG5cdHJldHVybiBnZXRNb2RlbEFycmF5KG9wdGlvbnMuZW50aXRpZXMpLnNvbWUoZW50aXR5ID0+IGNhblBlcmZvcm1BY3Rpdml0eU9uRW50aXR5KHJlcXVpcmVkQWN0aXZpdHksIHsgZW50aXR5IH0pKVxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIHRydWUgaWYgdXNlciBoYXMgYWN0aXZpdHkgZ2xvYmFsbHlcclxuICpcclxuICogVGhpcyBmdW5jdGlvbiBjYW4gYWNjZXB0IGFuIG51bGwvdW5kZWZpbmVkIHVzZXJJbmZvIHByb3BlcnR5IGZvciB0aGVcclxuICogb3B0aW9ucyBhcmd1bWVudC4gSW4gd2hpY2ggY2FzZSBpdCByZXR1cm5zIGZhbHNlLiBUaGlzIGlzIGJlY2F1c2UgdXNlckluZm9cclxuICogbWF5IG5vdCBiZSBsb2FkZWQgeWV0LiBJZiBpdCBpcyBwcm92aWRlZCBob3dldmVyLCBpdCBtdXN0IGNvbnRhaW4gYW5cclxuICogYWN0aXZpdGllcyBhcnJheVxyXG4gKlxyXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVxdWlyZWRBY3Rpdml0eSBUaGUgYWN0aXZpdHkgcmVxdWlyZWQgdG8gcmV0dXJuIHRydWVcclxuICogQHBhcmFtIHtvYmplY3R9IG9wdGlvbnMgU2VlIGFib3ZlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcclxuXHRpZiAoIXJlcXVpcmVkQWN0aXZpdHkpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignYHJlcXVpcmVkQWN0aXZpdHlgIG11c3QgYmUgcHJvdmlkZWQnKVxyXG5cdH1cclxuXHRpZiAoISFvcHRpb25zLnVzZXJJbmZvICYmICEhb3B0aW9ucy51c2VySW5mby5hY3Rpdml0aWVzICYmICFBcnJheS5pc0FycmF5KG9wdGlvbnMudXNlckluZm8uYWN0aXZpdGllcykpIHtcclxuXHRcdHRocm93IG5ldyBFcnJvcignYG9wdGlvbnMudXNlckluZm8uYWN0aXZpdGllc2AgbXVzdCBiZSBhbiBhcnJheScpXHJcblx0fVxyXG5cdHJldHVybiAhIW9wdGlvbnMudXNlckluZm8gJiYgISFvcHRpb25zLnVzZXJJbmZvLmFjdGl2aXRpZXMgJiYgb3B0aW9ucy51c2VySW5mby5hY3Rpdml0aWVzLmluY2x1ZGVzKHJlcXVpcmVkQWN0aXZpdHkpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBlaXRoZXIgZ2xvYmFsbHkgb3Igb24gYSBzaW5nbGUgZW50aXR5XHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1aXJlZEFjdGl2aXR5IFRoZSBhY3Rpdml0eSByZXF1aXJlZCB0byByZXR1cm4gdHJ1ZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25FbnRpdHkgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+XHJcblx0Y2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucykgfHwgY2FuUGVyZm9ybUFjdGl2aXR5T25FbnRpdHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucylcclxuXHJcbi8qKlxyXG4gKiBSZXR1cm4gdHJ1ZSBpZiB1c2VyIGhhcyBhY3Rpdml0eSBnbG9iYWxseSBvciBvbiBhbnkgb2YgdGhlIGVudGl0aWVzIHByb3ZpZGVkXHJcbiAqXHJcbiAqIEBwYXJhbSB7c3RyaW5nfSByZXF1aXJlZEFjdGl2aXR5IFRoZSBhY3Rpdml0eSByZXF1aXJlZCB0byByZXR1cm4gdHJ1ZVxyXG4gKiBAcGFyYW0ge29iamVjdH0gb3B0aW9ucyBTZWUgYWJvdmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBjYW5QZXJmb3JtQWN0aXZpdHlHbG9iYWxseU9yT25Tb21lRW50aXRpZXMgPSAocmVxdWlyZWRBY3Rpdml0eTogc3RyaW5nLCBvcHRpb25zOiBBY3Rpdml0eU9wdGlvbnMpID0+IHtcclxuXHRyZXR1cm4gKFxyXG5cdFx0Y2FuUGVyZm9ybUFjdGl2aXR5R2xvYmFsbHkocmVxdWlyZWRBY3Rpdml0eSwgb3B0aW9ucykgfHxcclxuXHRcdGNhblBlcmZvcm1BY3Rpdml0eU9uU29tZUVudGl0aWVzKHJlcXVpcmVkQWN0aXZpdHksIG9wdGlvbnMpXHJcblx0KVxyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJuIGFuIG9wdGlvbnMgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgaW4gdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIG1vZHVsZS4gVGhpc1xyXG4gKiBlbmNhcHN1bGF0ZXMgdGhlIGRlZmF1bHQgbG9naWMgb2YgbG9va2luZyBpbiBzdGF0ZSBmb3IgYSBzZXQgb2YgZW50aXRpZXMgb3JcclxuICogbG9va2luZyBpbiBwcm9wcyBmb3IgYSBzaW5nbGUgZW50aXR5LlxyXG4gKlxyXG4gKiBPdmVycmlkZSBvciBkZWNvcmF0ZSB3aXRoIGFwcCBzcGVjaWZpYyBsb2dpYyBpbiB5b3VyIGFwcCBpZiBuZWVkZWQuXHJcbiAqXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZSBUaGUgcmVkdXggc3RhdGVcclxuICogQHBhcmFtIHtPYmplY3R9IFtwcm9wc10gQSBwcm9wcyBvYmplY3QgKHR5cGljYWxseSBvd25Qcm9wcylcclxuICogQHBhcmFtIHtzdHJpbmd9IFttb2RlbHNQcm9wZXJ0eV0gVGhlIHByb3BlcnR5IHVzZWQgdG8gbG9jYXRlIHRoZSBlbnRpdHkgb3IgZW50aXRpZXNcclxuICogbmVlZGVkIGZvciBlbnRpdHktbGV2ZWwgYWN0aXZpdHkgZ3JhbnRzLiBGb3Igc2V0cyBvZiBlbnRpdGllcywgdGhpcyBmdW5jdGlvblxyXG4gKiBsb29rcyBpbiBgc3RhdGUubW9kZWxzYC4gRm9yIGEgc2luZ2xlIGVudGl0eSwgaXQgbG9va3MgaW4gYHByb3BzYFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25zID0gKHN0YXRlOiBCYXNlUmVkdXhTdGF0ZSwgcHJvcHM/OiBhbnksIG1vZGVsc1Byb3BlcnR5Pzogc3RyaW5nKTogQWN0aXZpdHlPcHRpb25zID0+IHtcclxuXHQvLyBpZiBpbXBsZW1lbnRpbmcgaW4gYXBwLCBvdmVycmlkZSAvIGRlY29yYXRlIHdpdGggYXBwIHNwZWNpZmljIGxvZ2ljXHJcblx0cmV0dXJuIHtcclxuXHRcdGVudGl0eTogbW9kZWxzUHJvcGVydHkgPyBwcm9wcyAmJiBwcm9wc1ttb2RlbHNQcm9wZXJ0eV0gOiB1bmRlZmluZWQsXHJcblx0XHRlbnRpdGllczogbW9kZWxzUHJvcGVydHkgPyAoc3RhdGUubW9kZWxzW21vZGVsc1Byb3BlcnR5XSBhcyBNb2RlbENvbGxlY3Rpb24gfCB1bmRlZmluZWQpIDogdW5kZWZpbmVkLFxyXG5cdFx0dXNlckluZm86IHN0YXRlLm1vZGVscy51c2VyICYmIHN0YXRlLm1vZGVscy51c2VyLnVzZXJJbmZvXHJcblx0fVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1DLDBCQUEwQixHQUFHQSxDQUFDQyxnQkFBd0IsRUFBRUMsT0FBd0IsS0FBSztFQUNqRyxJQUFJLENBQUNELGdCQUFnQixFQUFFO0lBQ3RCLE1BQU0sSUFBSUUsS0FBSyxDQUFDLHFDQUFxQyxDQUFDO0VBQ3ZEO0VBQ0EsSUFBSSxDQUFDRCxPQUFPLENBQUNFLE1BQU0sRUFBRTtJQUNwQixNQUFNLElBQUlELEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQztFQUNyRDtFQUNBLE9BQU8sQ0FBQyxDQUFDRCxPQUFPLENBQUNFLE1BQU0sQ0FBQ0MsVUFBVSxFQUFFQyxRQUFRLENBQUNMLGdCQUFnQixDQUFDO0FBQy9ELENB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
|
package/lib/utils/baseRole.js
CHANGED
|
@@ -1,38 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.textForBaseRole = exports.singularArticleForBaseRole = void 0;
|
|
7
|
+
var _baseRole = require("../constants/baseRole");
|
|
8
|
+
const textForBaseRole = role => {
|
|
9
|
+
switch (role) {
|
|
10
|
+
case _baseRole.BASE_ROLE.SUPER_ADMIN:
|
|
11
|
+
return 'Super Admin';
|
|
12
|
+
case _baseRole.BASE_ROLE.ADMIN:
|
|
13
|
+
return 'Admin';
|
|
14
|
+
case _baseRole.BASE_ROLE.CREATOR:
|
|
15
|
+
return 'Creator';
|
|
16
|
+
case _baseRole.BASE_ROLE.GROUP_LEARNER:
|
|
17
|
+
return 'Student';
|
|
18
|
+
case _baseRole.BASE_ROLE.GROUP_OWNER:
|
|
19
|
+
return 'Instructor';
|
|
20
|
+
case _baseRole.BASE_ROLE.GROUP_GRADER:
|
|
21
|
+
return 'Grader';
|
|
22
|
+
default:
|
|
23
|
+
throw new Error(`role '${role}' was not found in switch statement`);
|
|
24
|
+
}
|
|
22
25
|
};
|
|
23
26
|
exports.textForBaseRole = textForBaseRole;
|
|
24
|
-
const singularArticleForBaseRole =
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
27
|
+
const singularArticleForBaseRole = role => {
|
|
28
|
+
switch (role) {
|
|
29
|
+
case _baseRole.BASE_ROLE.ADMIN:
|
|
30
|
+
case _baseRole.BASE_ROLE.GROUP_OWNER:
|
|
31
|
+
return 'an';
|
|
32
|
+
case _baseRole.BASE_ROLE.SUPER_ADMIN:
|
|
33
|
+
case _baseRole.BASE_ROLE.GROUP_LEARNER:
|
|
34
|
+
case _baseRole.BASE_ROLE.GROUP_GRADER:
|
|
35
|
+
case _baseRole.BASE_ROLE.CREATOR:
|
|
36
|
+
return 'a';
|
|
37
|
+
default:
|
|
38
|
+
throw new Error(`role '${role}' was not found in switch statement`);
|
|
39
|
+
}
|
|
37
40
|
};
|
|
38
41
|
exports.singularArticleForBaseRole = singularArticleForBaseRole;
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmFzZVJvbGUiLCJyZXF1aXJlIiwidGV4dEZvckJhc2VSb2xlIiwicm9sZSIsIkJBU0VfUk9MRSIsIlNVUEVSX0FETUlOIiwiQURNSU4iLCJDUkVBVE9SIiwiR1JPVVBfTEVBUk5FUiIsIkdST1VQX09XTkVSIiwiR1JPVVBfR1JBREVSIiwiRXJyb3IiLCJleHBvcnRzIiwic2luZ3VsYXJBcnRpY2xlRm9yQmFzZVJvbGUiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYmFzZVJvbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQkFTRV9ST0xFIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Jhc2VSb2xlJ1xyXG5cclxuZXhwb3J0IGNvbnN0IHRleHRGb3JCYXNlUm9sZSA9IChyb2xlOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xyXG5cdHN3aXRjaCAocm9sZSkge1xyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuU1VQRVJfQURNSU46XHJcblx0XHRcdHJldHVybiAnU3VwZXIgQWRtaW4nXHJcblx0XHRjYXNlIEJBU0VfUk9MRS5BRE1JTjpcclxuXHRcdFx0cmV0dXJuICdBZG1pbidcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkNSRUFUT1I6XHJcblx0XHRcdHJldHVybiAnQ3JlYXRvcidcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX0xFQVJORVI6XHJcblx0XHRcdHJldHVybiAnU3R1ZGVudCdcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX09XTkVSOlxyXG5cdFx0XHRyZXR1cm4gJ0luc3RydWN0b3InXHJcblx0XHRjYXNlIEJBU0VfUk9MRS5HUk9VUF9HUkFERVI6XHJcblx0XHRcdHJldHVybiAnR3JhZGVyJ1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGByb2xlICcke3JvbGV9JyB3YXMgbm90IGZvdW5kIGluIHN3aXRjaCBzdGF0ZW1lbnRgKVxyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHNpbmd1bGFyQXJ0aWNsZUZvckJhc2VSb2xlID0gKHJvbGU6IHN0cmluZyk6IHN0cmluZyA9PiB7XHJcblx0c3dpdGNoIChyb2xlKSB7XHJcblx0XHRjYXNlIEJBU0VfUk9MRS5BRE1JTjpcclxuXHRcdGNhc2UgQkFTRV9ST0xFLkdST1VQX09XTkVSOlxyXG5cdFx0XHRyZXR1cm4gJ2FuJ1xyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuU1VQRVJfQURNSU46XHJcblx0XHRjYXNlIEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSOlxyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuR1JPVVBfR1JBREVSOlxyXG5cdFx0Y2FzZSBCQVNFX1JPTEUuQ1JFQVRPUjpcclxuXHRcdFx0cmV0dXJuICdhJ1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGByb2xlICcke3JvbGV9JyB3YXMgbm90IGZvdW5kIGluIHN3aXRjaCBzdGF0ZW1lbnRgKVxyXG5cdH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVPLE1BQU1DLGVBQWUsR0FBSUMsSUFBWSxJQUFhO0VBQ3hELFFBQVFBLElBQUk7SUFDWCxLQUFLQyxtQkFBUyxDQUFDQyxXQUFXO01BQ3pCLE9BQU8sYUFBYTtJQUNyQixLQUFLRCxtQkFBUyxDQUFDRSxLQUFLO01BQ25CLE9BQU8sT0FBTztJQUNmLEtBQUtGLG1CQUFTLENBQUNHLE9BQU87TUFDckIsT0FBTyxTQUFTO0lBQ2pCLEtBQUtILG1CQUFTLENBQUNJLGFBQWE7TUFDM0IsT0FBTyxTQUFTO0lBQ2pCLEtBQUtKLG1CQUFTLENBQUNLLFdBQVc7TUFDekIsT0FBTyxZQUFZO0lBQ3BCLEtBQUtMLG1CQUFTLENBQUNNLFlBQVk7TUFDMUIsT0FBTyxRQUFRO0lBQ2hCO01BQ0MsTUFBTSxJQUFJQyxLQUFLLENBQUMsU0FBU1IsSUFBSSxxQ0FBcUMsQ0FBQztFQUNyRTtBQUNELENBQUM7QUFBQVMsT0FBQSxDQUFBVixlQUFBLEdBQUFBLGVBQUE7QUFFTSxNQUFNVywwQkFBMEIsR0FBSVYsSUFBWSxJQUFhO0VBQ25FLFFBQVFBLElBQUk7SUFDWCxLQUFLQyxtQkFBUyxDQUFDRSxLQUFLO0lBQ3BCLEtBQUtGLG1CQUFTLENBQUNLLFdBQVc7TUFDekIsT0FBTyxJQUFJO0lBQ1osS0FBS0wsbUJBQVMsQ0FBQ0MsV0FBVztJQUMxQixLQUFLRCxtQkFBUyxDQUFDSSxhQUFhO0lBQzVCLEtBQUtKLG1CQUFTLENBQUNNLFlBQVk7SUFDM0IsS0FBS04sbUJBQVMsQ0FBQ0csT0FBTztNQUNyQixPQUFPLEdBQUc7SUFDWDtNQUNDLE1BQU0sSUFBSUksS0FBSyxDQUFDLFNBQVNSLElBQUkscUNBQXFDLENBQUM7RUFDckU7QUFDRCxDQUFDO0FBQUFTLE9BQUEsQ0FBQUMsMEJBQUEsR0FBQUEsMEJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|