// File: app/(dashboard)/dashboard/can/page.tsx
'use client';
import { useAuthStore } from '@/lib/stores/auth-store';
import { Can } from '@/components/common/can';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { toast } from 'sonner';
export default function CanTestPage() {
const { user } = useAuthStore();
return (
RBAC / Permission Test Page
{/* User Info Card */}
Current User Info
Username:
{user?.username || 'Not logged in'}
Role:
{user?.role || 'None'}
Permissions:
{user?.permissions?.join(', ') || 'No explicit permissions'}
{/* Permission Tests */}
Component Visibility Tests (using <Can />)
1. Admin Role Check
❌ You are NOT an Admin (Hidden)}>
2. 'document:create' Permission
❌ Missing 'document:create' (Hidden)}>
3. 'document:delete' Permission
❌ Missing 'document:delete' (Hidden)}>
{/* Toast Test */}
Toast Notification Test
Tip: You can mock different roles by modifying the user state in local storage or using the `setAuth` method in console.
);
}