exist - Wie implementiert man Sentry 2-Berechtigungen mit Laravel 4?



monolog sentry (2)

Grundsätzlich muss man ..

Erstellen Sie Ihre Gruppen

Sentry::getGroupProvider()->create([
    'name' => 'Super Administrators',
    'permissions' => [
        'system' => 1,
    ],
]);

Sentry::getGroupProvider()->create([
    'name' => 'Managers',
    'permissions' => [
        'system.products' => 1,
        'system.store' => 1,
        'system.profile' => 1,
    ],
]);

Legen Sie eine Gruppe für einen bestimmten Benutzer fest. In diesem Fall werden Manager für den aktuell angemeldeten Benutzer festgelegt

Sentry::getUser()->addGroup( Sentry::getGroupProvider()->findByName('Managers') );

Überprüfen Sie, ob ein Benutzer einen bestimmten Zugriff hat

if ( Sentry::getUser()->hasAnyAccess(['system','system.products']) )
{
    // Will be able to do a thing
}

Überprüfen Sie, ob ein Benutzer Super Administrator ist (nur diese Gruppe hat Zugriff auf das System)

if ( Sentry::getUser()->hasAnyAccess(['system']) )
{
    // Will be able to do a thing
}

Hol dir alle Gruppen von einem bestimmten Benutzer

try
{
    // Find the user using the user id
    $user = Sentry::getUserProvider()->findById(1);

    // Get the user groups
    $groups = $user->getGroups();
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
{
    echo 'User was not found.';
}

https://ffff65535.com

Ich versuche, Cartalyst Sentry 2 in meiner Website mit Laravel 4 zu bauen. Grundsätzlich verstehe ich nicht, wie Sie Berechtigungen implementieren.

Die Beispiele, die ich für Berechtigungen für eine Gruppe gesehen habe, geben als Beispiel Folgendes an:

{
    "name" : "Administrator",
    "permissions" : 
    {
        "user.create" : 1,
        "user.delete" : 1,
        "user.view"   : 1,
        "user.update" : 1
    }
}

SO legt dies Berechtigungen für die Admin-Gruppe fest. ABER wo sind diese Berechtigungen eingestellt?

In der Tabelle 'Gruppen' gibt es ein Feld namens Berechtigungen, das ein Textfeld ist - sind sie dort gesetzt - wenn ja wie? Oder sind diese in einem Modell oder Controller eingestellt?

Kann mich jemand Schritt für Schritt darauf hinweisen, wie man in einer Laravel 4 App arbeitet? Ich habe die unterstützenden Dokumente gelesen, die durch die Funktionen gehen, aber ich bin mir nicht sicher, wie ich die Daten einstellen soll, damit die Funktionen funktionieren.


In Ihrer groups legen Sie die Berechtigungen mit JSON fest.

Ich habe die folgenden Spalten:

id | name | permissions

Und eine Reihe:

1 | admin | {"admin":1, "create_news": 1}

users_groups mithilfe der Tabelle users_groups einen Benutzer einer Gruppe zu

Jetzt können Sie anhand des folgenden Beispiels überprüfen, ob ein Benutzer eine bestimmte Berechtigung hat:

$user = Sentry::getUser();
if ($user->hasAccess('create_news')) {
    echo "You can create a news item";
}
else {
    echo "You can't create a news item";
}