laravel sentry не обновляет записи разрешений групп в таблице групп

В настоящее время я рассматриваю проект laravel, используя Sentry для аутентификации. Каждый маршрут будет иметь разрешение в таблице групп, созданной Sentry.

Например строки в таблицах групп, я использую mongodb

{
"name": "Admins",
"permissions": "{\"task1.create\":1,\"task1.edit\":1,\"task1.delete\":1}",
"created_at": ISODate("2015-10-22T01:16:57.118Z"),
"user_ids": [
"547c2b5aabb1ce1752318f27",
"54d82fa1e471f7cf438b4569",
]
}

когда я добавляю новый маршрут в rout.php, но Sentry не обновляет разрешения групп

Например, я добавляю task2 так же, как task1, и я хочу, чтобы таблица групп выглядела как

{
"name": "Admins",
"permissions": "{\"task1.create\":1,\"task1.edit\":1,\"task1.delete\":1,\"task2.create\":1,\"task2.edit\":1,\"task2.delete\":1}",
"created_at": ISODate("2015-10-22T01:16:57.118Z"),
"user_ids": [
"547c2b5aabb1ce1752318f27",
"54d82fa1e471f7cf438b4569",
]
}

Как я могу это сделать, есть ли команда или что-то для обновления таблицы групп?

0

Решение

Вам необходимо вручную обновить группу. Вы можете создать страницу, чтобы обновить разрешение.

Вот псевдокод для обновления группы.

try
{
// Find the group using the group id
$group = Sentry::findGroupById(1);

// Update the group details
$group->name = 'Users';
$group->permissions = array(
'admin' => 1,
'users' => 1,
);

// Update the group
if ($group->save())
{
// Group information was updated
}
else
{
// Group information was not updated
}
}
catch (Cartalyst\Sentry\Groups\NameRequiredException $e)
{
echo 'Name field is required';
}
catch (Cartalyst\Sentry\Groups\GroupExistsException $e)
{
echo 'Group already exists.';
}
catch (Cartalyst\Sentry\Groups\GroupNotFoundException $e)
{
echo 'Group was not found.';
}

Для получения дополнительной информации проверьте руководство: https://cartalyst.com/manual/sentry/2.1#example-8

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]