El panel de administración SU es una interfaz web para gestionar la plataforma. Accesible desde el navegador para administradores autenticados.
URL base: /us/su/lau
Autenticación: Guard auth:super con modelo su_ad (tabla de superusuarios separada de users).
Controlador: app/Http/Controllers/SUController.php (555 líneas)
Layout: resources/views/layouts/app-su.blade.php (sidebar, toast, dark mode)
Todas prefijadas con /us/su/lau y protegidas con middleware auth:super:
Route::middleware(['auth:super'])
->prefix('us/su/lau')
->as('su.')
->group(function () {
// Dashboard
Route::get('/dashboard', 'dashboard')->name('dash');
// Universidades
Route::get('/universidades', 'universidad')->name('uni');
Route::post('/universidades', 'storeuni')->name('uni.store');
Route::put('/universidades/{id}', 'updateUni')->name('uni.update');
// Carreras
Route::get('/carreras', 'carrera')->name('uni.ca');
Route::post('/carreras/crear', 'storeCarrera')->name('ca.store');
Route::post('/carreras/vincular', 'assignCarrera')->name('ca.assign');
// Usuarios
Route::get('/usuarios', 'userperfil')->name('usuarios');
Route::get('/buscar-usuarios', 'buscarUsuarios')->name('user.buscar');
Route::get('/info/{user:username}', 'info')->name('info');
Route::delete('/usuarios/{id}', 'destroy')->name('user.destroy');
// Reportes
Route::get('/reportes', 'reportes')->name('reportes');
// Insignias
Route::get('/insignias', 'insig')->name('insig');
Route::post('/insignias/create', 'storeinsig')->name('insig.create');
Route::post('/users/insignia', 'addInsignia')->name('add.insig');
Route::put('/info/{user:username}/insignia', 'editInsignia')->name('update.insig');
Route::delete('/info/{user:username}/insignia', 'deleteInsignia')->name('delete.insig');
// Banners/Anuncios
Route::get('/ads/create', 'ads')->name('ads');
Route::post('/ads/create', 'create')->name('ads.create');
Route::put('/ads/update/{id}', 'update')->name('ads.update');
Route::delete('/ads/{id}', 'delete')->name('ads.delete');
Route::post('/ads/{id}/reset-views', 'resetViews')->name('ads.resetviews');
// App Updates
Route::get('/updates', 'updateindex')->name('updates.index');
Route::post('/updates', 'storeup')->name('updates.store');
Route::patch('/updates/{id}/activate', 'activateup')->name('updates.activate');
Route::delete('/updates/{id}', 'destroyup')->name('updates.destroy');
});
Rutas de login (fuera del grupo protegido):
GET /us/su/lau/login → su.login (vista de login)POST /us/su/lau/login → storelau (autenticación con Auth::guard('super')->attempt())GET /us/su/lau/logout → storeus (logout con Auth::guard('super')->logout())| Vista | Ruta | Descripción |
|---|---|---|
su/login |
/us/su/lau/login |
Formulario de login del panel SU |
su/dashboard |
/us/su/lau/dashboard |
Dashboard con estadísticas |
su/universidad |
/us/su/lau/universidades |
CRUD de universidades |
su/carreras |
/us/su/lau/carreras |
Gestión de carreras y vinculación |
su/usuarios |
/us/su/lau/usuarios |
Lista de usuarios con stats |
su/perfil |
/us/su/lau/info/{username} |
Detalle de perfil de usuario |
su/reportes |
/us/su/lau/reportes |
Reportes de usuarios |
su/insignia |
/us/su/lau/insignias |
CRUD de insignias |
su/anuncio |
/us/su/lau/ads/create |
Gestión de banners/anuncios |
su/updates |
/us/su/lau/updates |
Gestión de actualizaciones OTA |