public function setPermissions($input)
{
if (isset($input['superuser'])) {
// If superuser permissions, then no need to assign any other permissions
$permissions = array('superuser' => 1);
} else {
$permissions = array('superuser' => 0);
$permissions['backend'] = isset($input['backend']) ? 1 : 0;
$access_areas = UserGroup::access_areas();
foreach ($access_areas['resourceful'] as $abbr => $full) {
$permissions[$abbr . '.index'] = isset($input["{$abbr}_index"]) ? 1 : 0;
$permissions[$abbr . '.show'] = isset($input["{$abbr}_show"]) ? 1 : 0;
$permissions[$abbr . '.create'] = isset($input["{$abbr}_create"]) ? 1 : 0;
$permissions[$abbr . '.edit'] = isset($input["{$abbr}_edit"]) ? 1 : 0;
$permissions[$abbr . '.destroy'] = isset($input["{$abbr}_destroy"]) ? 1 : 0;
}
foreach ($access_areas['others'] as $name => $all_permissions) {
foreach ((array) $all_permissions as $permission => $desc) {
$permissions["{$name}.{$permission}"] = isset($input["{$name}_{$permission}"]) ? 1 : 0;
}
}
foreach ($access_areas['modules'] as $alias => $name) {
$alias_lower = Str::lower($alias);
$permissions["modules.{$alias_lower}.index"] = isset($input["modules_{$alias}_index"]) ? 1 : 0;
$permissions["modules.{$alias_lower}.show"] = isset($input["modules_{$alias}_show"]) ? 1 : 0;
$permissions["modules.{$alias_lower}.create"] = isset($input["modules_{$alias}_create"]) ? 1 : 0;
$permissions["modules.{$alias_lower}.edit"] = isset($input["modules_{$alias}_edit"]) ? 1 : 0;
$permissions["modules.{$alias_lower}.destroy"] = isset($input["modules_{$alias}_destroy"]) ? 1 : 0;
}
}
return $permissions;
}