%PDF- %PDF-
Direktori : /home/graphicd/www/vebto/common/Auth/Roles/ |
Current File : /home/graphicd/www/vebto/common/Auth/Roles/CrupdateRole.php |
<?php namespace Common\Auth\Roles; use Common\Auth\Permissions\Traits\SyncsPermissions; use Arr; class CrupdateRole { use SyncsPermissions; /** * @var Role */ private $role; /** * @param Role $role */ public function __construct(Role $role) { $this->role = $role; } /** * @param array $data * @param Role $role * @return Role */ public function execute($data, $role = null) { if ( ! $role) { $role = $this->role->newInstance([]); } $attributes = [ 'name' => $data['name'], 'description' => $data['description'] ?? null, 'default' => $data['default'] ?? false, 'guests' => $data['guests'] ?? false, 'type' => $data['type'] ?? 'sitewide', ]; $role->fill($attributes)->save(); // always sync permissions, detach all if "null" is given as permissions $this->syncPermissions($role, Arr::get($data, 'permissions', [])); return $role; } }