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
|
public static function middleware(): array
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
self::can('modules.index', ['index']),
|
self::can('module.index', ['index']),
|
||||||
self::can('modules.show', ['show']),
|
self::can('module.show', ['show']),
|
||||||
self::can('modules.destroy', ['destroy']),
|
self::can('module.destroy', ['destroy']),
|
||||||
self::can('modules.toggle_status', ['toggleStatus']),
|
self::can('module.toggle_status', ['toggleStatus']),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listar módulos existentes
|
* Listar módulos existentes
|
||||||
|
|||||||
@ -8,13 +8,19 @@
|
|||||||
use App\Helpers\EncryptionHelper;
|
use App\Helpers\EncryptionHelper;
|
||||||
use App\Enums\SettingTypeEk;
|
use App\Enums\SettingTypeEk;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Routing\Controllers\HasMiddleware;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Descripción
|
* 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()
|
public function show()
|
||||||
{
|
{
|
||||||
@ -36,11 +42,48 @@ public function show()
|
|||||||
'success' => true,
|
'success' => true,
|
||||||
'data' => [
|
'data' => [
|
||||||
'username' => $credentials['username'] ?? '',
|
'username' => $credentials['username'] ?? '',
|
||||||
|
'password' => $credentials['password'] ?? '',
|
||||||
'password_exists' => !empty($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)
|
public function update(Request $request)
|
||||||
{
|
{
|
||||||
$validated = $request->validate([
|
$validated = $request->validate([
|
||||||
|
|||||||
@ -9,7 +9,7 @@ class ModuleStoreRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
public function authorize(): bool
|
public function authorize(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('modules.create');
|
return auth()->user()->can('module.create');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
|
|||||||
@ -9,7 +9,7 @@ class ModuleUpdateRequest extends FormRequest
|
|||||||
{
|
{
|
||||||
public function authorize(): bool
|
public function authorize(): bool
|
||||||
{
|
{
|
||||||
return auth()->user()->can('modules.edit');
|
return auth()->user()->can('module.edit');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function rules(): array
|
public function rules(): array
|
||||||
|
|||||||
@ -58,9 +58,10 @@ public function run(): void
|
|||||||
$moduleCreate,
|
$moduleCreate,
|
||||||
$moduleEdit,
|
$moduleEdit,
|
||||||
$moduleDestroy
|
$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 ===
|
// === DISPOSITIVOS MÓVILES ===
|
||||||
$devices = PermissionType::firstOrCreate(['name' => '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');
|
$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 ===
|
// === ACTUALIZAR REGISTRO ===
|
||||||
$updates = PermissionType::firstOrCreate(['name' => 'Actualizar Registro']);
|
$updates = PermissionType::firstOrCreate(['name' => 'Actualizar Registro']);
|
||||||
|
|
||||||
@ -159,9 +165,11 @@ public function run(): void
|
|||||||
// Roles
|
// Roles
|
||||||
$roleIndex, $roleCreate, $roleEdit, $roleDestroy, $rolePermissions,
|
$roleIndex, $roleCreate, $roleEdit, $roleDestroy, $rolePermissions,
|
||||||
// Módulos
|
// Módulos
|
||||||
$moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy, $moduleToggleStatus,
|
$moduleIndex, $moduleCreate, $moduleEdit, $moduleDestroy, $moduleShow, $moduleToggleStatus,
|
||||||
// Dispositivos
|
// Dispositivos
|
||||||
$deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy, $deviceToggleStatus,
|
$deviceIndex, $deviceCreate, $deviceEdit, $deviceDestroy, $deviceToggleStatus,
|
||||||
|
// Sistema
|
||||||
|
$systemSettings,
|
||||||
// Inscripciones
|
// Inscripciones
|
||||||
$inscriptionVehicle, $inscriptionSearch, $inscriptionSearchNational,
|
$inscriptionVehicle, $inscriptionSearch, $inscriptionSearchNational,
|
||||||
// Cancelaciones
|
// Cancelaciones
|
||||||
|
|||||||
@ -50,7 +50,7 @@ services:
|
|||||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||||
MYSQL_USER: ${DB_USERNAME}
|
MYSQL_USER: ${DB_USERNAME}
|
||||||
ports:
|
ports:
|
||||||
- ${DB_PORT}:${DB_PORT}
|
- ${DB_PORT}:3306
|
||||||
volumes:
|
volumes:
|
||||||
- mysql_data:/var/lib/mysql
|
- mysql_data:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
@ -70,4 +70,4 @@ volumes:
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
repuve-network:
|
repuve-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|||||||
@ -90,6 +90,7 @@
|
|||||||
//Ruta de encriptación de RepuveService
|
//Ruta de encriptación de RepuveService
|
||||||
Route::get('repuve-credentials', [SettingsController::class, 'show']);
|
Route::get('repuve-credentials', [SettingsController::class, 'show']);
|
||||||
Route::put('repuve-credentials', [SettingsController::class, 'update']);
|
Route::put('repuve-credentials', [SettingsController::class, 'update']);
|
||||||
|
Route::post('repuve-credentials/decrypt', [SettingsController::class, 'decrypt']);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user