Heim > PHP-Framework > Laravel > Lassen Sie uns über das Erweiterungspaket für die Berechtigungsverwaltung in Laravel sprechen

Lassen Sie uns über das Erweiterungspaket für die Berechtigungsverwaltung in Laravel sprechen

WBOY
Freigeben: 2022-06-06 19:42:39
nach vorne
3968 Leute haben es durchsucht

Dieser Artikel bringt Ihnen relevantes Wissen über laravel, das hauptsächlich die Probleme im Zusammenhang mit dem Erweiterungspaket der Berechtigungsverwaltung vorstellt. Ich hoffe, es wird für alle hilfreich sein.

Lassen Sie uns über das Erweiterungspaket für die Berechtigungsverwaltung in Laravel sprechen

【Verwandte Empfehlung: Laravel-Video-Tutorial

Was ist eine Mehrbenutzerrolle?

Zum Beispiel hat das Forum, das wir normalerweise verwenden

Webmaster ------- die höchste Autorität und ist das Wichtigste. Es ist die Berechtigung, Benutzer zu verwalten.

Administrator ----- Die Verwaltung einiger Artikel wird keine großen Auswirkungen auf die Website haben

Normale Benutzer ---- können nur einfache Ergänzungen, Löschungen, Änderungen, Kommentare usw. an ihren eigenen Artikeln vornehmen

Besucher ---- können nur grundlegendes Durchsuchen durchführen

Tabellen erstellen


Rollen --- ---- Rolleninformationen: Webmaster usw.

    permissions ------- Berechtigungsinformationen: Verwaltungsinhalt usw.
  • model_has_roles ------- Modellentsprechende Rolle = Benutzerentsprechende Rolle
  • role_has_permissions --- ---- Berechtigungen entsprechend der Rolle = Welche Berechtigungen hat die Rolle
  • model_has_permissions ------- Berechtigungen entsprechend dem Modell = Berechtigungen, die der Benutzer hat
  • Lassen Sie uns die Beziehung klären

Permissions (Berechtigungen) und

Roles

(Rollen), eine Berechtigung kann mehreren Rollen gehören und eine Rolle kann mehrere Berechtigungen haben. Die Beziehung ist: viele-zu-viele (role_has_permissions) Benutzer und

Berechtigungen

eins-zu-viele (model_has_permissions) Benutzer und

Rolle

eins-zu-viele (model_has_roles) Mit anderen Worten, die Beziehung ist klar, wann der Benutzer welche Rolle oder was hat Berechtigungen, der entsprechende Vorgang wird ausgeführt

1. Installieren Sie das Erweiterungspaket

composer require "spatie/laravel-permission:~2.7"
Nach dem Login kopieren
Datenbankmigrationsdatei generieren:

php artisan seller:publish --provider="SpatiePermissionPermissionServiceProvider" --tag="migrations"

Sie können sehen Zugehörige Tabelleninformationen im Migrationsverzeichnis, Datenbankmigration ausführen.

php artisan migrate
Nach dem Login kopieren

Hinzufügen Rollen für Benutzer

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
Nach dem Login kopieren

Berechtigungen für Benutzer entfernen

.....
use Spatie\Permission\Traits\HasRoles;  // use

class User extends Authenticatable
{

    use HasRoles;  // 加载角色相关信息
    .....
Nach dem Login kopieren

Berechtigungen zu Rollen hinzufügen

use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

.....
$role = Role::create(['name' => 'writer']);  // 创建角色
$permission = Permission::create(['name' => 'edit articles']);// 创建权限
Nach dem Login kopieren

Berechtigungen zu einer Rolle hinzufügen

$user->givePermissionTo('edit articles');
Nach dem Login kopieren

Eine Berechtigung widerrufen und eine neue hinzufügen

$user->assignRole('writer');

$user->assignRole(['writer', 'admin']);
Nach dem Login kopieren

Rolle des aktuellen Benutzers abrufen. Sammlung
$user->revokePermissionTo('edit articles');
Nach dem Login kopieren
Synchronisieren mehrfach Rollen zu Berechtigungen

$role->givePermissionTo('edit articles');
Nach dem Login kopieren
Nach dem Login kopieren

Berechtigungen von einer Rolle entfernen

$role->givePermissionTo('edit articles');
Nach dem Login kopieren
Nach dem Login kopieren
Den aktuellen Benutzer abrufen Die Berechtigungsliste

$user->syncPermissions(['edit articles', 'delete articles']);
Nach dem Login kopieren
Ruft alle Berechtigungen des Benutzers ab, entweder direkte Berechtigungen (odel_has_permissions) oder von der Rolle oder von beiden

$user->getRoleNames();
Nach dem Login kopieren
Ruft ab Die Rollensammlung des Benutzers

$role->syncPermissions($permissions); //  @param array $permissions

$permission->syncRoles($roles);
Nach dem Login kopieren
Gibt Benutzer mit der angegebenen Rolle zurück. | Gibt nur Benutzer mit der Rolle „Autor“ zurück.

$role->revokePermissionTo($permission);
$permission->removeRole($role);
Nach dem Login kopieren
Gibt Benutzer mit angegebenen Berechtigungen zurück

Überprüfen Sie, ob eine bestimmte Berechtigung vorhanden ist Überprüfen Sie, ob eine Rolle über bestimmte Berechtigungen verfügt. Löschen Sie bestimmte Berechtigungen der Cache

$permissions = $user->permissions;
Nach dem Login kopieren

[Verwandte Empfehlungen:

Laravel-Video-Tutorial

]

Das obige ist der detaillierte Inhalt vonLassen Sie uns über das Erweiterungspaket für die Berechtigungsverwaltung in Laravel sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage