2016-05-16 23 views
0

Ich habe gelesen über die Politik und Tor in Laravel 5.1 und kommen von 4.2.11. Ein Neuling für Laravel 5.1.Laravel 5.1 ACL mit spatie/laravel-Erlaubnis

Ich habe ein riesiges Projekt auf Laravel und ich werde ACL oder das gleiche bauen müssen. Ich habe versucht, dieses Paket mit der Bezeichnung spatie/laravel-permission zu verwenden und es erfolgreich einzurichten.

Ich ging dann weiter und versuchte herauszufinden, dass die Migrationen erstellt werden und Sie einige Kesselplatte aus der Box bekommen.

Obwohl ich in Bezug auf das Verständnis, was fehlt, wenn der Administrator mehrere Rollen und Berechtigungen direkt vom Frontend mit einigen Methoden in Controllern zuweisen möchten, wie würde man es tun?

Ich habe versucht, zuweisen, mehrere Rollen und die Erlaubnis von php artisan tinker.

Ich habe eine Methode assignRole(), wo ich mehrere Rollen und Berechtigungen für Benutzer direkt von admin zugewiesen zuweisen möchte.

Es gibt die Methode assignRole() und givePermissions(), die im Paket definiert ist, wie würde ich diese nutzen?

sich nach den Models sind besorgt, ich habe versucht, in meiner Vorlage

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

Das zeigt mir die authentifizierte Benutzer-Berechtigungen.

mein 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(); 
} 
} 

} 

Wie kann ich diese nutzen und den Benutzern die Berechtigung direkt vom Frontend es selbst bearbeiten ?? Wie können wir die Rolle und die Berechtigung von Benutzern auswählen und aktualisieren?

Hartes Versuchen, aber kleiner Hinweis würde helfen.

+0

ich glaube Sie es Grübeln, seine einfacher als es aussieht, versuchen einfacher Frontends mit Checkboxen zu schaffen. Versuchen Sie, Berechtigungen neu zu erstellen, anstatt zu prüfen, ob jemand eine Berechtigung hat oder nicht. Denken Sie auch daran, dass ein Benutzer mehrere Rollen haben kann, und Rollen können einem Benutzer mehr Berechtigungen hinzufügen, anstatt dieselben Berechtigungen immer wieder in mehreren Rollen neu zu definieren. Nehmen Sie https://www.drupal.org/node/120614 drupals Berechtigungen als Beispiel. – Gntem

+0

hey @GeoPhoenix, also du meinst zu sagen, nur die Rollen für die Benutzer hinzufügen, nicht die Berechtigungen, und die Erlaubnis würde darauf achten, sobald die Rollen mehr Berechtigungen hinzufügen. Aber was ich brauche, um der gleichen Rolle verschiedene Berechtigungen zu geben, aber nur für eine bestimmte Art von Benutzer? –

Antwort

1

Checkout Laravel Rucksack Permission Manager. Es ist auf spatie/laravel-permission aufgebaut und bietet auch eine nette GUI um die Berechtigungen zu verwalten. Könnte sein, was du brauchst. statt select multiple

https://github.com/Laravel-Backpack/permissionmanager

+0

erfordert dies Rucksack? Gibt es eine FOSS-Lösung? – Alex