%PDF- %PDF-
Direktori : /var/www/html/news/app/Repositories/Role/ |
Current File : /var/www/html/news/app/Repositories/Role/RolesEloquentRepository.php |
<?php namespace App\Repositories\Role; use App\Models\Role; use App\Repositories\Base\BaseEloquentRepository; use App\Repositories\User\UsersRepository; use Illuminate\Container\Container; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Collection; class RolesEloquentRepository extends BaseEloquentRepository implements RolesRepository { private $usersRepository; public function __construct(Container $container, Collection $collection, UsersRepository $usersRepository) { parent::__construct($container, $collection); $this->usersRepository = $usersRepository; } public function model() { return Role::class; } public function getRoles($user) { $user = $this->getUser($user); return $user->getRoles(); } private function getUser($user) { if ($user instanceof Model) { $user = $user->id; } $user = $this->usersRepository->findOrFail($user); return $user; } public function isRole($user, $role, $all = false) { $user = $this->getUser($user); return $user->isRole($role, $all = false); } public function isAll($user, $role) { $user = $this->getUser($user); return $user->isAll($role); } public function isOne($user, $role) { $user = $this->getUser($user); return $user->isOne($role); } public function hasRole($user, $role) { $user = $this->getUser($user); return $user->hasRole($role); } public function attachRole($user, $role) { $user = $this->getUser($user); return $user->attachRole($role); } public function detachRole($user, $role) { $user = $this->getUser($user); return $user->detachRole($role); } public function syncRoles($user, $roles) { $user = $this->getUser($user); return $user->syncRoles($roles); } public function detachAllRoles($user) { $user = $this->getUser($user); return $user->detachAllRoles(); } public function group($user) { $user = $this->getUser($user); return $user->group(); } }