2017-10-16 6 views
0

私はadminとeditorの2つの役割を作成しました。あなたはまだしていて、私はもちろんlaravel-permissionモジュール、ファイルマネージャ、または設定を保護する方法は?

  @role('admin') 
      <li class="header">{{ trans('backpack::base.administration') }}</li> 
      <!-- ================================================ --> 
      <!-- ==== Recommended place for admin menu items ==== --> 
      <!-- ================================================ --> 
      <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/dashboard') }}"><i class="fa fa-dashboard"></i> <span>{{ trans('backpack::base.dashboard') }}</span></a></li> 
      <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/elfinder') }}"><i class="fa fa-files-o"></i> <span>File manager</span></a></li> 
      <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/backup') }}"><i class="fa fa-hdd-o"></i> <span>Backups</span></a></li> 
      <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/log') }}"><i class="fa fa-terminal"></i> <span>Logs</span></a></li> 
      <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/setting') }}"><i class="fa fa-cog"></i> <span>Settings</span></a></li> 
      <!-- ======================================= --> 
      <li class="header">{{ trans('backpack::base.user') }}</li> 
      <!-- Users, Roles Permissions --> 
      <li class="treeview"> 
       <a href="#"><i class="fa fa-group"></i> <span>Users, Roles, Permissions</span> <i class="fa fa-angle-left pull-right"></i></a> 
       <ul class="treeview-menu"> 
        <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/user') }}"><i class="fa fa-user"></i> <span>Users</span></a></li> 
        <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/role') }}"><i class="fa fa-group"></i> <span>Roles</span></a></li> 
        <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/permission') }}"><i class="fa fa-key"></i> <span>Permissions</span></a></li> 
       </ul> 
      </li> 
      @endrole 
      <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/logout') }}"><i class="fa fa-sign-out"></i> <span>{{ trans('backpack::base.logout') }}</span></a></li> 
     </ul> 

を使用して直接リソース/ビュー/ベンダー/バックパック/ベース/ INC/sidebar.blade.phpに、これらのモジュールのメニューを確保することができ、これは、終わりではありませんURLを入力して、エディタのモジュールに安全にアクセスします。ベンダーで/バックパック/ PermissionManagerの/ srcに/アプリ/ HTTP /コントローラ/ PermissionCrudController.php方法の設定が

Auth::user()->hasRole('admin') 

を使用して、エラーを投げるか、リダイレクトすることができますが...

これは良い解決策(書き込みではありませんベンダーのモジュールで)。私は何をすべきか?上記のモジュールへのエディタアクセスを保護する方法。申し訳ありませんがあなたのために簡単すぎる場合は、私はちょうどLaravelと楽しんで始めている

PS。 https://github.com/spatie/laravel-permission/issues/507

答えて

0

私は権限またはロールをチェックし、role:adminまたはpermission:adminを使用している人々をロックアウトし、このような何かするミドルウェアを作成することをお勧めしたい:

PermissionMiddleware.php:

<?php 
namespace App\Http\Middleware; 
use Closure; 
use Auth; 
class PermissionMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next, $permission) 
    { 
     if (Auth::guest()) { 
      return redirect('login'); 
     } 
     if (! $request->user()->can($permission)) { 
      abort(403); 
     } 
     return $next($request); 
    } 
} 

RoleMiddleware。 php:

<?php 
namespace App\Http\Middleware; 
use Closure; 
use Auth; 
class RoleMiddleware 
{ 
    /** 
    * Handle an incoming request. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Closure $next 
    * @return mixed 
    */ 
    public function handle($request, Closure $next, $role) 
    { 
     if (Auth::guest()) { 
      return redirect('login'); 
     } 
     if (! $request->user()->hasRole($role)) { 
      abort(403); 
     } 
     return $next($request); 
    } 
} 

これで、CRUDに経路を書き込むときにこれらを使用できるようになります。 Backpack \ Baseで作成されたルートを上書きする場合は、ファイルroutes/backpack/base.phpを作成して簡単に行うことができます。バックパックは、パッケージ内のファイルではなく、そのファイルをロードします。詳細はhttps://github.com/laravel-backpack/base#overwriting-functionalityを参照してください。

希望すると助かります!

関連する問題