@@ -97,7 +81,7 @@ export default function AdminSystemLog() {
);
}
- if (!user || !isModerator()) {
+ if (!isAuthorized) {
return null;
}
diff --git a/src/pages/AdminUsers.tsx b/src/pages/AdminUsers.tsx
index 4b27392d..2d96460d 100644
--- a/src/pages/AdminUsers.tsx
+++ b/src/pages/AdminUsers.tsx
@@ -1,8 +1,4 @@
-import { useEffect } from 'react';
-import { useNavigate } from 'react-router-dom';
-import { useUserRole } from '@/hooks/useUserRole';
-import { useAuth } from '@/hooks/useAuth';
-import { useRequireMFA } from '@/hooks/useRequireMFA';
+import { useAdminGuard } from '@/hooks/useAdminGuard';
import { MFARequiredAlert } from '@/components/auth/MFARequiredAlert';
import { AdminLayout } from '@/components/layout/AdminLayout';
import { UserManagement } from '@/components/admin/UserManagement';
@@ -10,26 +6,9 @@ import { Skeleton } from '@/components/ui/skeleton';
import { Card, CardContent } from '@/components/ui/card';
export default function AdminUsers() {
- const { user, loading: authLoading } = useAuth();
- const { isModerator, loading: roleLoading } = useUserRole();
- const { needsEnrollment, loading: mfaLoading } = useRequireMFA();
- const navigate = useNavigate();
+ const { isLoading, isAuthorized, needsMFA } = useAdminGuard();
- useEffect(() => {
- if (!authLoading && !roleLoading) {
- if (!user) {
- navigate('/auth');
- return;
- }
-
- if (!isModerator()) {
- navigate('/');
- return;
- }
- }
- }, [user, authLoading, roleLoading, navigate, isModerator]);
-
- if (authLoading || roleLoading || mfaLoading) {
+ if (isLoading) {
return (
@@ -59,12 +38,11 @@ export default function AdminUsers() {
);
}
- if (!user || !isModerator()) {
+ if (!isAuthorized) {
return null;
}
- // MFA enforcement
- if (needsEnrollment) {
+ if (needsMFA) {
return (