neayi /
insights
| 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
Loading history...
|
|||
| 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 |