patch_sync.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. $content = file_get_contents('app/Console/Commands/SyncAndreiaPermissions.php');
  3. $replacement = <<<'REPLACE'
  4. if ($templateRoles->isEmpty()) {
  5. $this->error("A unidade da Andreia não possui perfis customizados para replicar.");
  6. return;
  7. }
  8. // NOVIDADE: Exporta a configuração para um arquivo fixo no código!
  9. $configArray = [];
  10. foreach ($templateRoles as $templateRole) {
  11. $perms = [];
  12. foreach ($templateRole->permissions as $p) {
  13. $perms[] = [
  14. 'permission_id' => $p->permission_id,
  15. 'bits' => $p->bits,
  16. ];
  17. }
  18. $configArray[] = [
  19. 'label' => $templateRole->label,
  20. 'system_key' => $templateRole->system_key,
  21. 'slug_prefix' => \Illuminate\Support\Str::slug($templateRole->label),
  22. 'permissions' => $perms,
  23. ];
  24. }
  25. $configContent = "<?php\n\nreturn " . var_export($configArray, true) . ";\n";
  26. file_put_contents(config_path('default_franchisee_roles.php'), $configContent);
  27. $this->info("Arquivo de configuração config/default_franchisee_roles.php gerado com sucesso! Isso garante o funcionamento em Produção.");
  28. $this->info("Encontrados {$templateRoles->count()} perfis na unidade da Andreia. Replicando para todas as outras unidades...");
  29. REPLACE;
  30. $content = str_replace(
  31. 'if ($templateRoles->isEmpty()) {
  32. $this->error("A unidade da Andreia não possui perfis customizados para replicar.");
  33. return;
  34. }
  35. $this->info("Encontrados {$templateRoles->count()} perfis na unidade da Andreia. Replicando para todas as outras unidades...");',
  36. $replacement,
  37. $content
  38. );
  39. file_put_contents('app/Console/Commands/SyncAndreiaPermissions.php', $content);