Skip to content

Commit 1f2edd8

Browse files
committed
more skeletons
1 parent c79d6da commit 1f2edd8

3 files changed

Lines changed: 22 additions & 80 deletions

File tree

app/Http/Controllers/Admin/UserGroupsController.php

Lines changed: 7 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -8,103 +8,30 @@
88

99
namespace App\Http\Controllers\Admin;
1010

11-
use App\Actions\Statistics\Spaces;
12-
use App\Actions\User\Create;
13-
use App\Actions\User\Save;
14-
use App\Exceptions\UnauthorizedException;
15-
use App\Http\Requests\UserManagement\AddUserRequest;
16-
use App\Http\Requests\UserManagement\DeleteUserRequest;
17-
use App\Http\Requests\UserManagement\ManagmentListUsersRequest;
18-
use App\Http\Requests\UserManagement\SetUserSettingsRequest;
19-
use App\Http\Resources\Models\UserManagementResource;
20-
use App\Models\User;
2111
use Illuminate\Routing\Controller;
22-
use Illuminate\Support\Collection;
23-
use Illuminate\Support\Facades\Auth;
2412

2513
/**
2614
* Controller responsible for user management.
2715
*/
2816
class UserGroupsController extends Controller
2917
{
30-
/**
31-
* Get the list of users for management purposes.
32-
*
33-
* @param ManagmentListUsersRequest $request
34-
* @param Spaces $spaces
35-
*
36-
* @return Collection<array-key, UserManagementResource>
37-
*/
38-
public function list(ManagmentListUsersRequest $request, Spaces $spaces): Collection
18+
public function get(): void
3919
{
40-
/** @var Collection<int,User> $users */
41-
$users = User::select(['id', 'username', 'may_administrate', 'may_upload', 'may_edit_own_settings', 'quota_kb', 'description', 'note'])->orderBy('id', 'asc')->get();
42-
$spacesPerUser = $spaces->getFullSpacePerUser();
43-
/** @var Collection<int,array{0:User,1:array{id:int,username:string,size:int}}> $zipped */
44-
$zipped = $users->zip($spacesPerUser);
45-
46-
return $zipped->map(fn ($item) => new UserManagementResource($item[0], $item[1], $request->is_se()));
4720
}
4821

49-
/**
50-
* Save modification done to a user.
51-
* Note that an admin can change the password of a user at will.
52-
*
53-
* @param SetUserSettingsRequest $request
54-
* @param Save $save
55-
*
56-
* @return void
57-
*/
58-
public function save(SetUserSettingsRequest $request, Save $save): void
22+
public function create(): void
5923
{
60-
$save->do(
61-
user: $request->user2(),
62-
username: $request->username(),
63-
password: $request->password(),
64-
mayUpload: $request->mayUpload(),
65-
mayEditOwnSettings: $request->mayEditOwnSettings(),
66-
quota_kb: $request->quota_kb(),
67-
note: $request->note()
68-
);
6924
}
7025

71-
/**
72-
* Deletes a user.
73-
*
74-
* The albums and photos owned by the user are re-assigned to the
75-
* admin user.
76-
*
77-
* @param DeleteUserRequest $request
78-
*
79-
* @return void
80-
*/
81-
public function delete(DeleteUserRequest $request): void
26+
public function update(): void
8227
{
83-
if ($request->user2()->id === Auth::id()) {
84-
throw new UnauthorizedException('You are not allowed to delete yourself');
85-
}
86-
$request->user2()->delete();
8728
}
8829

89-
/**
90-
* Create a new user.
91-
*
92-
* @param AddUserRequest $request
93-
* @param Create $create
94-
*
95-
* @return UserManagementResource
96-
*/
97-
public function create(AddUserRequest $request, Create $create): UserManagementResource
30+
public function delete(): void
9831
{
99-
$user = $create->do(
100-
username: $request->username(),
101-
password: $request->password(),
102-
mayUpload: $request->mayUpload(),
103-
mayEditOwnSettings: $request->mayEditOwnSettings(),
104-
quota_kb: $request->quota_kb(),
105-
note: $request->note()
106-
);
32+
}
10733

108-
return new UserManagementResource($user, ['id' => $user->id, 'size' => 0], $request->is_se());
34+
public function users(): void
35+
{
10936
}
11037
}

routes/api_v2.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,15 @@
149149
Route::post('/UserManagement::delete', [Admin\UserManagementController::class, 'delete']);
150150
Route::post('/UserManagement::create', [Admin\UserManagementController::class, 'create']);
151151

152+
/**
153+
* GROUPS.
154+
*/
155+
Route::get('/UserGroups', [Admin\UserGroupsController::class, 'get']);
156+
Route::post('/UserGroups', [Admin\UserGroupsController::class, 'create']);
157+
Route::put('/UserGroups', [Admin\UserGroupsController::class, 'users']);
158+
Route::patch('/UserGroups', [Admin\UserGroupsController::class, 'update']);
159+
Route::delete('/UserGroups', [Admin\UserGroupsController::class, 'delete']);
160+
152161
/**
153162
* WEBAUTHN.
154163
*/

routes/web_v2.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,19 @@
4747
Route::get('/statistics', VueController::class)->middleware(['migration:complete', 'login_required:always']);
4848
Route::get('/maintenance', VueController::class)->middleware(['migration:complete', 'login_required:always']);
4949
Route::get('/users', VueController::class)->middleware(['migration:complete', 'login_required:always']);
50+
Route::get('/user-groups', VueController::class)->middleware(['migration:complete', 'login_required:always']);
5051
Route::get('/settings/{tab?}', VueController::class)->middleware(['migration:complete', 'login_required:always']);
5152
Route::get('/permissions', VueController::class)->middleware(['migration:complete', 'login_required:always']);
5253
Route::get('/fixTree', VueController::class)->middleware(['migration:complete', 'login_required:always']);
5354
Route::get('/duplicatesFinder', VueController::class)->middleware(['migration:complete', 'login_required:always']);
5455
Route::get('/changelogs', VueController::class)->middleware(['migration:complete']);
5556
Route::get('/login', VueController::class)->middleware(['migration:complete']);
5657

58+
Route::get('/settings', [VueController::class, 'view'])->middleware(['migration:complete', 'login_required:always']);
59+
Route::get('/permissions', [VueController::class, 'view'])->middleware(['migration:complete', 'login_required:always']);
60+
Route::get('/fixTree', [VueController::class, 'view'])->middleware(['migration:complete', 'login_required:always']);
61+
Route::get('/duplicatesFinder', [VueController::class, 'view'])->middleware(['migration:complete', 'login_required:always']);
62+
5763
Route::match(['get', 'post'], '/migrate', [Admin\UpdateController::class, 'migrate'])
5864
->name('migrate')
5965
->middleware(['migration:incomplete']);

0 commit comments

Comments
 (0)