public function delete($task_id)
 {
     $task = ProjectTask::find($task_id);
     if (is_null($task)) {
         return Errors::invalidId($task_id);
     }
     $user_id = \Authorizer::getResourceOwnerId();
     if (!$this->projectRepository->isMember($task->project_id, $user_id)) {
         return Errors::basic('Acesso negado. Você não é membro do projeto desta tarefa.');
     }
     $this->repository->delete($task_id);
     return ['message' => "Registro deletado!"];
 }
 public function delete($file_id)
 {
     $projectFile = ProjectFile::find($file_id);
     if (is_null($projectFile)) {
         return Errors::invalidId($file_id);
     }
     $user_id = \Authorizer::getResourceOwnerId();
     if (!$this->projectRepository->isMember($projectFile->project_id, $user_id)) {
         return Errors::basic('Acesso negado. Você não é membro do projeto deste arquivo.');
     }
     $nome = $projectFile->id . '.' . $projectFile->extension;
     $this->repository->delete($file_id);
     $this->storage->delete($nome);
     return ['message' => "Registro e arquivo deletados!"];
 }
 public function addMember($data, $project_id)
 {
     $project = Project::find($project_id);
     if (is_null($project)) {
         return Errors::invalidId($project_id);
     }
     if (!array_key_exists('user_id', $data)) {
         return Errors::basic("Campo user_id obrigatorio");
     }
     $user_id = $data['user_id'];
     // Como o create ja insere o dono como membro, nao haveria necessidade desta verificacao
     if ($user_id == $project->owner_id) {
         return Errors::basic("Este usuario ja eh o dono do projeto");
     }
     if ($this->repository->isMember($project_id, $user_id)) {
         return Errors::basic("Este usuario ja eh membro do projeto");
     }
     $data['project_id'] = $project_id;
     return $this->projectMemberService->create($data);
 }
 public function update(array $data, $file_id)
 {
     $file = ProjectFile::find($file_id);
     if (is_null($file)) {
         return Errors::invalidId($file_id);
     }
     try {
         $this->validator->with($data)->passesOrFail(ValidatorInterface::RULE_UPDATE);
         if ($data['project_id'] != $file->project_id) {
             return Errors::basic('Você não pode alterar o projeto do arquivo.');
         }
         if ($data['extension'] != $file->extension) {
             return Errors::basic('Você não pode alterar a extensão do arquivo.');
         }
         $user_id = \Authorizer::getResourceOwnerId();
         if (!$this->projectRepository->isMember($file->project_id, $user_id)) {
             return Errors::basic('Acesso negado. Você não é membro do projeto selecionado.');
         }
         return $this->repository->update($data, $file_id);
     } catch (ValidatorException $e) {
         return Errors::basic($e->getMessageBag());
     }
 }
 private function checkProjectMember($projectId)
 {
     return $this->repository->isMember($projectId, Authorizer::getResourceOwnerId());
 }
 /**
  * @param $project_id
  * @return array
  */
 public function checkProjectMember($project_id)
 {
     $user_id = \Authorizer::getResourceOwnerId();
     return $this->repository->isMember($project_id, $user_id);
 }
 public function isMember($projectId, $userId)
 {
     return $this->repository->isMember($projectId, $userId);
 }