【问题标题】:Troubling In Laravel Roles and permissionLaravel 角色和权限问题
【发布时间】:2021-02-02 11:35:46
【问题描述】:

这是我的管理中间件,在我的中间件中我使用了管理守卫。我第一次在我的项目中使用 Laravel 角色和权限。但是当我为中间件的角色和权限编写代码时,我无法访问管理面板。

什么是错误?我现在能做什么?我的中间件代码中是否有任何逻辑错误?

<?php
    
namespace App\Http\Middleware;

use Illuminate\Support\Facades\Route;
use Closure;
use Session;
use App\Admin;
use Auth;

class CheckRole {
    public function handle($request, Closure $next) {
        if (Auth::guard('admin')->check() && Admin::where(['status' => '1'])) {

            $adminDetails = Admin::where('email', Session::get('remember_token'))->first();
            $adminDetails = json_decode(json_encode($adminDetails), true);
            if ($adminDetails['type'] === "admin") {
                $adminDetails['categories_access'] = 1;
                $adminDetails['products_access'] = 1;
                $adminDetails['orders_access'] = 1;
                $adminDetails['users_access'] = 1;
            }
            Session::put('adminDetails', $adminDetails);

            // Get Current Path
            $currentPath = Route::getFacadeRoot()->current()->uri();

            if ($currentPath === "admin/view-category" && Session::get('adminDetails')['categories_access'] == 0) {
                return redirect('/admin/dashboard')->with('flash_message_error', 'You have no access for this module');
            }

            if ($currentPath === "admin/view-product" && Session::get('adminDetails')['products_access'] == 0) {
                return redirect('/admin/dashboard')->with('flash_message_error', 'You have no access for this module');
            }

            if ($currentPath === "admin/add-product" && Session::get('adminDetails')['products_access'] == 0) {
                return redirect('/admin/dashboard')->with('flash_message_error', 'You have no access for this module');
            }

            return $next($request);
        }

        return redirect('admin/login');
    }
}

【问题讨论】:

    标签: laravel permissions middleware roles


    【解决方案1】:

    我相信你走错了路。您可以使用一些著名的角色权限包,例如 spatie 权限,从这里查看文档:https://spatie.be/docs/laravel-permission/v3/introduction

    【讨论】:

      猜你喜欢
      • 2017-09-13
      • 2014-09-15
      • 2019-04-27
      • 2019-07-31
      • 1970-01-01
      • 2022-01-01
      • 2011-07-26
      • 2021-01-03
      • 1970-01-01
      相关资源
      最近更新 更多