/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $userId = \Authorizer::getResourceOwnerId(); $projectId = $request->project; if ($this->repository->isOwner($projectId, $userId) == false) { return ['error' => 'Access Forbidden']; } return $next($request); }
public function createFile($data) { try { $this->validator->with($data)->passesOrFail(); $project = $this->projectRepository->skipPresenter()->find($data['project_id']); $projectFile = $project->files()->create($data); $this->storage->put($projectFile->getFileName(), $this->filesystem->get($data['file'])); return $projectFile; } catch (ValidatorException $e) { return ["sucess" => false, "message" => $e->getMessageBag()]; } }
public function destroy($id) { try { $this->repository->delete($id); return ['success' => true, 'message' => 'Projeto deletado com sucesso!']; } catch (QueryException $e) { return ['error' => true, 'message' => 'Projeto não pode ser apagado pois existe um ou mais clientes vinculados a ele.']; } catch (ModelNotFoundException $e) { return ['error' => true, 'message' => 'Projeto não encontrado.']; } catch (\Exception $e) { return ['error' => true, 'message' => 'Ocorreu algum erro ao excluir o projeto.']; } }
private function checkProjectMember($projectId) { $userId = Authorizer::getResourceOwnerId(); return $this->repository->hasMember($projectId, $userId); }