T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/backups/lavocat.quebec/backup-20250730-021618/scripts/check-roles.ts
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function checkRoles() {
  try {
    console.log('šŸ” Checking database roles...\n');

    // Get all unique roles in the database
    const users = await prisma.user.findMany({
      select: {
        id: true,
        email: true,
        name: true,
        role: true,
        createdAt: true
      },
      orderBy: {
        createdAt: 'desc'
      }
    });

    console.log('šŸ“Š All users and their roles:');
    console.log('='.repeat(80));
    
    users.forEach((user, index) => {
      console.log(`${index + 1}. ${user.email} (${user.name || 'No name'})`);
      console.log(`   Role: "${user.role}" (type: ${typeof user.role})`);
      console.log(`   ID: ${user.id}`);
      console.log(`   Created: ${user.createdAt.toISOString()}`);
      console.log('');
    });

    // Get unique roles
    const uniqueRoles = Array.from(new Set(users.map(user => user.role)));
    console.log('šŸŽ­ Unique roles found in database:');
    console.log('='.repeat(40));
    uniqueRoles.forEach(role => {
      const count = users.filter(user => user.role === role).length;
      console.log(`"${role}": ${count} users`);
    });

    console.log('\nšŸ”§ Expected roles from auth-utils:');
    console.log('='.repeat(40));
    const expectedRoles = [
      'SUPERADMIN', 'ADMIN', 'LAWYER', 'JURIST', 'JUDGE', 
      'MEDIATOR', 'LEGAL_CONSULTANT', 'INVESTIGATOR', 
      'EXPERT_WITNESS', 'NOTARY', 'USER', 'CLIENT', 
      'LAW_STUDENT', 'LEGAL_INTERN', 'SECRETARY', 
      'ASSISTANT', 'CLERK', 'COURT_CLERK', 'PARALEGAL'
    ];
    
    expectedRoles.forEach(role => {
      const count = users.filter(user => user.role === role).length;
      console.log(`"${role}": ${count} users`);
    });

    // Check for any mismatched roles
    const mismatchedRoles = uniqueRoles.filter(role => !expectedRoles.includes(role));
    if (mismatchedRoles.length > 0) {
      console.log('\nāš ļø  WARNING: Found roles not in expected list:');
      console.log('='.repeat(50));
      mismatchedRoles.forEach(role => {
        console.log(`"${role}"`);
      });
    }

  } catch (error) {
    console.error('āŒ Error checking roles:', error);
  } finally {
    await prisma.$disconnect();
  }
}

checkRoles(); 

CasperSecurity Mini