首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法使用Laravel Backpack权限访问角色和权限的路由

无法使用Laravel Backpack权限访问角色和权限的路由
EN

Stack Overflow用户
提问于 2020-04-23 01:48:01
回答 1查看 1.4K关注 0票数 0

我正在尝试使用Laravel Backpack权限管理器(https://github.com/Laravel-Backpack/PermissionManager)实现Laravel Backpack权限UI和路由。

我们已经使用以下命令添加了角色和权限路由

代码语言:javascript
运行
复制
<li class="nav-item"><a class="nav-link" href="{{ backpack_url('role') }}"><i class="nav-icon fa fa-group"></i> <span>Roles</span></a></li>
<li class="nav-item"><a class="nav-link" href="{{ backpack_url('permission') }}"><i class="nav-icon fa fa-key"></i> <span>Permissions</span></a></li>

然而,每当我们导航到这些路由之一时,它都会抛出一个404错误。

根据文档,我们在config/backpack/base.php文件中有以下设置。

代码语言:javascript
运行
复制
    // The classes for the middleware to check if the visitor is an admin
// Can be a single class or an array of clases
'middleware_class' => [
    App\Http\Middleware\CheckIfAdmin::class,
    \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    // \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
],


// The guard that protects the Backpack admin panel.
// If null, the config.auth.defaults.guard value will be used.
'guard' => null,

在我们的config/auth.php设置中,我们只设置了一个防护,我们已经创建的所有角色和权限都被设置为使用'web‘防护。

代码语言:javascript
运行
复制
'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],        
],

这是我的config/backpack/permissionmanager.php文件。**请注意,我们有意设置了user类,以便我们可以使用自己的模型,而不是CRUD的背包模式。

代码语言:javascript
运行
复制
<?php

return [

/*
|--------------------------------------------------------------------------
| Models
|--------------------------------------------------------------------------
|
| Models used in the User, Role and Permission CRUDs.
|
*/

'models' => [
    'user'       => App\Models\User::class,
    'permission' => Backpack\PermissionManager\app\Models\Permission::class,
    'role'       => Backpack\PermissionManager\app\Models\Role::class,
],

/*
|--------------------------------------------------------------------------
| Disallow the user interface for creating/updating permissions or roles.
|--------------------------------------------------------------------------
| Roles and permissions are used in code by their name
| - ex: $user->hasPermissionTo('edit articles');
|
| So after the developer has entered all permissions and roles, the administrator should either:
| - not have access to the panels
| or
| - creating and updating should be disabled
*/

'allow_permission_create' => true,
'allow_permission_update' => true,
'allow_permission_delete' => true,
'allow_role_create'       => true,
'allow_role_update'       => true,
'allow_role_delete'       => true,

/*
|--------------------------------------------------------------------------
| Multiple-guards functionality
|--------------------------------------------------------------------------
|
*/
'multiple_guards' => false,

'roles_with_admin_access' => ['admin', 'moderator', 'customer service'],

];

这是我们的作曲家文件。

代码语言:javascript
运行
复制
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": [
    "framework",
    "laravel"
],
"license": "MIT",
"type": "project",
"require": {
    "php": "^7.2",
    "algolia/algoliasearch-client-php": "^2.2",
    "aws/aws-sdk-php": "^3.129",
    "backpack/crud": "^4.0.0",
    "backpack/permissionmanager": "^5.0",
    "barryvdh/laravel-elfinder": "^0.4.3",
    "doctrine/dbal": "^2.9",
    "fideloper/proxy": "^4.0",
    "guzzlehttp/guzzle": "~6.3.3",
    "laravel/framework": "^6.18",
    "laravel/passport": "^7.5",
    "laravel/scout": "^7.2",
    "laravel/tinker": "^2.0",
    "league/flysystem-aws-s3-v3": "~1.0",
    "maatwebsite/excel": "^3.1.16",
    "sendgrid/sendgrid": "^7.4",
    "spatie/laravel-permission": "^3.0",
    "vimeo/laravel": "^5.4",
    "webpatser/laravel-uuid": "^3.0"
},
"require-dev": {
    "backpack/generators": "^2.0",
    "barryvdh/laravel-debugbar": "^3.2",
    "fzaninotto/faker": "^1.4",
    "laracasts/generators": "dev-master",
    "mockery/mockery": "^1.0",
    "nunomaduro/collision": "^3.0",
    "phpunit/phpunit": "^8.0",
    "facade/ignition": "^1.4"
},
"autoload": {
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "psr-4": {
        "Tests\\": "tests/"
    }
},
"extra": {
    "laravel": {
        "dont-discover": []
    }
},
"scripts": {
    "post-root-package-install": [
        "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
        "@php artisan key:generate"
    ],
    "post-autoload-dump": [
        "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
        "@php artisan package:discover"
    ]
},
"config": {
    "preferred-install": "dist",
    "sort-packages": true,
    "optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true

}

我已经运行了所有的供应商发布命令。在没有得到404的情况下,仍然无法导航到/admin/role或/admin/permission路由。

EN

回答 1

Stack Overflow用户

发布于 2020-06-25 05:33:41

您应该有一个包含以下内容的文件:

routes/backpack/permissionmanager.php

代码语言:javascript
运行
复制
<?php

/*
|--------------------------------------------------------------------------
| Backpack\PermissionManager Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of the routes that are
| handled by the Backpack\PermissionManager package.
|
*/

Route::group([
        'namespace'  => 'Backpack\PermissionManager\app\Http\Controllers',
        'prefix'     => config('backpack.base.route_prefix', 'admin'),
        'middleware' => ['web', backpack_middleware()],
], function () {
    Route::crud('permission', 'PermissionCrudController');
    Route::crud('role', 'RoleCrudController');
    // Route::crud('user', 'UserCrudController'); // removed and placed within the backpack/custom routes files
});

它在那里吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61371729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档