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/domains/lavocat.quebec/private_html/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/lavocat.quebec/private_html/scripts/setup-permissions.ts
import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

async function setupPermissions() {
  console.log('🔧 Setting up permissions for all roles...');

  // Define all permissions needed
  const permissions = [
    // Case management permissions
    { role: 'SUPERADMIN', resource: 'cases', action: 'read' },
    { role: 'SUPERADMIN', resource: 'cases', action: 'write' },
    { role: 'SUPERADMIN', resource: 'cases', action: 'delete' },
    { role: 'ADMIN', resource: 'cases', action: 'read' },
    { role: 'ADMIN', resource: 'cases', action: 'write' },
    { role: 'ADMIN', resource: 'cases', action: 'delete' },
    { role: 'LAWYER', resource: 'cases', action: 'read' },
    { role: 'LAWYER', resource: 'cases', action: 'write' },
    { role: 'SECRETARY', resource: 'cases', action: 'read' },
    { role: 'CLERK', resource: 'cases', action: 'read' },
    { role: 'ASSISTANT', resource: 'cases', action: 'read' },

    // User management permissions
    { role: 'SUPERADMIN', resource: 'users', action: 'read' },
    { role: 'SUPERADMIN', resource: 'users', action: 'write' },
    { role: 'SUPERADMIN', resource: 'users', action: 'delete' },
    { role: 'ADMIN', resource: 'users', action: 'read' },
    { role: 'ADMIN', resource: 'users', action: 'write' },

    // Document permissions
    { role: 'SUPERADMIN', resource: 'documents', action: 'read' },
    { role: 'SUPERADMIN', resource: 'documents', action: 'write' },
    { role: 'SUPERADMIN', resource: 'documents', action: 'delete' },
    { role: 'ADMIN', resource: 'documents', action: 'read' },
    { role: 'ADMIN', resource: 'documents', action: 'write' },
    { role: 'ADMIN', resource: 'documents', action: 'delete' },
    { role: 'LAWYER', resource: 'documents', action: 'read' },
    { role: 'LAWYER', resource: 'documents', action: 'write' },
    { role: 'SECRETARY', resource: 'documents', action: 'read' },
    { role: 'SECRETARY', resource: 'documents', action: 'write' },
    { role: 'CLERK', resource: 'documents', action: 'read' },
    { role: 'ASSISTANT', resource: 'documents', action: 'read' },

    // Analytics permissions
    { role: 'SUPERADMIN', resource: 'analytics', action: 'read' },
    { role: 'ADMIN', resource: 'analytics', action: 'read' },

    // Newsletter permissions
    { role: 'SUPERADMIN', resource: 'newsletter', action: 'read' },
    { role: 'SUPERADMIN', resource: 'newsletter', action: 'write' },
    { role: 'ADMIN', resource: 'newsletter', action: 'read' },
    { role: 'ADMIN', resource: 'newsletter', action: 'write' },

    // Impersonation permissions
    { role: 'SUPERADMIN', resource: 'impersonation', action: 'write' },

    // System administration
    { role: 'SUPERADMIN', resource: 'system', action: 'read' },
    { role: 'SUPERADMIN', resource: 'system', action: 'write' },
  ];

  try {
    console.log(`📝 Creating ${permissions.length} permissions...`);

    for (const perm of permissions) {
      await prisma.permission.upsert({
        where: {
          role_resource_action: {
            role: perm.role,
            resource: perm.resource,
            action: perm.action
          }
        },
        update: {},
        create: {
          role: perm.role,
          resource: perm.resource,
          action: perm.action,
          conditions: null
        }
      });
    }

    console.log('✅ Permissions setup completed successfully!');

    // Verify SUPERADMIN permissions
    const superAdminPerms = await prisma.permission.findMany({
      where: { role: { in: ['SUPERADMIN', 'SUPERADMIN'] } }
    });

    console.log(`🔍 SUPERADMIN has ${superAdminPerms.length} permissions:`);
    superAdminPerms.forEach(perm => {
      console.log(`  - ${perm.resource}:${perm.action}`);
    });

  } catch (error) {
    console.error('❌ Error setting up permissions:', error);
  } finally {
    await prisma.$disconnect();
  }
}

setupPermissions(); 

CasperSecurity Mini