fixed dingo api conflict
This commit is contained in:
		@@ -6,6 +6,7 @@ use App\Models\Auth\Permission;
 | 
			
		||||
use App\Models\Auth\Role;
 | 
			
		||||
use App\Utilities\Reports;
 | 
			
		||||
use App\Utilities\Widgets;
 | 
			
		||||
use Illuminate\Routing\Route;
 | 
			
		||||
use Illuminate\Support\Str;
 | 
			
		||||
 | 
			
		||||
trait Permissions
 | 
			
		||||
@@ -387,4 +388,58 @@ trait Permissions
 | 
			
		||||
 | 
			
		||||
        return $this->getRoles('read-client-portal');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Assign permissions middleware to default controller methods.
 | 
			
		||||
     *
 | 
			
		||||
     * @return void
 | 
			
		||||
     */
 | 
			
		||||
    public function assignPermissionsToController()
 | 
			
		||||
    {
 | 
			
		||||
        // No need to check for permission in console
 | 
			
		||||
        if (app()->runningInConsole()) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $route = app(Route::class);
 | 
			
		||||
 | 
			
		||||
        // Get the controller array
 | 
			
		||||
        $arr = array_reverse(explode('\\', explode('@', $route->getAction()['uses'])[0]));
 | 
			
		||||
 | 
			
		||||
        $controller = '';
 | 
			
		||||
 | 
			
		||||
        // Add module
 | 
			
		||||
        if (isset($arr[3]) && isset($arr[4])) {
 | 
			
		||||
            if (strtolower($arr[4]) == 'modules') {
 | 
			
		||||
                $controller .= Str::kebab($arr[3]) . '-';
 | 
			
		||||
            } elseif (isset($arr[5]) && (strtolower($arr[5]) == 'modules')) {
 | 
			
		||||
                $controller .= Str::kebab($arr[4]) . '-';
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Add folder
 | 
			
		||||
        if (strtolower($arr[1]) != 'controllers') {
 | 
			
		||||
            $controller .= Str::kebab($arr[1]) . '-';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Add file
 | 
			
		||||
        $controller .= Str::kebab($arr[0]);
 | 
			
		||||
 | 
			
		||||
        // Skip ACL
 | 
			
		||||
        $skip = ['portal-dashboard'];
 | 
			
		||||
        if (in_array($controller, $skip)) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // App\Http\Controllers\FooBar                  -->> foo-bar
 | 
			
		||||
        // App\Http\Controllers\FooBar\Main             -->> foo-bar-main
 | 
			
		||||
        // Modules\Blog\Http\Controllers\Posts          -->> blog-posts
 | 
			
		||||
        // Modules\Blog\Http\Controllers\Portal\Posts   -->> blog-portal-posts
 | 
			
		||||
 | 
			
		||||
        // Add CRUD permission check
 | 
			
		||||
        $this->middleware('permission:create-' . $controller)->only('create', 'store', 'duplicate', 'import');
 | 
			
		||||
        $this->middleware('permission:read-' . $controller)->only('index', 'show', 'edit', 'export');
 | 
			
		||||
        $this->middleware('permission:update-' . $controller)->only('update', 'enable', 'disable');
 | 
			
		||||
        $this->middleware('permission:delete-' . $controller)->only('destroy');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user