first commit
This commit is contained in:
35
routes/auth.php
Normal file
35
routes/auth.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\Auth\VerifyEmailController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Livewire\Volt\Volt;
|
||||
|
||||
Route::middleware('guest')->group(function () {
|
||||
Volt::route('login', 'auth.login')
|
||||
->name('login');
|
||||
|
||||
Volt::route('register', 'auth.register')
|
||||
->name('register');
|
||||
|
||||
Volt::route('forgot-password', 'auth.forgot-password')
|
||||
->name('password.request');
|
||||
|
||||
Volt::route('reset-password/{token}', 'auth.reset-password')
|
||||
->name('password.reset');
|
||||
|
||||
});
|
||||
|
||||
Route::middleware('auth')->group(function () {
|
||||
Volt::route('verify-email', 'auth.verify-email')
|
||||
->name('verification.notice');
|
||||
|
||||
Route::get('verify-email/{id}/{hash}', VerifyEmailController::class)
|
||||
->middleware(['signed', 'throttle:6,1'])
|
||||
->name('verification.verify');
|
||||
|
||||
Volt::route('confirm-password', 'auth.confirm-password')
|
||||
->name('password.confirm');
|
||||
});
|
||||
|
||||
Route::post('logout', App\Livewire\Actions\Logout::class)
|
||||
->name('logout');
|
||||
8
routes/console.php
Normal file
8
routes/console.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Foundation\Inspiring;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
Artisan::command('inspire', function () {
|
||||
$this->comment(Inspiring::quote());
|
||||
})->purpose('Display an inspiring quote');
|
||||
78
routes/web.php
Normal file
78
routes/web.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\DocumentController;
|
||||
use App\Http\Controllers\FolderController;
|
||||
use App\Http\Controllers\PermissionController;
|
||||
use App\Http\Controllers\ProfileController;
|
||||
use App\Http\Controllers\ProjectController;
|
||||
use App\Http\Controllers\RoleController;
|
||||
use App\Http\Controllers\UserController;
|
||||
use App\Livewire\ProjectShow;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Livewire\Volt\Volt;
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('welcome');
|
||||
})->name('home');
|
||||
|
||||
/*Route::view('dashboard', 'dashboard')
|
||||
->middleware(['auth', 'verified'])
|
||||
->name('dashboard');
|
||||
|
||||
Route::middleware(['auth'])->group(function () {
|
||||
Route::redirect('settings', 'settings/profile');
|
||||
|
||||
Volt::route('settings/profile', 'settings.profile')->name('settings.profile');
|
||||
Volt::route('settings/password', 'settings.password')->name('settings.password');
|
||||
Volt::route('settings/appearance', 'settings.appearance')->name('settings.appearance');
|
||||
});*/
|
||||
|
||||
require __DIR__.'/auth.php';
|
||||
|
||||
// Rutas autenticadas
|
||||
Route::middleware(['auth', 'verified'])->group(function () {
|
||||
// Dashboard
|
||||
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
|
||||
|
||||
// Proyectos
|
||||
Route::resource('projects', ProjectController::class);
|
||||
Route::get('/projects/{project}', ProjectController::class)->name('projects.show');
|
||||
Route::get('/projects/{project}', ProjectController::class)->name('projects.show')->middleware('can:view,project'); // Opcional: política de acceso
|
||||
Route::get('/projects/{project}', ProjectShow::class)->name('projects.show');
|
||||
|
||||
// Documentos
|
||||
Route::resource('documents', DocumentController::class);
|
||||
Route::post('/documents/{document}/approve', [DocumentController::class, 'approve'])->name('documents.approve');
|
||||
Route::post('/documents/{document}/comment', [DocumentController::class, 'addComment'])->name('documents.comment');
|
||||
|
||||
// Carpetas
|
||||
Route::resource('folders', FolderController::class);
|
||||
Route::post('/folders/{folder}/documents', [FolderController::class, 'storeDocument'])->name('folders.documents.store');
|
||||
|
||||
// Gestión de Usuarios
|
||||
Route::resource('users', UserController::class)->except('show');
|
||||
Route::put('/users/{user}/password', [UserController::class, 'updatePassword'])->name('users.password.update');
|
||||
|
||||
// Permisos y Roles
|
||||
Route::resource('roles', RoleController::class)->except('show');
|
||||
Route::resource('permissions', PermissionController::class)->only(['index', 'store', 'update']);
|
||||
Route::post('/roles/{role}/permissions', [RoleController::class, 'syncPermissions'])->name('roles.permissions.sync');
|
||||
|
||||
// Perfil de usuario
|
||||
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
||||
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
||||
Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show');
|
||||
|
||||
// Ruta para el perfil de usuario
|
||||
Route::redirect('settings', 'settings/profile');
|
||||
Volt::route('settings/profile', 'settings.profile')->name('settings.profile');
|
||||
Volt::route('settings/password', 'settings.password')->name('settings.password');
|
||||
Volt::route('settings/appearance', 'settings.appearance')->name('settings.appearance');
|
||||
});
|
||||
|
||||
// API (para integraciones futuras)
|
||||
Route::prefix('api')->middleware('auth:sanctum')->group(function () {
|
||||
Route::get('/projects', [ProjectController::class, 'apiIndex']);
|
||||
Route::post('/documents/upload', [DocumentController::class, 'apiStore']);
|
||||
});
|
||||
Reference in New Issue
Block a user