summaryrefslogtreecommitdiff
path: root/react/08-auth-with-context/src/components/RoleGuard.jsx
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-07-02 20:17:44 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-07-02 20:17:44 +0530
commitb221a83ecef1dd7f9583d5107017d24e668205a6 (patch)
treef519d4a08e6fde2d175b2a16b6d71e90890666d2 /react/08-auth-with-context/src/components/RoleGuard.jsx
parent48f6e61f90e5a8465a9cee8b501d990c89d79c33 (diff)
Added React global state + role based security sample app
Diffstat (limited to 'react/08-auth-with-context/src/components/RoleGuard.jsx')
-rw-r--r--react/08-auth-with-context/src/components/RoleGuard.jsx15
1 files changed, 15 insertions, 0 deletions
diff --git a/react/08-auth-with-context/src/components/RoleGuard.jsx b/react/08-auth-with-context/src/components/RoleGuard.jsx
new file mode 100644
index 0000000..5585908
--- /dev/null
+++ b/react/08-auth-with-context/src/components/RoleGuard.jsx
@@ -0,0 +1,15 @@
+import { useAuth } from '../contexts/AuthContext';
+
+const RoleGuard = ({ allowedRoles, children }) => {
+ const { isInRoles } = useAuth();
+
+ // If at least one of the user's role is in the allowed list, show the content
+ if (isInRoles(allowedRoles)) {
+ return <>{children}</>;
+ }
+
+ // Otherwise, hide the content
+ return null;
+};
+
+export default RoleGuard; \ No newline at end of file