feat: actualiza controladores y solicitudes para unificar permisos y agrega método de desencriptación en SettingsController
This commit is contained in:
parent
ad6b19e9dd
commit
4c417be38c
@ -21,12 +21,12 @@ class ModuleController extends Controller implements HasMiddleware
|
||||
public static function middleware(): array
|
||||
{
|
||||
return [
|
||||
self::can('modules.index', ['index']),
|
||||
self::can('modules.show', ['show']),
|
||||
self::can('modules.destroy', ['destroy']),
|
||||
self::can('modules.toggle_status', ['toggleStatus']),
|
||||
self::can('module.index', ['index']),
|
||||
self::can('module.show', ['show']),
|
||||
self::can('module.destroy', ['destroy']),
|
||||
self::can('module.toggle_status', ['toggleStatus']),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Listar módulos existentes
|
||||
|
||||
@ -8,13 +8,19 @@
|
||||
use App\Helpers\EncryptionHelper;
|
||||
use App\Enums\SettingTypeEk;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
use Illuminate\Routing\Controllers\HasMiddleware;
|
||||
|
||||
/**
|
||||
* Descripción
|
||||
*/
|
||||
class SettingsController extends Controller
|
||||
class SettingsController extends Controller implements HasMiddleware
|
||||
{
|
||||
public static function middleware(): array
|
||||
{
|
||||
return [
|
||||
self::can('system.settings', ['show', 'update']),
|
||||
];
|
||||
}
|
||||
|
||||
public function show()
|
||||
{
|
||||
@ -36,11 +42,48 @@ public function show()
|
||||
'success' => true,
|
||||
'data' => [
|
||||
'username' => $credentials['username'] ?? '',
|
||||
'password' => $credentials['password'] ?? '',
|
||||
'password_exists' => !empty($credentials['password'])
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function decrypt(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'value' => 'required|string',
|
||||
'app_key' => 'nullable|string',
|
||||
]);
|
||||
|
||||
if ($request->filled('app_key')) {
|
||||
try {
|
||||
$rawKey = base64_decode(str_replace('base64:', '', $request->app_key));
|
||||
$encrypter = new \Illuminate\Encryption\Encrypter($rawKey, 'AES-256-CBC');
|
||||
$credentials = json_decode($encrypter->decryptString($request->value), true);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'No se pudo desencriptar con el APP_KEY proporcionado',
|
||||
'error' => $e->getMessage(),
|
||||
], 422);
|
||||
}
|
||||
} else {
|
||||
$credentials = EncryptionHelper::decryptData($request->value);
|
||||
}
|
||||
|
||||
if (!$credentials) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'No se pudo desencriptar el valor proporcionado',
|
||||
], 422);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'data' => $credentials,
|
||||
]);
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
|
||||
@ -9,7 +9,7 @@ class ModuleStoreRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return auth()->user()->can('modules.create');
|
||||
return auth()->user()->can('module.create');
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
|
||||
@ -9,7 +9,7 @@ class ModuleUpdateRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return auth()->user()->can('modules.edit');
|
||||
return auth()->user()->can('module.edit');
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
|
||||
@ -58,9 +58,10 @@ public function run(): void
|
||||
$moduleCreate,
|
||||
$moduleEdit,
|
||||
$moduleDestroy
|
||||
] = $this->onCRUD('modules', $modules, 'api');
|
||||
] = $this->onCRUD('module', $modules, 'api');
|
||||
|
||||
$moduleToggleStatus = $this->onPermission('modules.toggle_status', 'Cambiar estado del módulo', $modules, 'api');
|
||||
$moduleShow = $this->onPermission('module.show', 'Ver módulo', $modules, 'api');
|
||||
$moduleToggleStatus = $this->onPermission('module.toggle_status', 'Cambiar estado del módulo', $modules, 'api');
|
||||
|
||||
// === DISPOSITIVOS MÓVILES ===
|
||||
$devices = PermissionType::firstOrCreate(['name' => 'Dispositivos Móviles']);
|
||||
@ -86,6 +87,11 @@ public function run(): void
|
||||
|
||||
$cancellationTagNoAsignado = $this->onPermission('cancellations.cancel_tag_no_asignado', 'Cancelar constancia no asignada', $cancellations, 'api');
|
||||
|
||||
// === SISTEMA ===
|
||||
$system = PermissionType::firstOrCreate(['name' => 'Sistema']);
|
||||
|
||||
$systemSettings = $this->onPermission('system.settings', 'Configurar credenciales REPUVE', $system, 'api');
|
||||
|
||||
// === ACTUALIZAR REGISTRO ===
|
||||
$updates = PermissionType::firstOrCreate(['name' => 'Actualizar Registro']);
|
||||
|
||||
@ -159,9 +165,11 @@ public function run(): void
|
||||
// Roles
|
||||
$roleIndex, $roleCreate, $roleEdit, $roleDestroy, $rolePermissions,
|
||||
// Módulos
|
||||
$moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy, $moduleToggleStatus,
|
||||
$moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy, $moduleShow, $moduleToggleStatus,
|
||||
// Dispositivos
|
||||
$deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy, $deviceToggleStatus,
|
||||
// Sistema
|
||||
$systemSettings,
|
||||
// Inscripciones
|
||||
$inscriptionVehicle, $inscriptionSearch, $inscriptionSearchNational,
|
||||
// Cancelaciones
|
||||
|
||||
@ -50,7 +50,7 @@ services:
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
MYSQL_USER: ${DB_USERNAME}
|
||||
ports:
|
||||
- ${DB_PORT}:${DB_PORT}
|
||||
- ${DB_PORT}:3306
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
networks:
|
||||
@ -70,4 +70,4 @@ volumes:
|
||||
|
||||
networks:
|
||||
repuve-network:
|
||||
driver: bridge
|
||||
driver: bridge
|
||||
|
||||
@ -90,6 +90,7 @@
|
||||
//Ruta de encriptación de RepuveService
|
||||
Route::get('repuve-credentials', [SettingsController::class, 'show']);
|
||||
Route::put('repuve-credentials', [SettingsController::class, 'update']);
|
||||
Route::post('repuve-credentials/decrypt', [SettingsController::class, 'decrypt']);
|
||||
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user