2016-05-16 63 views
0

我已閱讀laravel 5.1中的政策和門,並且來自4.2.11。一個新手拉拉維爾5.1。Laravel 5.1 ACL使用spatie/laravel權限

我在laravel上有一個巨大的項目,我將需要建立ACL或相同。 我已經嘗試使用這個名爲spatie/laravel-permission的軟件包併成功設置它。

然後我繼續前進,試圖弄清楚遷移是否被創建,並且你得到一些開箱即用的鍋爐板。

儘管我在理解方面失敗了,那麼如果管理員想要通過控制器中的某些方法直接從前端分配多個角色和權限,那麼會怎麼做呢?

我曾嘗試從php artisan tinker分配,多個角色和權限。

我有一個方法assignRole()我想分配給管理員直接分配給用戶的多個角色和權限。

在包中定義了assignRole()和givePermissions()方法,我將如何利用這些?

按車型而言,我在我的模板

@foreach($users as $user) 
{{$user->email}} 
@foreach($user->roles as $role) 
{{$role->name}} 
@endforeach 
@foreach($user->permisssions as $permission) 
{{$permission->name}} 
@endforeach 
@endforeach 

這說明我的身份驗證的用戶權限都試過了。

我Controller.php這樣

public function showRolesandpermission(){ 

$users = Auth::user(); 

return view("admin.assignrole", compact("users")); 

} 

public function update(Request $request, $id){ 

$user = User::whereID($id)->firstOrFail(); 


if(count($user)>0) 
{ 
$roles = []; 
$permissions = []; 
foreach(Role::all() as $r) 
      { 
       $roles[$r->id] = $r->name; 
      } 
foreach(Permission::all() as $permissions) 
      { 
       $permissions[$permissions->id] = $permissions->name; 
      } 
$role1 = Request::get("role"); 
$perm = Request::get("permissions"); 
if(isset($role1) && isset($perm)){ 

$user->roles->update([ 
$request->name = $request->name 

]); 

$user->permissions->update([ 
$request->name = $request->name 
]); 

$user->save(); 

return redirect::back(); 
} 
} 

} 

我怎麼能利用這一點,並直接從前端它的自我編輯的用戶權限?我們如何使用諸如多重選擇之類的東西並更新用戶角色和權限。

努力嘗試,但很少提示會有所幫助。

+0

我相信你是它得太多,它的簡單比它的外觀,嘗試複選框,而不是選擇多創建簡單前端。嘗試重建權限,而不是檢查某人是否擁有權限。另外請記住,用戶可以擁有多個角色和角色,可以爲用戶添加更多權限,而不僅僅是將相同的權限重複定義爲多個角色。以https://www.drupal.org/node/120614 drupals權限爲例。 – Gntem

+0

hey @GeoPhoenix,所以你的意思是說只爲用戶添加角色,而不是權限,一旦角色添加更多權限,權限就會照顧。但是我有什麼需要給同一個角色的不同權限,但僅限於特定類型的用戶? –

回答