User management (#185)

This commit is contained in:
Saeed Vaziry
2024-04-29 20:58:04 +02:00
committed by GitHub
parent 35f896eab1
commit d846acaa8d
106 changed files with 1490 additions and 434 deletions

View File

@ -1,66 +1,62 @@
<?php
use App\Http\Controllers\Settings\NotificationChannelController;
use App\Http\Controllers\Settings\ProfileController;
use App\Http\Controllers\Settings\ProjectController;
use App\Http\Controllers\Settings\ServerProviderController;
use App\Http\Controllers\Settings\SourceControlController;
use App\Http\Controllers\Settings\SSHKeyController;
use App\Http\Controllers\Settings\StorageProviderController;
use App\Http\Controllers\Settings\UserController;
use Illuminate\Support\Facades\Route;
// profile
Route::prefix('settings/profile')->group(function () {
Route::get('/', [ProfileController::class, 'index'])->name('profile');
Route::post('info', [ProfileController::class, 'info'])->name('profile.info');
Route::post('password', [ProfileController::class, 'password'])->name('profile.password');
Route::prefix('settings/users')->group(function () {
Route::get('/', [UserController::class, 'index'])->name('settings.users.index');
Route::post('/', [UserController::class, 'store'])->name('settings.users.store');
Route::get('/{user}', [UserController::class, 'show'])->name('settings.users.show');
Route::post('/{user}', [UserController::class, 'update'])->name('settings.users.update');
Route::post('/{user}/projects', [UserController::class, 'updateProjects'])->name('settings.users.update-projects');
Route::delete('/{user}', [UserController::class, 'destroy'])->name('settings.users.delete');
});
// profile
// projects
Route::prefix('settings/projects')->group(function () {
Route::get('/', [ProjectController::class, 'index'])->name('projects');
Route::post('create', [ProjectController::class, 'create'])->name('projects.create');
Route::post('update/{project}', [ProjectController::class, 'update'])->name('projects.update');
Route::delete('delete/{project}', [ProjectController::class, 'delete'])->name('projects.delete');
Route::get('switch/{project}', [ProjectController::class, 'switch'])->name('projects.switch');
Route::get('/', [ProjectController::class, 'index'])->name('settings.projects');
Route::post('create', [ProjectController::class, 'create'])->name('settings.projects.create');
Route::post('update/{project}', [ProjectController::class, 'update'])->name('settings.projects.update');
Route::delete('delete/{project}', [ProjectController::class, 'delete'])->name('settings.projects.delete');
});
// server-providers
Route::prefix('settings/server-providers')->group(function () {
Route::get('/', [ServerProviderController::class, 'index'])->name('server-providers');
Route::post('connect', [ServerProviderController::class, 'connect'])->name('server-providers.connect');
Route::delete('delete/{serverProvider}', [ServerProviderController::class, 'delete'])
->name('server-providers.delete');
Route::get('/', [ServerProviderController::class, 'index'])->name('settings.server-providers');
Route::post('connect', [ServerProviderController::class, 'connect'])->name('settings.server-providers.connect');
Route::delete('delete/{serverProvider}', [ServerProviderController::class, 'delete'])->name('settings.server-providers.delete');
});
// source-controls
Route::prefix('settings/source-controls')->group(function () {
Route::get('/', [SourceControlController::class, 'index'])->name('source-controls');
Route::post('connect', [SourceControlController::class, 'connect'])->name('source-controls.connect');
Route::delete('delete/{sourceControl}', [SourceControlController::class, 'delete'])
->name('source-controls.delete');
Route::get('/', [SourceControlController::class, 'index'])->name('settings.source-controls');
Route::post('connect', [SourceControlController::class, 'connect'])->name('settings.source-controls.connect');
Route::delete('delete/{sourceControl}', [SourceControlController::class, 'delete'])->name('settings.source-controls.delete');
});
// storage-providers
Route::prefix('settings/storage-providers')->group(function () {
Route::get('/', [StorageProviderController::class, 'index'])->name('storage-providers');
Route::post('connect', [StorageProviderController::class, 'connect'])->name('storage-providers.connect');
Route::delete('delete/{storageProvider}', [StorageProviderController::class, 'delete'])
->name('storage-providers.delete');
Route::get('/', [StorageProviderController::class, 'index'])->name('settings.storage-providers');
Route::post('connect', [StorageProviderController::class, 'connect'])->name('settings.storage-providers.connect');
Route::delete('delete/{storageProvider}', [StorageProviderController::class, 'delete'])->name('settings.storage-providers.delete');
});
// notification-channels
Route::prefix('settings/notification-channels')->group(function () {
Route::get('/', [NotificationChannelController::class, 'index'])->name('notification-channels');
Route::post('add', [NotificationChannelController::class, 'add'])
->name('notification-channels.add');
Route::delete('delete/{id}', [NotificationChannelController::class, 'delete'])
->name('notification-channels.delete');
Route::get('/', [NotificationChannelController::class, 'index'])->name('settings.notification-channels');
Route::post('add', [NotificationChannelController::class, 'add'])->name('settings.notification-channels.add');
Route::delete('delete/{id}', [NotificationChannelController::class, 'delete'])->name('settings.notification-channels.delete');
});
// ssh-keys
Route::prefix('settings/ssh-keys')->group(function () {
Route::get('/', [SSHKeyController::class, 'index'])->name('ssh-keys');
Route::post('add', [SshKeyController::class, 'add'])->name('ssh-keys.add');
Route::delete('delete/{id}', [SshKeyController::class, 'delete'])->name('ssh-keys.delete');
Route::get('/', [SSHKeyController::class, 'index'])->name('settings.ssh-keys');
Route::post('add', [SshKeyController::class, 'add'])->name('settings.ssh-keys.add');
Route::delete('delete/{id}', [SshKeyController::class, 'delete'])->name('settings.ssh-keys.delete');
});

View File

@ -1,6 +1,8 @@
<?php
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\SearchController;
use App\Http\Controllers\Settings\ProjectController;
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
@ -8,7 +10,19 @@
});
Route::middleware('auth')->group(function () {
require __DIR__.'/settings.php';
// profile
Route::prefix('profile')->group(function () {
Route::get('/', [ProfileController::class, 'index'])->name('profile');
Route::post('info', [ProfileController::class, 'info'])->name('profile.info');
Route::post('password', [ProfileController::class, 'password'])->name('profile.password');
});
// switch project
Route::get('settings/projects/switch/{project}', [ProjectController::class, 'switch'])->name('settings.projects.switch');
Route::middleware('is-admin')->group(function () {
require __DIR__.'/settings.php';
});
Route::prefix('/servers')->group(function () {
require __DIR__.'/server.php';