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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBnach vorne
2022-05-02 09:00:163996Durchsuche

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"
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

Hinzufügen Rollen für Benutzer

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"

Berechtigungen für Benutzer entfernen

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

class User extends Authenticatable
{

    use HasRoles;  // 加载角色相关信息
    .....

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']);// 创建权限

Berechtigungen zu einer Rolle hinzufügen

$user->givePermissionTo('edit articles');

Eine Berechtigung widerrufen und eine neue hinzufügen

$user->assignRole('writer');

$user->assignRole(['writer', 'admin']);

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

$role->givePermissionTo('edit articles');

Berechtigungen von einer Rolle entfernen

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

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

$user->getRoleNames();
Ruft ab Die Rollensammlung des Benutzers

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

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

$role->revokePermissionTo($permission);
$permission->removeRole($role);
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;

[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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen