88
99namespace 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 ;
2111use Illuminate \Routing \Controller ;
22- use Illuminate \Support \Collection ;
23- use Illuminate \Support \Facades \Auth ;
2412
2513/**
2614 * Controller responsible for user management.
2715 */
2816class 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}
0 commit comments