-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathweb.php
139 lines (90 loc) · 6.3 KB
/
web.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AccessTokenController;
use App\Http\Controllers\AiConvController;
use App\Http\Controllers\AuthenticationController;
use App\Http\Controllers\EncryptionController;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\InvitationController;
use App\Http\Controllers\LanguageController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\RoomController;
use App\Http\Controllers\StreamController;
use App\Http\Controllers\SearchController;
use App\Http\Controllers\ProfileController;
use App\Http\Middleware\RegistrationAccess;
use App\Http\Middleware\AdminAccess;
use App\Http\Middleware\EditorAccess;
use App\Http\Middleware\PreventBackHistory;
use App\Http\Middleware\SessionExpiryChecker;
Route::middleware('prevent_back')->group(function () {
Route::get('/', [LoginController::class, 'index']);
Route::get('/login', [LoginController::class, 'index']);
Route::post('/req/login-ldap', [AuthenticationController::class, 'ldapLogin']);
Route::post('/req/login-shibboleth', [AuthenticationController::class, 'shibbolethLogin']);
Route::get('/req/login-shibboleth', [AuthenticationController::class, 'shibbolethLogin']);
Route::post('/req/login-oidc', [AuthenticationController::class, 'openIDLogin']);
Route::post('/req/changeLanguage', [LanguageController::class, 'changeLanguage']);
Route::get('/inv/{tempHash}/{slug}', [InvitationController::class, 'openExternInvitation'])->name('open.invitation')->middleware('signed');
Route::get('/dataprotection',[HomeController::class, 'dataprotectionIndex']);
Route::middleware('registrationAccess')->group(function () {
Route::get('/register', [AuthenticationController::class, 'register']);
Route::post('/req/profile/backupPassKey', [ProfileController::class, 'backupPassKey']);
Route::get('/req/crypto/getServerSalt', [EncryptionController::class, 'getServerSalt']);
Route::post('/req/complete_registration', [AuthenticationController::class, 'completeRegistration']);
});
Route::get('/check-session', [HomeController::class, 'CheckSessionTimeout']);
//CHECKS USERS AUTH
Route::middleware(['auth', 'expiry_check'])->group(function () {
Route::get('/handshake', [AuthenticationController::class, 'handshake']);
// AI CONVERSATION ROUTES
Route::get('/chat', [HomeController::class, 'show']);
Route::get('/chat/{slug?}' , [HomeController::class, 'show']);
Route::get('/req/conv/{slug?}', [AiConvController::class, 'loadConv']);
Route::post('/req/conv/createChat', [AiConvController::class, 'createConv']);
Route::post('/req/conv/sendMessage/{slug}', [AiConvController::class, 'sendMessage']);
Route::post('/req/conv/updateMessage/{slug}', [AiConvController::class, 'updateMessage']);
Route::post('/req/conv/updateInfo/{slug}', [AiConvController::class, 'updateInfo']);
Route::delete('/req/conv/removeConv/{slug}', [AiConvController::class, 'removeConv']);
// GROUPCHAT ROUTES
Route::get('/groupchat', [HomeController::class, 'show']);
Route::get('/groupchat/{slug?}', [HomeController::class, 'show']);
Route::get('/req/room/{slug?}', [RoomController::class, 'loadRoom']);
Route::post('/req/room/createRoom', [RoomController::class, 'createRoom']);
Route::delete('/req/room/leaveRoom/{slug}', [RoomController::class, 'leaveRoom']);
Route::post('/req/room/readstat/{slug}', [RoomController::class, 'markAsRead']);
Route::middleware('roomEditor')->group(function () {
Route::post('/req/room/sendMessage/{slug}', [RoomController::class, 'sendMessage']);
Route::post('/req/room/updateMessage/{slug}', [RoomController::class, 'updateMessage']);
Route::post('/req/room/streamAI/{slug}', [StreamController::class, 'handleAiConnectionRequest']);
});
Route::middleware('roomAdmin')->group(function () {
Route::post('/req/room/addMember', [RoomController::class, 'addMember']);
Route::post('/req/room/updateInfo/{slug}', [RoomController::class, 'updateInfo']);
Route::delete('/req/room/removeRoom/{slug}', [RoomController::class, 'removeRoom']);
Route::delete('/req/room/removeMember/{slug}', [RoomController::class, 'removeMember']);
});
Route::get('print/{module}/{slug}', [HomeController::class, 'print']);
// Profile
Route::get('/profile', [HomeController::class, 'show']);
Route::post('/req/profile/update', [ProfileController::class, 'update']);
Route::get('/req/profile/requestPasskeyBackup', [ProfileController::class, 'requestPasskeyBackup']);
Route::post('/req/profile/create-token', [AccessTokenController::class, 'createToken']);
Route::get('/req/profile/fetch-tokens', [AccessTokenController::class, 'fetchTokenList']);
Route::post('/req/profile/revoke-token', [AccessTokenController::class, 'revokeToken']);
// Invitation Handling
// Route::post('/req/room/requestPublicKeys', [InvitationController::class, 'onRequestPublicKeys']);
Route::post('/req/inv/store-invitations/{slug}', [InvitationController::class, 'storeInvitations']);
Route::post('/req/inv/sendExternInvitation', [InvitationController::class, 'sendExternInvitationEmail']);
Route::post('/req/inv/roomInvitationAccept', [InvitationController::class, 'onAcceptInvitation']);
Route::get('/req/inv/requestInvitation/{slug}', [InvitationController::class, 'getInvitationWithSlug']);
Route::get('/req/inv/requestUserInvitations', [InvitationController::class, 'getUserInvitations']);
Route::post('/req/downloadKeychain', [EncryptionController::class, 'downloadKeychain']);
Route::post('/req/backupKeychain', [EncryptionController::class, 'backupKeychain']);
// AI RELATED ROUTES
Route::post('/req/streamAI', [StreamController::class, 'handleAiConnectionRequest']);
Route::get('/req/search', [SearchController::class, 'search']);
});
// NAVIGATION ROUTES
Route::get('/logout', [AuthenticationController::class, 'logout'])->name('logout');
});