Question

I am about to begin building a system that will require a set questions to be selected and saved as a checklist document for distribution to an arbitrary set of users.

I am intending to use Laravel 4 as my framework and Sentry 2 to handle permissions.

My question is:

If I use a user with, lets say, Admin level access to create a check list and I have, say 100, Inspector level users, can I restrict access to a single checklists for every individual users using Sentry? I ideally want to allow a user to have access to a single checklist (collection of checks).

Was it helpful?

Solution

You can easily create separate groups for your checklists:

// Create the group
$group = Sentry::createGroup(array(
    'name'        => 'Administrators',
    'permissions' => array(
        'checklists.admin' => 1,
        'checklists.view' => 1,
    ),
));

// Create the group
$group = Sentry::createGroup(array(
    'name'        => 'checklists.view.101',
    'permissions' => array(
        'checklists.view.101' => 1,
    ),
));

Add your user to a checklist group:

$user = Sentry::getUser()->addGroup( Sentry::getGroupProvider()->findByName('Checklist101') );

And check if it has access to it:

return $user->hasAnyAccess(['checklists.view', 'checklists.view.101'])

In this case, if your user is administrator, it will also be able to view it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top