@iushev/react-rbac 1.0.23 → 1.0.26

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.
@@ -8,7 +8,6 @@ export default class RbacCheckAccess extends BaseCheckAccess {
8
8
  protected assignments: Map<string, Map<string, Assignment>>;
9
9
  constructor(options: RbacCheckAccessOptions);
10
10
  checkAccess(username: string, itemName: string, params: RuleParams): Promise<boolean>;
11
- getAssignmentsByUser(username: string): Promise<Map<string, Assignment>>;
12
11
  load(): Promise<void>;
13
12
  private getRbacItems;
14
13
  private getRbacParents;
@@ -1 +1 @@
1
- {"version":3,"file":"RbacCheckAccess.d.ts","sourceRoot":"","sources":["../src/RbacCheckAccess.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,eAAe,EACf,sBAAsB,EAOtB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,oBAAY,sBAAsB,GAAG,sBAAsB,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,eAAe;IAC1D,OAAO,CAAC,aAAa,CAAgB;IAErC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAa;gBAE5D,OAAO,EAAE,sBAAsB;IAsB9B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAQxE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,kBAAkB;CAa3B"}
1
+ {"version":3,"file":"RbacCheckAccess.d.ts","sourceRoot":"","sources":["../src/RbacCheckAccess.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EACV,eAAe,EACf,sBAAsB,EAOtB,UAAU,EACX,MAAM,cAAc,CAAC;AAEtB,oBAAY,sBAAsB,GAAG,sBAAsB,GAAG;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,eAAe;IAC1D,OAAO,CAAC,aAAa,CAAgB;IAErC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAa;gBAE5D,OAAO,EAAE,sBAAsB;IAsB9B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAQrF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -48,15 +48,6 @@ class RbacCheckAccess extends rbac_1.BaseCheckAccess {
48
48
  return _super.checkAccess.call(this, username, itemName, params, (_a = this.assignments.get(username)) !== null && _a !== void 0 ? _a : new Map());
49
49
  });
50
50
  }
51
- getAssignmentsByUser(username) {
52
- var _a;
53
- return __awaiter(this, void 0, void 0, function* () {
54
- if (this.items.size === 0) {
55
- yield this.load();
56
- }
57
- return (_a = this.assignments.get(username)) !== null && _a !== void 0 ? _a : new Map();
58
- });
59
- }
60
51
  load() {
61
52
  var _a;
62
53
  return __awaiter(this, void 0, void 0, function* () {
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
2
  import { RuleParams, Rule, RuleCtor } from "@iushev/rbac";
3
+ import RbacCheckAccess from "./RbacCheckAccess";
3
4
  export declare type RuleParamsFunction = () => RuleParams;
4
5
  export declare type MatchFunction = () => boolean;
5
6
  export declare type CheckAccessOptions = {
@@ -9,6 +10,7 @@ export declare type CheckAccessOptions = {
9
10
  match?: MatchFunction;
10
11
  };
11
12
  export declare type RbacContextProps = {
13
+ rbac: RbacCheckAccess | null;
12
14
  checkAccess: (options: CheckAccessOptions) => Promise<boolean>;
13
15
  };
14
16
  declare const RbacContext: React.Context<RbacContextProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"RbacContext.d.ts","sourceRoot":"","sources":["../src/RbacContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG1D,oBAAY,kBAAkB,GAAG,MAAM,UAAU,CAAC;AAClD,oBAAY,aAAa,GAAG,MAAM,OAAO,CAAC;AAC1C,oBAAY,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE,CAAC;AAEF,QAAA,MAAM,WAAW,iCAEf,CAAC;AAEH,oBAAY,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4EpD,CAAC;AAEF,eAAO,MAAM,YAAY,kCAAuB,CAAC;AAEjD,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"RbacContext.d.ts","sourceRoot":"","sources":["../src/RbacContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgE,MAAM,OAAO,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,oBAAY,kBAAkB,GAAG,MAAM,UAAU,CAAC;AAClD,oBAAY,aAAa,GAAG,MAAM,OAAO,CAAC;AAC1C,oBAAY,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,GAAG,kBAAkB,CAAC;IACzC,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAChE,CAAC;AAEF,QAAA,MAAM,WAAW,iCAGf,CAAC;AAEH,oBAAY,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6EpD,CAAC;AAEF,eAAO,MAAM,YAAY,kCAAuB,CAAC;AAEjD,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -40,6 +40,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
40
40
  const react_1 = __importStar(require("react"));
41
41
  const RbacCheckAccess_1 = __importDefault(require("./RbacCheckAccess"));
42
42
  const RbacContext = react_1.default.createContext({
43
+ rbac: null,
43
44
  checkAccess: (_options) => __awaiter(void 0, void 0, void 0, function* () { return true; }),
44
45
  });
45
46
  const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClasses, children, }) => {
@@ -95,9 +96,10 @@ const RbacProvider = ({ username, rbacUrl, token, isSuperuser, isGuest, ruleClas
95
96
  }), [isSuperuser, matchCustom, matchRole]);
96
97
  const value = (0, react_1.useMemo)(() => {
97
98
  return {
99
+ rbac,
98
100
  checkAccess,
99
101
  };
100
- }, [checkAccess]);
102
+ }, [rbac, checkAccess]);
101
103
  return (0, jsx_runtime_1.jsx)(RbacContext.Provider, Object.assign({ value: value }, { children: children }));
102
104
  };
103
105
  exports.RbacProvider = RbacProvider;
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { default as RbacContext, RbacConsumer, RbacProvider } from "./RbacContext";
1
+ export { default as RbacContext, RbacConsumer, RbacProvider, useRbac } from "./RbacContext";
2
2
  export { default as CheckAccess, CheckAccessProps } from "./CheckAccess";
3
3
  export { default as NoAccess } from "./NoAccess";
4
4
  export { default as useCheckAccess } from "./useCheckAccess";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
package/lib/index.js CHANGED
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useCheckAccess = exports.NoAccess = exports.CheckAccess = exports.RbacProvider = exports.RbacConsumer = exports.RbacContext = void 0;
6
+ exports.useCheckAccess = exports.NoAccess = exports.CheckAccess = exports.useRbac = exports.RbacProvider = exports.RbacConsumer = exports.RbacContext = void 0;
7
7
  var RbacContext_1 = require("./RbacContext");
8
8
  Object.defineProperty(exports, "RbacContext", { enumerable: true, get: function () { return __importDefault(RbacContext_1).default; } });
9
9
  Object.defineProperty(exports, "RbacConsumer", { enumerable: true, get: function () { return RbacContext_1.RbacConsumer; } });
10
10
  Object.defineProperty(exports, "RbacProvider", { enumerable: true, get: function () { return RbacContext_1.RbacProvider; } });
11
+ Object.defineProperty(exports, "useRbac", { enumerable: true, get: function () { return RbacContext_1.useRbac; } });
11
12
  var CheckAccess_1 = require("./CheckAccess");
12
13
  Object.defineProperty(exports, "CheckAccess", { enumerable: true, get: function () { return __importDefault(CheckAccess_1).default; } });
13
14
  var NoAccess_1 = require("./NoAccess");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iushev/react-rbac",
3
- "version": "1.0.23",
3
+ "version": "1.0.26",
4
4
  "private": false,
5
5
  "author": "Ivaylo Ushev",
6
6
  "description": "",
@@ -54,14 +54,6 @@ export default class RbacCheckAccess extends BaseCheckAccess {
54
54
  return super.checkAccess(username, itemName, params, this.assignments.get(username) ?? new Map());
55
55
  }
56
56
 
57
- public async getAssignmentsByUser(username: string): Promise<Map<string, Assignment>> {
58
- if (this.items.size === 0) {
59
- await this.load();
60
- }
61
-
62
- return this.assignments.get(username) ?? new Map();
63
- }
64
-
65
57
  public async load(): Promise<void> {
66
58
  let _rbac: RBACResponse;
67
59
  try {
@@ -13,10 +13,12 @@ export type CheckAccessOptions = {
13
13
  };
14
14
 
15
15
  export type RbacContextProps = {
16
+ rbac: RbacCheckAccess | null;
16
17
  checkAccess: (options: CheckAccessOptions) => Promise<boolean>;
17
18
  };
18
19
 
19
20
  const RbacContext = React.createContext<RbacContextProps>({
21
+ rbac: null,
20
22
  checkAccess: async (_options: CheckAccessOptions) => true,
21
23
  });
22
24
 
@@ -100,9 +102,10 @@ export const RbacProvider: React.FC<RbacProviderProps> = ({
100
102
 
101
103
  const value = useMemo(() => {
102
104
  return {
105
+ rbac,
103
106
  checkAccess,
104
107
  };
105
- }, [checkAccess]);
108
+ }, [rbac, checkAccess]);
106
109
 
107
110
  return <RbacContext.Provider value={value}>{children}</RbacContext.Provider>;
108
111
  };
package/src/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { default as RbacContext, RbacConsumer, RbacProvider } from "./RbacContext";
1
+ export { default as RbacContext, RbacConsumer, RbacProvider, useRbac } from "./RbacContext";
2
2
  export { default as CheckAccess, CheckAccessProps } from "./CheckAccess";
3
3
  export { default as NoAccess } from "./NoAccess";
4
4
  export { default as useCheckAccess } from "./useCheckAccess";