50dc79bc8d
* Refactor and add importer to Installer module #443 * Refactor for finances to use in import * Import groups into roles * Formatting * Formatting * Add interface in installer for import * Notes about importing * Check for installer folder * Formatting * Fix pirep->user mapping * Unused import * Formatting
48 lines
966 B
PHP
48 lines
966 B
PHP
<?php
|
|
|
|
namespace App\Services;
|
|
|
|
use App\Contracts\Service;
|
|
use App\Models\Role;
|
|
use App\Repositories\RoleRepository;
|
|
|
|
class RoleService extends Service
|
|
{
|
|
private $roleRepo;
|
|
|
|
public function __construct(RoleRepository $roleRepo)
|
|
{
|
|
$this->roleRepo = $roleRepo;
|
|
}
|
|
|
|
/**
|
|
* Update a role with the given attributes
|
|
*
|
|
* @param Role $role
|
|
* @param array $attrs
|
|
*
|
|
* @return Role
|
|
*/
|
|
public function updateRole(Role $role, array $attrs)
|
|
{
|
|
$role->update($attrs);
|
|
$role->save();
|
|
|
|
return $role;
|
|
}
|
|
|
|
/**
|
|
* @param Role $role
|
|
* @param array $permissions
|
|
*/
|
|
public function setPermissionsForRole(Role $role, array $permissions)
|
|
{
|
|
// Update the permissions, filter out null/invalid values
|
|
$perms = collect($permissions)->filter(static function ($v, $k) {
|
|
return $v;
|
|
});
|
|
|
|
$role->permissions()->sync($perms);
|
|
}
|
|
}
|