academe-kit 0.1.4 → 0.1.5
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/index.css +5 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.esm.js +11 -32
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +11 -32
- package/dist/index.js.map +1 -1
- package/dist/types/components/ProtectedComponent/index.d.ts +2 -1
- package/dist/types/context/SecurityProvider/types.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +10 -1
package/dist/index.js
CHANGED
|
@@ -2265,6 +2265,7 @@ const SecurityContext = React.createContext({
|
|
|
2265
2265
|
}),
|
|
2266
2266
|
signOut: () => null,
|
|
2267
2267
|
goToLogin: () => null,
|
|
2268
|
+
hasSchool: () => false,
|
|
2268
2269
|
hasRealmRole: () => false,
|
|
2269
2270
|
redirectToHub: () => null,
|
|
2270
2271
|
hasClientRole: () => false,
|
|
@@ -2299,12 +2300,16 @@ const SecurityProvider = ({ hubUrl, children, }) => {
|
|
|
2299
2300
|
const isAuthenticated = () => {
|
|
2300
2301
|
return (!!keycloak?.idTokenParsed?.email?.length && !!keycloak?.authenticated);
|
|
2301
2302
|
};
|
|
2303
|
+
const hasSchool = (schoolId) => {
|
|
2304
|
+
return getUser().attributes.school_ids.includes(schoolId);
|
|
2305
|
+
};
|
|
2302
2306
|
return (jsxRuntime.jsx(SecurityContext.Provider, { value: {
|
|
2303
2307
|
isInitialized,
|
|
2304
2308
|
getUser,
|
|
2305
2309
|
signOut,
|
|
2306
2310
|
redirectToHub,
|
|
2307
2311
|
isAuthenticated,
|
|
2312
|
+
hasSchool: hasSchool,
|
|
2308
2313
|
goToLogin: keycloak.login,
|
|
2309
2314
|
hasRealmRole: keycloak?.hasRealmRole,
|
|
2310
2315
|
hasClientRole: keycloak.hasResourceRole,
|
|
@@ -5412,12 +5417,16 @@ const ProtectedApp = ({ children, unauthorizedMessage, requiredClientRoles, }) =
|
|
|
5412
5417
|
return children;
|
|
5413
5418
|
};
|
|
5414
5419
|
|
|
5415
|
-
const ProtectedComponent = ({ children, requiredClientRoles, }) => {
|
|
5416
|
-
const { hasClientRole } = useAcademeAuth();
|
|
5420
|
+
const ProtectedComponent = ({ children, requiredRealmRoles, requiredClientRoles, }) => {
|
|
5421
|
+
const { hasClientRole, hasRealmRole } = useAcademeAuth();
|
|
5417
5422
|
if (requiredClientRoles &&
|
|
5418
5423
|
!requiredClientRoles?.some((role) => hasClientRole(role))) {
|
|
5419
5424
|
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
5420
5425
|
}
|
|
5426
|
+
if (requiredRealmRoles &&
|
|
5427
|
+
!requiredRealmRoles?.some((role) => hasRealmRole(role))) {
|
|
5428
|
+
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
5429
|
+
}
|
|
5421
5430
|
return children;
|
|
5422
5431
|
};
|
|
5423
5432
|
|
|
@@ -5430,36 +5439,6 @@ const ProtectedRouter = ({ children, requiredClientRoles, unauthorizedMessage, }
|
|
|
5430
5439
|
return children;
|
|
5431
5440
|
};
|
|
5432
5441
|
|
|
5433
|
-
function styleInject(css, ref) {
|
|
5434
|
-
if ( ref === void 0 ) ref = {};
|
|
5435
|
-
var insertAt = ref.insertAt;
|
|
5436
|
-
|
|
5437
|
-
if (typeof document === 'undefined') { return; }
|
|
5438
|
-
|
|
5439
|
-
var head = document.head || document.getElementsByTagName('head')[0];
|
|
5440
|
-
var style = document.createElement('style');
|
|
5441
|
-
style.type = 'text/css';
|
|
5442
|
-
|
|
5443
|
-
if (insertAt === 'top') {
|
|
5444
|
-
if (head.firstChild) {
|
|
5445
|
-
head.insertBefore(style, head.firstChild);
|
|
5446
|
-
} else {
|
|
5447
|
-
head.appendChild(style);
|
|
5448
|
-
}
|
|
5449
|
-
} else {
|
|
5450
|
-
head.appendChild(style);
|
|
5451
|
-
}
|
|
5452
|
-
|
|
5453
|
-
if (style.styleSheet) {
|
|
5454
|
-
style.styleSheet.cssText = css;
|
|
5455
|
-
} else {
|
|
5456
|
-
style.appendChild(document.createTextNode(css));
|
|
5457
|
-
}
|
|
5458
|
-
}
|
|
5459
|
-
|
|
5460
|
-
var css_248z = "*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\"\"}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.flex{display:flex}.size-10{height:2.5rem;width:2.5rem}.size-4{height:1rem;width:1rem}.h-screen{height:100vh}.w-screen{width:100vw}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.items-center{align-items:center}.justify-center{justify-content:center}.rounded-lg{border-radius:var(--radius)}.border-2{border-width:2px}.border-blue-600{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-semibold{font-weight:600}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-violet-500{--tw-text-opacity:1;color:rgb(139 92 246/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.outline{outline-style:solid}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-200{animation-duration:.2s}.hover\\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\\:ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px}";
|
|
5461
|
-
styleInject(css_248z,{"insertAt":"top"});
|
|
5462
|
-
|
|
5463
5442
|
exports.AcademeAuthProvider = AcademeAuthProvider;
|
|
5464
5443
|
exports.Button = Button;
|
|
5465
5444
|
exports.ProtectedApp = ProtectedApp;
|