diff --git a/app/Http/Controllers/RoleController.php b/app/Http/Controllers/RoleController.php index 088f67f195faa42f0cf08ef597ec8f57db58c7c4..72801efd1ba74c3713f40c1809ead346cadd62f4 100644 --- a/app/Http/Controllers/RoleController.php +++ b/app/Http/Controllers/RoleController.php @@ -16,8 +16,8 @@ class RoleController extends Controller public function __construct() { - //$this->middleware('auth'); - //$this->middleware('user.admin'); + $this->middleware('auth'); + $this->middleware('user.admin'); //$this->user_roles = Auth::user()->roles()->get()->toArray(); } @@ -36,24 +36,20 @@ class RoleController extends Controller public function index($userId) { - return User::find($userId)->roles()->get(); + return view('menu.manageRole', ['id'=>$userId,'dataRole' => User::find($userId)->roles()->get()]); } public function store($userId) { - $data = Input::json(); - if (UsersRoles::create(["id_user"=>$userId, "id_role"=>$data->get('id_role')])) - return ["status"=>"ok"]; - else - return ["status"=>"err"]; + $data = Input::all(); + if (UsersRoles::create(["id_user"=>$userId, "id_role"=>Input::get('id_role')])){} + return redirect('/user/'.$userId.'/role'); } public function destroy($userId, $roleId) { - if (UsersRoles::where('id_user', $userId)->where('id_role', $roleId)->delete()) - return ["status"=>"ok"]; - else - return ["status"=>"err"]; + if (UsersRoles::where('id_user', $userId)->where('id_role', $roleId)->delete()){} + return redirect('/user/'.$userId.'/role'); } } diff --git a/app/Http/Controllers/ScheduleController.php b/app/Http/Controllers/ScheduleController.php index 5ed0b1127b3a30587de48290cffd9aee9836e660..85a38c029932ccae54f6bcf45550b812e43077fd 100644 --- a/app/Http/Controllers/ScheduleController.php +++ b/app/Http/Controllers/ScheduleController.php @@ -7,6 +7,7 @@ use Illuminate\Support\Facades\Auth; use App\Schedule; use App\Tps; use App\User; +use App\UsersRoles; use Mail; use App\Http\Requests; use Illuminate\Support\Facades\Input; @@ -25,6 +26,7 @@ class ScheduleController extends Controller 'index', 'show', ]]); + if(Auth::user()) $this->user_roles = Auth::user()->roles()->get()->toArray(); } @@ -48,6 +50,11 @@ class ScheduleController extends Controller { $all = Schedule::all(); } + else if ($this->has_role('edit_schedule')) + { + $all = Schedule::where('id_tps',Tps::where('id_manager',Auth::user()-> + id)->get()->toArray()[0]['id'])->get(); + } else { $all = Schedule::where('id_user', Auth::user()->id)->get(); @@ -95,7 +102,7 @@ class ScheduleController extends Controller public function show($id) { // viewnya pake get - if ($this->has_role('all_schedule')||$this->has_role('edit_schedule')) + if ($this->has_role('all_schedule')) { return Schedule::find($id); }else{ @@ -106,7 +113,7 @@ class ScheduleController extends Controller public function edit($id) { - if ($this->has_role('all_schedule')||$this->has_role('edit_schedule')) + if ($this->has_role('all_schedule')) { return view('menu.editSchedule', ['id' => $id, @@ -123,11 +130,20 @@ class ScheduleController extends Controller $sched = Schedule::find($id); if ($this->has_role('all_schedule')) { - $sched = Schedule::find($id); + if(Input::has('id_tps')) $sched->id_tps = Input::get('id_tps'); + if(Input::has('id_user')) $sched->id_user = Input::get('id_user'); - $sched->time = Input::get('time',''); - $sched->amount = Input::get('amount',1); + if(Input::has('time')) + $sched->time = Input::get('time'); + if(Input::has('amount')) + $sched->amount = Input::get('amount'); + $sched->is_done = Input::get('is_done'); + $sched->save(); + return redirect('/schedule'); + } + else if ($this->has_role('edit_schedule')) + { $sched->is_done = Input::get('is_done'); $sched->save(); $tps = Tps::find($sched->id_tps); @@ -139,13 +155,18 @@ class ScheduleController extends Controller $tps->is_full = 1; } $tps->save(); + return redirect('/schedule'); } - return redirect('/schedule'); + else{ + return response('Unauthorized', 403); + } } public function destroy($id) { + + if ($this->has_role('all_schedule')) Schedule::find($id)->delete(); return redirect('/schedule'); } @@ -155,8 +176,8 @@ class ScheduleController extends Controller $data = [ 'content' => $notif, ]; - $user = User::findOrFail(Input::get('id_user')); - Mail::send('email.notification', $data, function ($message) use ($user) { + $user = User::find(UsersRoles::where('id_role',7)->get()->toArray()[0]['id_user']); + Mail::send('email.notification', $data, function ($message) use ($user) { $message->from(env('MAIL_USERNAME', 'user@host.suffix'), 'Notifikasi'); $message->to($user->email)->subject('Notifikasi Status TPS'); }); diff --git a/app/Http/Controllers/TpsController.php b/app/Http/Controllers/TpsController.php index 223aed7270bdefb4299566a7faf81c562e50a860..469a242674a1e4367deb33d37c33ab8cb5113120 100644 --- a/app/Http/Controllers/TpsController.php +++ b/app/Http/Controllers/TpsController.php @@ -17,15 +17,15 @@ class TpsController extends Controller { $this->middleware('auth'); $this->middleware('tps', ['except' => [ - 'index', 'store', 'create', ]]); $this->middleware('tps.admin', ['only' => [ - 'index', 'store', 'create', ]]); + + if(Auth::user()) $this->user_roles = Auth::user()->roles()->get()->toArray(); } @@ -45,8 +45,14 @@ class TpsController extends Controller public function index() { $arr = []; - $all = Tps::all(); - + if ($this->has_role('all_tps')) + { + $all = Tps::all(); + } + else + { + $all = Tps::where('id_manager', Auth::user()->id)->get(); + } foreach ($all as $tps) { $tmp = []; $tmp = $tps; diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index aaf51fc190eb7b94434aec343df467d24cbe1343..ff94410d3318a8c244d39ef2cd4859c98ed91971 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -24,6 +24,8 @@ class UserController extends Controller 'store', 'create', ]]); + + if(Auth::user()) $this->user_roles = Auth::user()->roles()->get()->toArray(); } diff --git a/app/Http/Middleware/CurrentTps.php b/app/Http/Middleware/CurrentTps.php index 968d970bd124da069161e5b39b19624dd50b62ff..edb87f99a0d675b7f77b26984f6cfd0e46b44e7d 100644 --- a/app/Http/Middleware/CurrentTps.php +++ b/app/Http/Middleware/CurrentTps.php @@ -36,6 +36,9 @@ class CurrentTps { return $next($request); } + if (!$param || + $param['tps']==null) + return $next($request); $tps = Tps::find($param['tps']); $id_mgr = ($tps ? $tps->id_manager : null); diff --git a/app/Http/Middleware/EditSched.php b/app/Http/Middleware/EditSched.php index bb988791d6b3824ffee81c368813a42cbfb8e9b9..209d71ead22367214b5110812e1bee9696e0d33f 100644 --- a/app/Http/Middleware/EditSched.php +++ b/app/Http/Middleware/EditSched.php @@ -4,6 +4,8 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Support\Facades\Auth; +use App\Schedule; +use App\Tps; class EditSched { @@ -35,15 +37,20 @@ class EditSched { return $next($request); } + if (!$param || + $param['schedule']==null) + return $next($request); // schedule null means create new schedule which requires only admin - $schedule = $param ? Schedule::find($param->has('schedule')) : null; - $id_user = ($schedule ? $schedule->id_user : null); - $isAuthorizedUser = $isAuthorizedUser && ($id_user && $id_user == $user->id); + $schedule = $param ? Schedule::find($param['schedule']) : null; + $id_tps = ($schedule ? $schedule->id_tps : null); + $id_user = $user->id; + $isAuthorizedUser = $isAuthorizedUser && ($id_user && $id_tps && $id_tps ==Tps::where('id_manager',$user->id)->get()->toArray()[0]['id'] ); /* User id match */ if ($isAuthorizedUser) { + // dd($request); return $next($request); } diff --git a/app/Http/Middleware/ReadSched.php b/app/Http/Middleware/ReadSched.php index 04ccbed022073381a983e273fc6ad9ab9d9ed075..3381181822116eb95fa93160fcd6d198b7e3ecb7 100644 --- a/app/Http/Middleware/ReadSched.php +++ b/app/Http/Middleware/ReadSched.php @@ -36,9 +36,8 @@ class ReadSched { return $next($request); } - // schedule null means get all schedule of current user - $schedule = $param ? Schedule::find($param->has('schedule')) : null; + $schedule = $param ? Schedule::find($param['schedule']) : null; $id_user = ($schedule ? $schedule->id_user : null); $isAuthorizedUser = $isAuthorizedUser && (!$id_user || $id_user == $user->id); diff --git a/app/Http/routes.php b/app/Http/routes.php index 189f4ab005961ae22cf06b0356c0e70d17c54e34..2629dd50ad279411ac262fbe41066ca3552b0aa7 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -14,8 +14,7 @@ Route::group(['middleware' => 'web'], function () { Route::auth(); - Route::get('/', 'HomeController@index'); // homnya kan cm 1 - Route::get('/home', 'HomeController@index'); + Route::get('/', 'HomeController@index'); Route::resource('user', 'UserController'); Route::resource('tps', 'TpsController'); diff --git a/resources/views/menu/editSchedule.blade.php b/resources/views/menu/editSchedule.blade.php index 7b62865344c11c3ffaa9f653b8f5639ec5757462..5f82b804708998129cd05c8e36da8f4436eae8d0 100644 --- a/resources/views/menu/editSchedule.blade.php +++ b/resources/views/menu/editSchedule.blade.php @@ -27,7 +27,7 @@ <input type="hidden" name="_method" value="put" /> <div class="line line-dashed b-b line-lg pull-in"></div> <div class="form-group"> - <label class="col-sm-2 control-label">Nama Pengelola</label> + <label class="col-sm-2 control-label">Nama Supir Truk</label> <div class="col-sm-10"> <select name="id_user" ui-jq="chosen" class="w-full"> <optgroup label="Nama Pengelola"> diff --git a/resources/views/menu/insertSchedule.blade.php b/resources/views/menu/insertSchedule.blade.php index a8d57839f1476d3ed3d1756b443c946e539df3bc..11a5cfba9215f1c11e40bcb4ac57179860faeffb 100644 --- a/resources/views/menu/insertSchedule.blade.php +++ b/resources/views/menu/insertSchedule.blade.php @@ -28,7 +28,7 @@ <div class="line line-dashed b-b line-lg pull-in"></div> <div class="form-group"> - <label class="col-sm-2 control-label">Nama Pengelola</label> + <label class="col-sm-2 control-label">Nama Supir Truk</label> <div class="col-sm-10"> <select name="id_user" ui-jq="chosen" class="w-full"> <optgroup label="Nama Pengelola"> diff --git a/resources/views/menu/manageRole.blade.php b/resources/views/menu/manageRole.blade.php new file mode 100644 index 0000000000000000000000000000000000000000..4c3561fcc65a0a38393263e2b0dfff14f3df6ce0 --- /dev/null +++ b/resources/views/menu/manageRole.blade.php @@ -0,0 +1,99 @@ +@extends('layouts.app') + +@section('content') +<div class="hbox hbox-auto-xs hbox-auto-sm ng-scope"> + <div class="col"> + <div class="app-content-body "> + <div class="bg-light lter"> + <ul class="breadcrumb bg-grey-breadcrumb m-b-none"> + <li><a href="#" class="btn no-shadow" ui-toggle-class="app-aside-folded" target=".app"> + <i class="icon-bdg_expand1 text"></i> + <i class="icon-bdg_expand2 text-active"></i> + </a> </li> + <li><a href="{{ url('/') }}">Home</a></li> + <li><i class="fa fa-angle-right"></i><a href="{{ url('/user') }}">User</a></li> + <li class="active"><i class="fa fa-angle-right"></i>Role</li> + </ul> + </div> + <div class="wrapper-lg bg-light"> + <div class="row"> + <div class="col-md-12"> + <div class="panel panel-default"> + <div class="panel-heading font-semibold"> + Role Table + </div> + <div class="table-responsive"> + <table class="table table-striped b-t b-light"> + <thead> + <tr> + <th>nama role</th> + <th>terpakai</th> + </tr> + </thead> + <tbody> + <?php for($i=1;$i<=7;$i++){?> + <tr> + <td> + <?php switch ($i) { + case 1: + echo "Current User"; + break; + case 2: + echo "All User"; + break; + case 3: + echo "Current TPS"; + break; + case 4: + echo "All TPS"; + break; + case 5: + echo "Read Schedule"; + break; + case 6: + echo "Edit Schedule"; + break; + case 7: + echo "All Schedule"; + break; + }?> + </td> + <td> + <?php + $bool = false; + foreach ($dataRole as $role) { + if($role->id==$i){ + $bool = true; + break; + } + } + if($bool){ + ?> + <form class="col-md-12 form-horizontal" action="<?php echo URL::to('/user');?>/<?=$id?>/role/<?=$i?>" method="POST"> + {!! csrf_field() !!} + <input type="hidden" name="_method" value="DELETE"> + <button type="submit" class="active btn m-b-sm m-r-sm btn-dark"><i class="fa fa-check text-success text-active"></i></button> + </form> + <?php } else{?> + <form class="col-md-12 form-horizontal" action="<?php echo URL::to('/user');?>/<?=$id?>/role" method="POST"> + {!! csrf_field() !!} + <input type="hidden" name="id_role" value="<?=$i?>"> + <button type="submit" class="active btn m-b-sm m-r-sm btn-dark"><i class="fa fa-times text-danger text-active"></i></button> + </form> + <?php } ?> + </td> + + </tr> + <?php } ?> + + </tbody> + </table> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + </div> +@endsection \ No newline at end of file diff --git a/resources/views/menu/schedule.blade.php b/resources/views/menu/schedule.blade.php index 7c61795dd6766745303037da720997710add5006..2b5694551732a76535896db2701ce2d97a005d12 100644 --- a/resources/views/menu/schedule.blade.php +++ b/resources/views/menu/schedule.blade.php @@ -71,7 +71,7 @@ foreach ($data as $jadwal ) { <div class="row wrapper-sm"> <div class="col-sm-5"> <select id="aksi2" class="input-sm form-control w-sm inline v-middle"> - <option value="0">Bulk action</option> + <option value="0">Schedule done</option> <option value="1">Delete selected</option> <option value="2">Bulk edit</option> </select> @@ -87,7 +87,7 @@ foreach ($data as $jadwal ) { </span> </div> </div> - </div>c + </div> <div class="table-responsive"> <table class="table table-striped b-t b-light"> <thead> @@ -117,13 +117,20 @@ foreach ($data as $jadwal ) { <td><?php echo $jadwal->time;?></td> <td> <?php if($jadwal->is_done==1){?> - <a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a> + <a class="active"><i class="fa fa-check text-success text-active"></i></a> <?php }else{?> - <a href ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a><?php }?> + <a class="active"><i class="fa fa-times text-danger text-active"></i></a> + <?php }?> </td> </tr> @endforeach </form> + + <form id="doneForm" method="POST"> + {!! csrf_field() !!} + <input type="hidden" name="_method" value="PUT"> + <input type="hidden" name="is_done" value="1"> + </form> </tbody> </table> </div> @@ -131,7 +138,7 @@ foreach ($data as $jadwal ) { <div class="row"> <div class="col-sm-4 hidden-xs"> <select id="aksi" class="input-sm form-control w-sm inline v-middle"> - <option value="0">Bulk action</option> + <option value="0">Schedule done</option> <option value="1">Delete selected</option> <option value="2">Bulk edit</option> </select> @@ -153,7 +160,9 @@ foreach ($data as $jadwal ) { lol=3; } if(lol==0){ - window.location.href = '/templatePPL2/public/schedule'; + var s = '/templatePPL2/public/schedule/'+id; + document.getElementById("doneForm").action = s; + document.getElementById("doneForm").submit(); } if(lol==1){ var s = '/templatePPL2/public/schedule/'+id; @@ -181,7 +190,9 @@ foreach ($data as $jadwal ) { lol=3; } if(lol==0){ - window.location.href = '/templatePPL2/public/schedule'; + var s = '/templatePPL2/public/schedule/'+id; + document.getElementById("doneForm").action = s; + document.getElementById("doneForm").submit(); } if(lol==1){ var s = '/templatePPL2/public/schedule/'+id; diff --git a/resources/views/menu/tps.blade.php b/resources/views/menu/tps.blade.php index 983c06a5e809527165c3545845bc5fa57da6900f..4f5a6ba2f9351fc263b0bb04601d94ac2f6a8f4c 100644 --- a/resources/views/menu/tps.blade.php +++ b/resources/views/menu/tps.blade.php @@ -123,9 +123,9 @@ foreach ($data as $tps ) { <td><?php echo $tps->managerName;?></td> <td> <?php if($tps->is_full==0){?> - <a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a> + <a class="active"><i class="fa fa-check text-success text-active"></i></a> <?php }else{?> - <a href ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a><?php }?> + <a class="active"><i class="fa fa-times text-danger text-active"></i></a><?php }?> </td> </tr> @endforeach diff --git a/resources/views/menu/user.blade.php b/resources/views/menu/user.blade.php index f6dcd9215a3d74cee6c3a6cd1f512a5c3d4a30cc..1a374bd5e1eb6e8eed96ca0e5fca1031f4aa5ae8 100644 --- a/resources/views/menu/user.blade.php +++ b/resources/views/menu/user.blade.php @@ -33,7 +33,7 @@ <div class="row wrapper-sm"> <div class="col-sm-5"> <select id="aksi2" class="input-sm form-control w-sm inline v-middle"> - <option value="0">Bulk action</option> + <option value="0">Manage Role</option> <option value="1">Delete selected</option> <option value="2">Bulk edit</option> </select> @@ -62,8 +62,6 @@ <th>nama</th> <th>email</th> <th>password</th> - <th>role_id</th> - <th style="width:30px;"></th> </tr> </thead> <tbody> @@ -76,12 +74,6 @@ <td><?php echo $user->name;?></td> <td><?php echo $user->email;?></td> <td><?php echo $user->password;?></td> - <td><?php echo $user->role_id;?> - - </td> - <td> - <a href class="active" ui-toggle-class><i class="fa fa-check text-success text-active"></i><i class="fa fa-times text-danger text"></i></a> - </td> </tr> @endforeach </form> @@ -93,7 +85,7 @@ <div class="col-sm-4 hidden-xs"> <select id="aksi" class="input-sm form-control w-sm inline v-middle"> - <option value="0">Bulk action</option> + <option value="0">Manage Role</option> <option value="1">Delete selected</option> <option value="2">Bulk edit</option> </select> @@ -115,7 +107,7 @@ lol=3; } if(lol==0){ - window.location.href = '/templatePPL2/public/user'; + window.location.href = '/templatePPL2/public/user/'+id+'/role'; } if(lol==1){ var s = '/templatePPL2/public/user/'+id; @@ -143,7 +135,7 @@ lol=3; } if(lol==0){ - window.location.href = '/templatePPL2/public/user'; + window.location.href = '/templatePPL2/public/user/'+id+'/role'; } if(lol==1){ var s = '/templatePPL2/public/user/'+id;