diff --git a/resources/views/admin/permission/create.blade.php b/resources/views/admin/permission/create.blade.php index 32c2690..bf85dda 100644 --- a/resources/views/admin/permission/create.blade.php +++ b/resources/views/admin/permission/create.blade.php @@ -25,7 +25,14 @@
- + @if($errors->has('code'))
{{ $errors->first('code') }}
@endif @@ -45,4 +52,13 @@
+@endsection + +@section('js') + + + @endsection \ No newline at end of file diff --git a/resources/views/admin/permission/edit.blade.php b/resources/views/admin/permission/edit.blade.php index 65c5c3c..88fdb1f 100644 --- a/resources/views/admin/permission/edit.blade.php +++ b/resources/views/admin/permission/edit.blade.php @@ -26,7 +26,14 @@
- + @if($errors->has('code'))
{{ $errors->first('code') }}
@endif @@ -46,4 +53,13 @@
+@endsection + +@section('js') + + + @endsection \ No newline at end of file diff --git a/resources/views/admin/permission/index.blade.php b/resources/views/admin/permission/index.blade.php index 8b09924..7129895 100644 --- a/resources/views/admin/permission/index.blade.php +++ b/resources/views/admin/permission/index.blade.php @@ -32,6 +32,7 @@ Akses + Status @foreach($roles as $role) {{ $role->name }} @@ -52,6 +53,7 @@
{{ $permission->code }} + {{ $permission->isAvailable ? 'Tersedia' : 'Tidak Tersedia' }} @foreach($roles as $role) {{ $permission->num_order }} diff --git a/src/Http/Controllers/PermissionController.php b/src/Http/Controllers/PermissionController.php index bc2e139..0aec843 100644 --- a/src/Http/Controllers/PermissionController.php +++ b/src/Http/Controllers/PermissionController.php @@ -4,6 +4,7 @@ use Auth; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Validator; use Illuminate\Validation\Rule; use Ajifatur\FaturHelper\Models\Permission; @@ -28,6 +29,30 @@ public function index(Request $request) else $permissions = Permission::where('default','=',0)->orderBy('num_order','asc')->get(); + // Get routes + $routes = collect(Route::getRoutes())->map(function($route) use($request) { + if(is_int(strpos($route->getActionName(), ($request->query('default') == 1 ? 'Ajifatur\FaturHelper\Http\Controllers' : 'App\Http\Controllers')))) { + return [ + 'actionName' => str_replace('@','::',$route->getActionName()), + ]; + } + }); + + // Push to codes + $codes = []; + foreach($routes as $route) { + if($route != null) { + if($request->query('default') == 1) + array_push($codes, substr($route['actionName'],1,strlen($route['actionName'])-1)); + else + array_push($codes, $route['actionName']); + } + } + + foreach($permissions as $key=>$permission) { + $permissions[$key]->isAvailable = in_array($permission->code, $codes); + } + // Get roles $roles = Role::orderBy('num_order','asc')->get(); @@ -48,8 +73,20 @@ public function create() // Check the access has_access(__METHOD__, Auth::user()->role_id); + // Get routes + $routes = collect(Route::getRoutes())->map(function($route) { + if(is_int(strpos($route->getActionName(), 'App\Http\Controllers'))) { + return [ + 'method' => $route->methods()[0], + 'actionName' => str_replace('@','::',$route->getActionName()), + ]; + } + }); + // View - return view('faturhelper::admin/permission/create'); + return view('faturhelper::admin/permission/create', [ + 'routes' => $routes + ]); } /** @@ -102,6 +139,16 @@ public function edit($id) // Get the permission $permission = Permission::findOrFail($id); + // Get routes + $routes = collect(Route::getRoutes())->map(function($route) { + if(is_int(strpos($route->getActionName(), 'App\Http\Controllers'))) { + return [ + 'method' => $route->methods()[0], + 'actionName' => str_replace('@','::',$route->getActionName()), + ]; + } + }); + // Check permission whether is default if($permission->default === 1) { // Redirect @@ -110,7 +157,8 @@ public function edit($id) // View return view('faturhelper::admin/permission/edit', [ - 'permission' => $permission + 'permission' => $permission, + 'routes' => $routes ]); }