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 @@
|
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
]);
}
|