public function deleteOrFail($project_id)
 {
     if (Project::find($project_id)) {
         return $this->find($project_id)->delete();
     }
     return "Error: project not found";
 }
 public function isMember($project, $member)
 {
     try {
         $projeto = $this->project->find($project);
         foreach ($projeto->members as $m) {
             if ($m->id == $member) {
                 return true;
             }
         }
         return false;
     } catch (ValidatorException $e) {
         return response()->json(['error' => true, 'message' => $e->getMessageBag()]);
     } catch (ModelNotFoundException $e) {
         return response()->json(['error' => true, 'message1' => $e->getMessage(), 'message2' => 'Projeto ID ' . $project . ' nao encontrado.']);
     }
 }
 public function findMemberAssociation($project_id, $user_id)
 {
     // assume-se que o project_id ja foi checado na camada de servico
     $project = Project::find($project_id);
     foreach ($project->memberAssociations as $pm) {
         if ($pm->user_id == $user_id) {
             return $pm;
         }
     }
     return null;
 }
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $project_id = $request->route('project') ? $request->route('project') : $request->all()['project_id'];
     $user_id = \Authorizer::getResourceOwnerId();
     if (is_null(Project::find($project_id))) {
         return Errors::invalidId($project_id);
     }
     if (!$this->repository->isMember($project_id, $user_id)) {
         return Errors::basic('Acesso negado! Você não é membro deste projeto.');
     }
     return $next($request);
 }
 public function find($project_id, $member_id)
 {
     $pm = ProjectMember::find($member_id);
     if (is_null($pm)) {
         return Errors::invalidId($member_id);
     }
     if (is_null(Project::find($project_id))) {
         return Errors::invalidId($project_id);
     }
     if ($pm->project_id != $project_id) {
         return Errors::basic("Falha. Projeto " . $project_id . " nao possui membro " . $member_id);
     }
     return $this->repository->find($member_id);
 }
Пример #6
0
 public function find($project_id, $task_id)
 {
     $task = ProjectTask::find($task_id);
     if (is_null($task)) {
         return Errors::invalidId($task_id);
     }
     if (is_null(Project::find($project_id))) {
         return Errors::invalidId($project_id);
     }
     if ($task->project_id != $project_id) {
         return Errors::basic("Falha. Projeto " . $project_id . " nao possui a tarefa " . $task_id);
     }
     return $this->repository->find($task_id);
 }
Пример #7
0
 public function find($project_id, $note_id)
 {
     $note = ProjectNote::find($note_id);
     if (is_null($note)) {
         return Errors::invalidId($note_id);
     }
     if (is_null(Project::find($project_id))) {
         return Errors::invalidId($project_id);
     }
     if ($note->project_id != $project_id) {
         return Errors::basic("Falha. Projeto " . $project_id . " nao possui a nota " . $note_id);
     }
     return $this->repository->find($note_id);
 }
Пример #8
0
 public function createFile(array $data)
 {
     try {
         $this->validator->with($data)->passesOrFail();
         $project = Project::find($data['project_id']);
         if (is_null($project)) {
             return Errors::invalidId($data['project_id']);
         }
         $user_id = \Authorizer::getResourceOwnerId();
         if (!$this->projectRepository->isMember($data['project_id'], $user_id)) {
             return Errors::basic('Acesso negado. Você não é membro do projeto selecionado.');
         }
         $data['extension'] = $data['file']->getClientOriginalExtension();
         $projectFile = $this->repository->create($data);
         $nome = $projectFile->id . "." . $data['extension'];
         $arquivo = $this->filesystem->get($data['file']);
         $this->storage->put($nome, $arquivo);
         return ['message' => 'Arquivo criado'];
     } catch (ValidatorException $e) {
         return Errors::basic($e->getMessageBag());
     }
 }
Пример #9
0
 public function removeMember($project_id, $member_id)
 {
     $project = Project::find($project_id);
     if (is_null($project)) {
         return Errors::invalidId($project_id);
     }
     if (is_null(User::find($member_id))) {
         return Errors::invalidId($member_id);
     }
     if ($member_id == $project->owner_id) {
         return Errors::basic("Não é possível remover o dono do projeto.");
     }
     $pm = $this->repository->findMemberAssociation($project_id, $member_id);
     if (is_null($pm)) {
         return Errors::basic("Este usuário não é membro do projeto.");
     }
     return $this->projectMemberService->delete($pm->id);
 }
 public function delete($id)
 {
     $entity = Project::find($id);
     if (is_null($entity)) {
         return Errors::invalidId($id);
     }
     foreach ($entity->tasks as $task) {
         $this->projectTaskService->delete($task->id);
     }
     foreach ($entity->notes as $note) {
         $this->projectNoteService->delete($note->id);
     }
     foreach ($entity->memberAssociations as $pm) {
         $this->projectMemberService->delete($pm->id);
     }
     $this->repository->delete($id);
     return ['message' => "Registro deletado!"];
 }