From b2b68ca6ff1b8fa33d6d254ef236c5df92f1d1b6 Mon Sep 17 00:00:00 2001 From: gazandic <gazandic@gmail.com> Date: Tue, 5 Apr 2016 17:18:07 +0700 Subject: [PATCH] selesai --- app/Http/Controllers/RoleController.php | 20 ++-- app/Http/Controllers/ScheduleController.php | 37 +++++-- app/Http/Controllers/TpsController.php | 14 ++- app/Http/Controllers/UserController.php | 2 + app/Http/Middleware/CurrentTps.php | 3 + app/Http/Middleware/EditSched.php | 13 ++- app/Http/Middleware/ReadSched.php | 3 +- app/Http/routes.php | 3 +- resources/views/menu/editSchedule.blade.php | 2 +- resources/views/menu/insertSchedule.blade.php | 2 +- resources/views/menu/manageRole.blade.php | 99 +++++++++++++++++++ resources/views/menu/schedule.blade.php | 25 +++-- resources/views/menu/tps.blade.php | 4 +- resources/views/menu/user.blade.php | 16 +-- 14 files changed, 189 insertions(+), 54 deletions(-) create mode 100644 resources/views/menu/manageRole.blade.php diff --git a/app/Http/Controllers/RoleController.php b/app/Http/Controllers/RoleController.php index 088f67f..72801ef 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 5ed0b11..85a38c0 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 223aed7..469a242 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 aaf51fc..ff94410 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 968d970..edb87f9 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 bb98879..209d71e 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 04ccbed..3381181 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 189f4ab..2629dd5 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 7b62865..5f82b80 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 a8d5783..11a5cfb 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 0000000..4c3561f --- /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 7c61795..2b56945 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 983c06a..4f5a6ba 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 f6dcd92..1a374bd 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; -- GitLab