From f0293f0c1f0fe91dfbcf9311c5ba5a0085ef47e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Duli=C3=A7i?= Date: Thu, 21 Jan 2021 15:33:03 +0300 Subject: [PATCH] fixed type in common api endpoints --- app/Traits/Permissions.php | 42 +++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/app/Traits/Permissions.php b/app/Traits/Permissions.php index 2a7006fbe..b5b30520f 100644 --- a/app/Traits/Permissions.php +++ b/app/Traits/Permissions.php @@ -403,27 +403,41 @@ trait Permissions $table = request()->isApi() ? request()->segment(2) : ''; - // Fire event to find the proper controller for common API endpoints + // Find the proper controller for common API endpoints if (in_array($table, ['contacts', 'documents', 'transactions'])) { - $controller = ''; + $controller = $type = ''; - $type = request()->get('type'); + // Look for type in search variable like api/contacts?search=type:customer + $queries = explode(' ', request()->get('search')); + foreach ($queries as $query) { + $tmp = explode(':', $query); - $alias = config('type.' . $type . '.alias'); - $group = config('type.' . $type . '.group'); - $prefix = config('type.' . $type . '.permission.prefix'); + if (empty($tmp[0]) || ($tmp[0] != 'type') || empty($tmp[1])) { + continue; + } - // if use module set module alias - if (!empty($alias)) { - $controller .= $alias . '-'; + $type = $tmp[1]; + + break; } - // if controller in folder it must - if (!empty($group)) { - $controller .= $group . '-'; - } + if (!empty($type)) { + $alias = config('type.' . $type . '.alias'); + $group = config('type.' . $type . '.group'); + $prefix = config('type.' . $type . '.permission.prefix'); - $controller .= $prefix; + // if use module set module alias + if (!empty($alias)) { + $controller .= $alias . '-'; + } + + // if controller in folder it must + if (!empty($group)) { + $controller .= $group . '-'; + } + + $controller .= $prefix; + } } else { $route = app(Route::class);