@cedarjs/auth 8.0.0-canary.3539 → 8.0.0-canary.3541
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/AuthContext.d.ts +19 -0
- package/dist/AuthContext.d.ts.map +1 -1
- package/dist/AuthProvider/AuthProvider.d.ts.map +1 -1
- package/dist/AuthProvider/AuthProvider.js +2 -0
- package/dist/HasPermissionContext.d.ts +11 -0
- package/dist/HasPermissionContext.d.ts.map +1 -0
- package/dist/HasPermissionContext.js +5 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/useAuth.d.ts.map +1 -1
- package/dist/useAuth.js +9 -2
- package/package.json +2 -2
package/dist/AuthContext.d.ts
CHANGED
|
@@ -17,6 +17,19 @@ export interface LoggedInUser {
|
|
|
17
17
|
* logged in
|
|
18
18
|
*/
|
|
19
19
|
export type CurrentUser = (LoggedInUser & object) | null;
|
|
20
|
+
/**
|
|
21
|
+
* The app's permission names, as keys. Cedar generates them from the app's
|
|
22
|
+
* permission definitions (`packages/permissions`, set up by
|
|
23
|
+
* `cedar setup tenancy`). Empty when the app has none, and then
|
|
24
|
+
* `hasPermission` takes nothing: it could only ever answer `false`.
|
|
25
|
+
*/
|
|
26
|
+
export interface AvailablePermissions {
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A permission name `hasPermission` takes: see `AvailablePermissions`.
|
|
30
|
+
* `never` in an app without permissions, so calling it is a type error.
|
|
31
|
+
*/
|
|
32
|
+
export type PermissionName = [keyof AvailablePermissions] extends [never] ? never : Extract<keyof AvailablePermissions, string>;
|
|
20
33
|
/**
|
|
21
34
|
* Whether the app has tenancy (`cedar setup tenancy`). This is a
|
|
22
35
|
* declaration-merging target: `cedar generate types` writes
|
|
@@ -97,6 +110,12 @@ export interface AuthContextInterface<TUser, TLogInOptions, TLogIn, TLogOutOptio
|
|
|
97
110
|
* but does not update the current user state.
|
|
98
111
|
*/
|
|
99
112
|
getCurrentUser(): Promise<CurrentUser>;
|
|
113
|
+
/**
|
|
114
|
+
* Whether the user has `permission` where they are in the app. Always
|
|
115
|
+
* `false` outside a scope that provides permissions, such as `OrgScope`
|
|
116
|
+
* from `@cedarjs/tenancy/web`.
|
|
117
|
+
*/
|
|
118
|
+
hasPermission(permission: PermissionName): boolean;
|
|
100
119
|
/**
|
|
101
120
|
* Redetermine authentication state and update the state.
|
|
102
121
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../src/AuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;GAGG;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;AAExD;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;CAAG;AAE/B;;;;GAIG;AACH,KAAK,SAAS,GAAG,WAAW,SAAS;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAClD;IACE;;;;OAIG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CACtD,GACD;IACE;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CAClD,CAAA;AAEL;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;4BAA7B,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;gCAA7B,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;EAGpD;AAED,MAAM,WAAW,oBAAoB,CACnC,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,CACzB,SAAQ,SAAS;IACjB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;IACxB,iFAAiF;IACjF,WAAW,EAAE,WAAW,CAAA;IACxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,EAAE,IAAI,GAAG,KAAK,CAAA;IAC1B,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAA;IAClC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACtC;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1D,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACvE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC3E;;;;OAIG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1E;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,oQAqB1B"}
|
|
1
|
+
{"version":3,"file":"AuthContext.d.ts","sourceRoot":"","sources":["../src/AuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,YAAY;CAAG;AAEhC;;;GAGG;AAGH,MAAM,MAAM,WAAW,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,IAAI,CAAA;AAExD;;;;;GAKG;AAEH,MAAM,WAAW,oBAAoB;CAAG;AAExC;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,MAAM,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,GACrE,KAAK,GACL,OAAO,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,CAAA;AAE/C;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;CAAG;AAE/B;;;;GAIG;AACH,KAAK,SAAS,GAAG,WAAW,SAAS;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAClD;IACE;;;;OAIG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CACtD,GACD;IACE;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAA;CAClD,CAAA;AAEL;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;4BAA7B,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;gCAA7B,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO;EAGpD;AAED,MAAM,WAAW,oBAAoB,CACnC,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,CACzB,SAAQ,SAAS;IACjB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,OAAO,CAAA;IACxB,iFAAiF;IACjF,WAAW,EAAE,WAAW,CAAA;IACxB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,EAAE,IAAI,GAAG,KAAK,CAAA;IAC1B,KAAK,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC/C,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAClD;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,CAAA;IAClC;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IACtC;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAA;IAClD;;OAEG;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1D,aAAa,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;IACvE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAC3E;;;;OAIG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IAC1E;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,oQAqB1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/AuthProvider/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAiBlE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB;
|
|
1
|
+
{"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../src/AuthProvider/AuthProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAA0C,MAAM,OAAO,CAAA;AAG9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAiBlE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAKD,wBAAgB,kBAAkB,CAChC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,EAEzB,WAAW,EAAE,KAAK,CAAC,OAAO,CACtB,oBAAoB,CAClB,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,GACD,SAAS,CACZ,EACD,kBAAkB,EAAE,kBAAkB,CACpC,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,EACD,mBAAmB,CAAC,EAAE;IACpB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3C,UAAU,CAAC,EAAE,CACX,WAAW,EAAE,WAAW,KACrB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,OAAO,CAAA;CAClD,kBAEmC,iBAAiB,uBA+FtD"}
|
|
@@ -13,6 +13,7 @@ import { useResetPassword } from "./useResetPassword.js";
|
|
|
13
13
|
import { useSignUp } from "./useSignUp.js";
|
|
14
14
|
import { useToken } from "./useToken.js";
|
|
15
15
|
import { useValidateResetToken } from "./useValidateResetToken.js";
|
|
16
|
+
const noPermissions = () => false;
|
|
16
17
|
function createAuthProvider(AuthContext, authImplementation, customProviderHooks) {
|
|
17
18
|
const AuthProvider = ({ children }) => {
|
|
18
19
|
const serverAuthState = useContext(ServerAuthContext);
|
|
@@ -68,6 +69,7 @@ function createAuthProvider(AuthContext, authImplementation, customProviderHooks
|
|
|
68
69
|
getToken,
|
|
69
70
|
getCurrentUser,
|
|
70
71
|
...roleChecks(hasRole),
|
|
72
|
+
hasPermission: noPermissions,
|
|
71
73
|
reauthenticate,
|
|
72
74
|
forgotPassword,
|
|
73
75
|
resetPassword,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Provides `useAuth().hasPermission` for the components below it. Unset,
|
|
4
|
+
* `hasPermission` is always `false`: permissions belong to a scope, such as
|
|
5
|
+
* an organization, and there is none here.
|
|
6
|
+
*
|
|
7
|
+
* `OrgScope` from `@cedarjs/tenancy/web` provides it, so inside an
|
|
8
|
+
* organization `hasPermission` checks the user's membership there.
|
|
9
|
+
*/
|
|
10
|
+
export declare const HasPermissionContext: React.Context<((permission: string) => boolean) | undefined>;
|
|
11
|
+
//# sourceMappingURL=HasPermissionContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HasPermissionContext.d.ts","sourceRoot":"","sources":["../src/HasPermissionContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,8BACjB,MAAM,KAAK,OAAO,cACtB,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export type { AuthContextInterface, AuthTenancy, CurrentUser, LoggedInUser, } from './AuthContext.js';
|
|
1
|
+
export type { AuthContextInterface, AuthTenancy, AvailablePermissions, CurrentUser, LoggedInUser, PermissionName, } from './AuthContext.js';
|
|
2
2
|
export type { AuthProviderProps } from './AuthProvider/AuthProvider.js';
|
|
3
|
+
export { HasPermissionContext } from './HasPermissionContext.js';
|
|
3
4
|
export { useNoAuth } from './useAuth.js';
|
|
4
5
|
export type { UseAuth } from './useAuth.js';
|
|
5
6
|
export { createAuthentication } from './authFactory.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qCAAqC,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HasPermissionContext } from "./HasPermissionContext.js";
|
|
1
2
|
import { useNoAuth } from "./useAuth.js";
|
|
2
3
|
import { createAuthentication } from "./authFactory.js";
|
|
3
4
|
import {
|
|
@@ -6,6 +7,7 @@ import {
|
|
|
6
7
|
} from "./AuthProvider/AuthProviderState.js";
|
|
7
8
|
import { getCurrentUserFromMiddleware } from "./getCurrentUserFromMiddleware.js";
|
|
8
9
|
export {
|
|
10
|
+
HasPermissionContext,
|
|
9
11
|
createAuthentication,
|
|
10
12
|
getCurrentUserFromMiddleware,
|
|
11
13
|
middlewareDefaultAuthProviderState,
|
package/dist/useAuth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../src/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../src/useAuth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAG5D,wBAAgB,aAAa,CAC3B,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,GAAG,OAAO,EAChC,eAAe,GAAG,OAAO,EAEzB,WAAW,EAAE,KAAK,CAAC,OAAO,CACtB,oBAAoB,CAClB,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,GACD,SAAS,CACZ,SAEmB,oBAAoB,CACtC,KAAK,EACL,aAAa,EACb,MAAM,EACN,cAAc,EACd,OAAO,EACP,cAAc,EACd,OAAO,EACP,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,sBAAsB,EACtB,eAAe,CAChB,CAiBF;AAED,wBAAgB,SAAS,IAAI,oBAAoB,CAC/C,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,IAAI,CACL,CAsBA;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAC9C,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR,CAAA"}
|
package/dist/useAuth.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { roleChecks } from "./AuthContext.js";
|
|
3
|
+
import { HasPermissionContext } from "./HasPermissionContext.js";
|
|
3
4
|
function createUseAuth(AuthContext) {
|
|
4
5
|
const useAuth = () => {
|
|
5
6
|
const context = React.useContext(AuthContext);
|
|
6
|
-
|
|
7
|
+
const hasPermission = React.useContext(HasPermissionContext);
|
|
8
|
+
const scoped = React.useMemo(
|
|
9
|
+
() => context && hasPermission ? { ...context, hasPermission } : context,
|
|
10
|
+
[context, hasPermission]
|
|
11
|
+
);
|
|
12
|
+
if (!scoped) {
|
|
7
13
|
throw new Error("useAuth must be used within an AuthProvider");
|
|
8
14
|
}
|
|
9
|
-
return
|
|
15
|
+
return scoped;
|
|
10
16
|
};
|
|
11
17
|
return useAuth;
|
|
12
18
|
}
|
|
@@ -25,6 +31,7 @@ function useNoAuth() {
|
|
|
25
31
|
getToken: async () => null,
|
|
26
32
|
getCurrentUser: async () => null,
|
|
27
33
|
...roleChecks(() => false),
|
|
34
|
+
hasPermission: () => false,
|
|
28
35
|
reauthenticate: async () => {
|
|
29
36
|
},
|
|
30
37
|
forgotPassword: async () => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cedarjs/auth",
|
|
3
|
-
"version": "8.0.0-canary.
|
|
3
|
+
"version": "8.0.0-canary.3541",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cedarjs/cedar.git",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@arethetypeswrong/cli": "0.18.5",
|
|
58
|
-
"@cedarjs/framework-tools": "8.0.0-canary.
|
|
58
|
+
"@cedarjs/framework-tools": "8.0.0-canary.3541",
|
|
59
59
|
"@testing-library/dom": "10.4.2",
|
|
60
60
|
"@testing-library/jest-dom": "6.9.1",
|
|
61
61
|
"@testing-library/react": "16.3.3",
|