/** * Attach permission to role * * @param Inoplate\Account\Domain\Commands\Models $administrator * @return void */ protected function attachPermissionToRole($role) { $permissions = $this->permissionRepository->all(); foreach ($permissions as $permission) { $this->bus->dispatch(new Commands\AttachPermissionToRole($role->id()->value(), $permission->id()->value())); } }
/** * Retrieve role and ensure role is exist * * @param mixed $id * @return AccountDomainModels\Permission */ protected function retrievePermission($id) { $role = $this->permissionRepository->findById($id); if (is_null($role)) { throw new ValueNotFoundException("[(string){$id}] is not valid permission id"); } return $role; }
/** * Collect permissions * * @param string $name * @param string $description * @return void */ public function collect($name, $description, $module = '') { $permissionId = new AccountDomainModels\PermissionId($name); if (!$this->permissionRepository->findById($permissionId)) { $description = new FoundationDomainModels\Description(['description' => $description, 'module' => $module]); $permission = new AccountDomainModels\Permission($permissionId, $description); $this->permissionRepository->save($permission); } }
/** * Convert to domain model * * @param Model $role * @return null|Inoplate\Account\Domain\Models\Role */ protected function toDomainModel($role) { if (is_null($role)) { return $role; } else { $id = new AccountDomainModels\RoleId($role->id); $name = new FoundationDomainModels\Name($role->name); $description = new FoundationDomainModels\Description(array_except($role->toArray(), ['id', 'name', 'permissions'])); $matrices = $role->permissions(); $permissions = []; foreach ($matrices as $matrix) { $permissions[] = $this->permissionRepository->findById($matrix->permission_id); } return new AccountDomainModels\Role($id, $name, $description, $permissions); } }