1 | <?php |
||
2 | |||
3 | |||
4 | namespace App\Http\Controllers; |
||
5 | |||
6 | |||
7 | use App\Http\Common\Form\UserForm; |
||
8 | use App\Src\UseCases\Domain\Organizations\GetOrganization; |
||
9 | use App\Src\UseCases\Domain\Organizations\GrantUserAsAdminOrganization; |
||
10 | use App\Src\UseCases\Domain\Organizations\Invitation\DeleteUserFromOrganization; |
||
11 | use App\Src\UseCases\Domain\Organizations\RevokeUserAsAdminOrganization; |
||
12 | use App\Src\UseCases\Domain\Users\DeleteUser; |
||
13 | use App\Src\UseCases\Domain\Users\EditUser; |
||
14 | use App\Src\UseCases\Domain\Users\GetUser; |
||
15 | use App\Src\UseCases\Domain\Users\GetUserStats; |
||
16 | use App\Src\UseCases\Domain\Users\ListUsers; |
||
17 | use Illuminate\Http\Request; |
||
18 | use Illuminate\Support\Facades\Auth; |
||
19 | |||
20 | class UsersController extends Controller |
||
21 | { |
||
22 | public function showListUsers(string $organizationId) |
||
23 | { |
||
24 | return view('users/list', ['organization_id' => $organizationId]); |
||
25 | } |
||
26 | |||
27 | public function listUsers(string $organizationId, Request $request, ListUsers $listUsers) |
||
28 | { |
||
29 | $page = $request->input('start')/10 + 1; |
||
30 | |||
31 | $users = $listUsers->list($organizationId, $page, 10); |
||
32 | $total = init($users['total'], 0); |
||
33 | $list = []; |
||
34 | foreach ($users['list'] as $user){ |
||
35 | $user = $user->toArray(); |
||
36 | $list[] = [ |
||
37 | '', |
||
38 | $user['firstname'].' '.$user['lastname'], |
||
39 | $user['email'], |
||
40 | $user['state'] == false ? __('users.table.invitation_send') : __('users.table.state_active'), |
||
41 | isset($user['last_login_at']) ? __('users.table.last_login_occ').(new \DateTime())->setTimestamp(strtotime($user['last_login_at']))->format('Y-m-d H:i:s') : __('common.never'), |
||
0 ignored issues
–
show
Bug
introduced
by
![]() |
|||
42 | $user['uuid'], |
||
43 | isset($user['url_picture']) && $user['url_picture'] !== "" ? $user['url_picture'] : url('').'/'.config('adminlte.logo_img'), |
||
44 | route('user.edit.form', ['id' => $user['uuid']]), |
||
45 | ]; |
||
46 | } |
||
47 | |||
48 | return format($total, $list); |
||
49 | } |
||
50 | |||
51 | public function editShowForm(string $userId, GetUser $getUser, GetOrganization $getOrganization, GetUserStats $getUserStats) |
||
52 | { |
||
53 | $user = $getUser->get($userId); |
||
54 | if($user->organizationId() !== null) { |
||
55 | $organization = $getOrganization->get($user->organizationId()); |
||
56 | } |
||
57 | $stats = $getUserStats->get($userId); |
||
58 | return view('users/edit_form', [ |
||
59 | 'user' => $user->toArray(), |
||
60 | 'stats' => $stats->toArray(), |
||
61 | 'organization' => isset($organization) ? $organization->toArray() : null, |
||
62 | 'action' => route('user.edit', ['id' => $userId]) |
||
63 | ]); |
||
64 | } |
||
65 | |||
66 | public function editProcess(string $userId, Request $request, EditUser $editUser, UserForm $form) |
||
67 | { |
||
68 | list($firstname, $lastname, $email, $picture) = $form->process(); |
||
69 | $editUser->edit($userId, $email, $firstname, $lastname, $picture); |
||
70 | $request->session()->flash('notif_msg', __('users.message.user.updated')); |
||
71 | return redirect()->back(); |
||
72 | } |
||
73 | |||
74 | public function grantAsAdmin(string $userId, string $organizationId, Request $request, GrantUserAsAdminOrganization $grantUserAsAdminOrganization) |
||
75 | { |
||
76 | $grantUserAsAdminOrganization->grant($userId, $organizationId); |
||
77 | $request->session()->flash('notif_msg', __('users.message.user.updated')); |
||
78 | return redirect()->back(); |
||
79 | } |
||
80 | |||
81 | public function revokeAsAdmin(string $userId, string $organizationId, Request $request, RevokeUserAsAdminOrganization $grantUserAsAdminOrganization) |
||
82 | { |
||
83 | $grantUserAsAdminOrganization->revoke($userId, $organizationId); |
||
84 | $request->session()->flash('notif_msg', __('users.message.user.updated')); |
||
85 | return redirect()->back(); |
||
86 | } |
||
87 | |||
88 | public function delete(string $userId, Request $request, DeleteUser $deleteUser) |
||
89 | { |
||
90 | $redirect = 'back'; |
||
91 | if($userId === Auth::id()){ |
||
92 | $redirect = 'login'; |
||
93 | } |
||
94 | $deleteUser->delete($userId); |
||
95 | if($redirect === 'login') { |
||
96 | return redirect()->route('login'); |
||
97 | } |
||
98 | $request->session()->flash('notif_msg', __('users.message.user.deleted')); |
||
99 | return redirect()->route('home'); |
||
100 | } |
||
101 | |||
102 | public function leaveOrganization(string $userId, Request $request, DeleteUserFromOrganization $deleteUserFromOrganization) |
||
103 | { |
||
104 | $deleteUserFromOrganization->delete($userId); |
||
105 | $request->session()->flash('notif_msg', __('users.message.user.updated')); |
||
106 | return redirect()->back(); |
||
107 | } |
||
108 | } |
||
109 |