@redhat-cloud-services/frontend-components 3.9.8 → 3.9.9

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.
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ export interface RBACProviderProps {
3
+ appName: string;
4
+ }
5
+ export declare const RBACProvider: React.FunctionComponent<RBACProviderProps>;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
33
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
34
+ return new (P || (P = Promise))(function (resolve, reject) {
35
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
36
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
37
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
38
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
39
+ });
40
+ };
41
+ var __generator = (this && this.__generator) || function (thisArg, body) {
42
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
43
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
44
+ function verb(n) { return function (v) { return step([n, v]); }; }
45
+ function step(op) {
46
+ if (f) throw new TypeError("Generator is already executing.");
47
+ while (_) try {
48
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
49
+ if (y = 0, t) op = [op[0] & 2, t.value];
50
+ switch (op[0]) {
51
+ case 0: case 1: t = op; break;
52
+ case 4: _.label++; return { value: op[1], done: false };
53
+ case 5: _.label++; y = op[1]; op = [0]; continue;
54
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
55
+ default:
56
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
57
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
58
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
59
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
60
+ if (t[2]) _.ops.pop();
61
+ _.trys.pop(); continue;
62
+ }
63
+ op = body.call(thisArg, _);
64
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
65
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
66
+ }
67
+ };
68
+ Object.defineProperty(exports, "__esModule", { value: true });
69
+ exports.RBACProvider = void 0;
70
+ var react_1 = __importStar(require("react"));
71
+ var react_core_1 = require("@patternfly/react-core");
72
+ var RBAC_1 = require("@redhat-cloud-services/frontend-components-utilities/RBAC");
73
+ var hasAccessWithUserPermissions = function (userPermissions) {
74
+ return function (requiredPermissions, checkAll) {
75
+ if (checkAll === void 0) { checkAll = true; }
76
+ return checkAll ? (0, RBAC_1.hasAllPermissions)(userPermissions, requiredPermissions) : (0, RBAC_1.doesHavePermissions)(userPermissions, requiredPermissions);
77
+ };
78
+ };
79
+ var RBACProvider = function (_a) {
80
+ var appName = _a.appName, children = _a.children;
81
+ var _b = (0, react_1.useState)(RBAC_1.initialPermissions), permissionState = _b[0], setPermissionState = _b[1];
82
+ var fetchPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
83
+ var _a, isOrgAdmin, userPermissions;
84
+ return __generator(this, function (_b) {
85
+ switch (_b.label) {
86
+ case 0: return [4, (0, RBAC_1.getRBAC)(appName, true)];
87
+ case 1:
88
+ _a = _b.sent(), isOrgAdmin = _a.isOrgAdmin, userPermissions = _a.permissions;
89
+ setPermissionState(function (currentPerms) { return (__assign(__assign({}, currentPerms), { isLoading: false, isOrgAdmin: isOrgAdmin, permissions: userPermissions })); });
90
+ return [2];
91
+ }
92
+ });
93
+ }); };
94
+ (0, react_1.useEffect)(function () {
95
+ if (appName) {
96
+ fetchPermissions();
97
+ }
98
+ }, [appName]);
99
+ return (react_1.default.createElement(RBAC_1.RBACContext.Provider, { value: __assign(__assign({}, permissionState), { hasAccess: hasAccessWithUserPermissions((permissionState === null || permissionState === void 0 ? void 0 : permissionState.permissions) || []) }) }, !permissionState.isLoading ? (children) : (react_1.default.createElement(react_core_1.Bullseye, null,
100
+ react_1.default.createElement(react_core_1.Spinner, { size: "xl" })))));
101
+ };
102
+ exports.RBACProvider = RBACProvider;
103
+ //# sourceMappingURL=RBACProvider.js.map
@@ -0,0 +1 @@
1
+ export * from './RBACProvider';
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./RBACProvider"), exports);
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"main":"index.js","module":"../esm/RBACProvider/index.js","typings":"index.d.ts"}
@@ -0,0 +1,80 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
23
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (_) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import React, { useEffect, useState } from 'react';
49
+ import { Bullseye, Spinner } from '@patternfly/react-core';
50
+ import { RBACContext, doesHavePermissions, getRBAC, hasAllPermissions, initialPermissions, } from '@redhat-cloud-services/frontend-components-utilities/RBAC';
51
+ var hasAccessWithUserPermissions = function (userPermissions) {
52
+ return function (requiredPermissions, checkAll) {
53
+ if (checkAll === void 0) { checkAll = true; }
54
+ return checkAll ? hasAllPermissions(userPermissions, requiredPermissions) : doesHavePermissions(userPermissions, requiredPermissions);
55
+ };
56
+ };
57
+ export var RBACProvider = function (_a) {
58
+ var appName = _a.appName, children = _a.children;
59
+ var _b = useState(initialPermissions), permissionState = _b[0], setPermissionState = _b[1];
60
+ var fetchPermissions = function () { return __awaiter(void 0, void 0, void 0, function () {
61
+ var _a, isOrgAdmin, userPermissions;
62
+ return __generator(this, function (_b) {
63
+ switch (_b.label) {
64
+ case 0: return [4, getRBAC(appName, true)];
65
+ case 1:
66
+ _a = _b.sent(), isOrgAdmin = _a.isOrgAdmin, userPermissions = _a.permissions;
67
+ setPermissionState(function (currentPerms) { return (__assign(__assign({}, currentPerms), { isLoading: false, isOrgAdmin: isOrgAdmin, permissions: userPermissions })); });
68
+ return [2];
69
+ }
70
+ });
71
+ }); };
72
+ useEffect(function () {
73
+ if (appName) {
74
+ fetchPermissions();
75
+ }
76
+ }, [appName]);
77
+ return (React.createElement(RBACContext.Provider, { value: __assign(__assign({}, permissionState), { hasAccess: hasAccessWithUserPermissions((permissionState === null || permissionState === void 0 ? void 0 : permissionState.permissions) || []) }) }, !permissionState.isLoading ? (children) : (React.createElement(Bullseye, null,
78
+ React.createElement(Spinner, { size: "xl" })))));
79
+ };
80
+ //# sourceMappingURL=RBACProvider.js.map
@@ -0,0 +1,2 @@
1
+ export * from './RBACProvider';
2
+ //# sourceMappingURL=index.js.map
package/esm/index.js CHANGED
@@ -38,4 +38,5 @@ export * from './FilterHooks';
38
38
  export * from './AsyncComponent';
39
39
  export * from './Ouia';
40
40
  export * from './ErrorBoundary';
41
+ export * from './RBACProvider';
41
42
  //# sourceMappingURL=index.js.map
package/index.d.ts CHANGED
@@ -38,3 +38,4 @@ export * from './FilterHooks';
38
38
  export * from './AsyncComponent';
39
39
  export * from './Ouia';
40
40
  export * from './ErrorBoundary';
41
+ export * from './RBACProvider';
package/index.js CHANGED
@@ -50,4 +50,5 @@ __exportStar(require("./FilterHooks"), exports);
50
50
  __exportStar(require("./AsyncComponent"), exports);
51
51
  __exportStar(require("./Ouia"), exports);
52
52
  __exportStar(require("./ErrorBoundary"), exports);
53
+ __exportStar(require("./RBACProvider"), exports);
53
54
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redhat-cloud-services/frontend-components",
3
- "version": "3.9.8",
3
+ "version": "3.9.9",
4
4
  "description": "Common components for RedHat Cloud Services project.",
5
5
  "main": "index.js",
6
6
  "module": "esm/index.js",