// 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.
); }