Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
0.00% |
0 / 84 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 1 |
| UserController | |
0.00% |
0 / 84 |
|
0.00% |
0 / 8 |
240 | |
0.00% |
0 / 1 |
| __construct | |
0.00% |
0 / 6 |
|
0.00% |
0 / 1 |
2 | |||
| index | |
0.00% |
0 / 30 |
|
0.00% |
0 / 1 |
42 | |||
| create | |
0.00% |
0 / 2 |
|
0.00% |
0 / 1 |
2 | |||
| store | |
0.00% |
0 / 10 |
|
0.00% |
0 / 1 |
2 | |||
| edit | |
0.00% |
0 / 8 |
|
0.00% |
0 / 1 |
6 | |||
| update | |
0.00% |
0 / 11 |
|
0.00% |
0 / 1 |
2 | |||
| destroy | |
0.00% |
0 / 13 |
|
0.00% |
0 / 1 |
6 | |||
| activity_logs | |
0.00% |
0 / 4 |
|
0.00% |
0 / 1 |
2 | |||
| 1 | <?php |
| 2 | |
| 3 | namespace App\Http\Controllers\Dashboard; |
| 4 | |
| 5 | use App\Http\Controllers\Controller; |
| 6 | use App\Http\Requests\users\createRequest; |
| 7 | use App\Http\Requests\users\editRequest; |
| 8 | use App\Models\Role; |
| 9 | use App\Models\User; |
| 10 | use App\Services\ActivityLogsService; |
| 11 | use App\Services\UsersService; |
| 12 | use Illuminate\Support\Facades\Hash; |
| 13 | use Faker\Factory as Faker; |
| 14 | use Illuminate\Database\Eloquent\Factories\Sequence; |
| 15 | use Illuminate\Http\Request; |
| 16 | use Yajra\DataTables\Facades\DataTables; |
| 17 | |
| 18 | class UserController extends Controller |
| 19 | { |
| 20 | protected $UsersService; |
| 21 | protected $ActivityLogsService; |
| 22 | |
| 23 | public function __construct(UsersService $UsersService, ActivityLogsService $ActivityLogsService) { |
| 24 | $this->UsersService = $UsersService; |
| 25 | $this->ActivityLogsService = $ActivityLogsService; |
| 26 | |
| 27 | $this->middleware('permissionMiddleware:read-users')->only('index'); |
| 28 | $this->middleware('permissionMiddleware:delete-users')->only('destroy'); |
| 29 | $this->middleware('permissionMiddleware:update-users')->only(['edit', 'update', 'activity_logs']); |
| 30 | $this->middleware('permissionMiddleware:create-users')->only(['create', 'store']); |
| 31 | } |
| 32 | |
| 33 | public function index(Request $request){ |
| 34 | $roles = Role::get(); |
| 35 | |
| 36 | if ($request->ajax()) { |
| 37 | $data = User::where('super', '!=', 1); |
| 38 | |
| 39 | if($request->role){ |
| 40 | $data->whereRoleIs($request->role); |
| 41 | } |
| 42 | |
| 43 | |
| 44 | return DataTables::of($data) |
| 45 | ->addIndexColumn() |
| 46 | ->addColumn('action', function($row){ |
| 47 | $btn = '<div class="btn-group"><button type="button" class="btn btn-success">'. trans('admin.Actions') .'</button><button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown"></button><div class="dropdown-menu" role="menu">'; |
| 48 | |
| 49 | //my menu |
| 50 | if (auth('user')->user()->has_permission('update-users')) { |
| 51 | $btn .= '<a class="dropdown-item" href="' . route('dashboard.users.edit', $row->id).'">' . trans("admin.Edit") . '</a>'; |
| 52 | } |
| 53 | |
| 54 | if (auth('user')->user()->has_permission('update-users')) { |
| 55 | $btn .= '<a class="dropdown-item" href="' . route('dashboard.users.activityLogs', $row->id) .'">' . trans('admin.Activity logs') . '</a>'; |
| 56 | } |
| 57 | |
| 58 | if (auth('user')->user()->has_permission('delete-users')) { |
| 59 | $btn .= '<a class="dropdown-item" href="#" data-toggle="modal" data-target="#modal-default-' . $row->id.'">' . trans('admin.Delete') . '</a>'; |
| 60 | } |
| 61 | |
| 62 | $btn.= '</div></div>'; |
| 63 | |
| 64 | //delete alert |
| 65 | $btn .= view("Dashboard.partials.delete_confirmation", [ |
| 66 | 'url' => route('dashboard.users.destroy', $row->id), |
| 67 | 'modal_id' => 'modal-default-' . $row->id, |
| 68 | ]); |
| 69 | return $btn; |
| 70 | }) |
| 71 | ->addColumn('role', function($row){ |
| 72 | return $row->getRole(); |
| 73 | }) |
| 74 | ->rawColumns(['action']) |
| 75 | ->make(true); |
| 76 | } |
| 77 | |
| 78 | return view('Dashboard.users.index')->with([ |
| 79 | 'roles' => $roles, |
| 80 | ]); |
| 81 | } |
| 82 | |
| 83 | public function create(){ |
| 84 | $roles = Role::all(); |
| 85 | return view('Dashboard.users.create')->with('roles', $roles); |
| 86 | } |
| 87 | |
| 88 | public function store(createRequest $request){ |
| 89 | $user = $this->UsersService->insert($request); |
| 90 | |
| 91 | $this->ActivityLogsService->insert([ |
| 92 | 'subject_id' => $user->id, |
| 93 | 'subject_type' => 'App\Models\User', |
| 94 | 'description' => 'create', |
| 95 | 'causer_id' => auth('user')->user()->id, |
| 96 | 'causer_type' => 'App\Models\User', |
| 97 | 'properties' => null, |
| 98 | ]); |
| 99 | |
| 100 | return redirect('dashboard/users')->with('success', 'success'); |
| 101 | } |
| 102 | |
| 103 | public function edit($id){ |
| 104 | $roles = Role::all(); |
| 105 | $user = User::findOrFail($id); |
| 106 | |
| 107 | if($user->super == 1) |
| 108 | return redirect('dashboard/users')->with('error', trans('admin.you can\'t update this user')); |
| 109 | |
| 110 | return view('Dashboard.users.edit')->with([ |
| 111 | 'roles' => $roles, |
| 112 | 'data' => $user, |
| 113 | ]); |
| 114 | } |
| 115 | |
| 116 | public function update($id, editRequest $request){ |
| 117 | $user = User::findOrFail($id); |
| 118 | |
| 119 | $this->UsersService->update($user, $request); |
| 120 | |
| 121 | $this->ActivityLogsService->insert([ |
| 122 | 'subject_id' => $id, |
| 123 | 'subject_type' => 'App\Models\User', |
| 124 | 'description' => 'update', |
| 125 | 'causer_id' => auth('user')->user()->id, |
| 126 | 'causer_type' => 'App\Models\User', |
| 127 | 'properties' => null, |
| 128 | ]); |
| 129 | |
| 130 | return redirect('dashboard/users')->with('success', 'success'); |
| 131 | } |
| 132 | |
| 133 | public function destroy($user_id){ |
| 134 | $user = User::findOrFail($user_id); |
| 135 | |
| 136 | if($user->super == 1) |
| 137 | return redirect('dashboard/users')->with('error', trans('admin.you can\'t delete this user')); |
| 138 | |
| 139 | $user->delete(); |
| 140 | |
| 141 | $this->ActivityLogsService->insert([ |
| 142 | 'subject_id' => $user_id, |
| 143 | 'subject_type' => 'App\Models\User', |
| 144 | 'description' => 'delete', |
| 145 | 'causer_id' => auth('user')->user()->id, |
| 146 | 'causer_type' => 'App\Models\User', |
| 147 | 'properties' => null, |
| 148 | ]); |
| 149 | |
| 150 | return redirect()->back()->with('success', trans('admin.success')); |
| 151 | } |
| 152 | |
| 153 | public function activity_logs($id){ |
| 154 | $user = User::findOrFail($id); |
| 155 | |
| 156 | return view('Dashboard.users.activity_logs')->with([ |
| 157 | 'user' => $user, |
| 158 | ]); |
| 159 | } |
| 160 | } |