/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $file_id = $request->file; $user_id = \Authorizer::getResourceOwnerId(); $file = ProjectFile::find($file_id); if (is_null($file)) { return Errors::invalidId($file_id); } if (!$this->repository->isMember($file->project_id, $user_id)) { return Errors::basic('Acesso negado! Você não é membro do projeto deste arquivo.'); } return $next($request); }
/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); DB::statement('SET foreign_key_checks = 0'); ProjectNote::truncate(); ProjectTask::truncate(); ProjectMember::truncate(); ProjectFile::truncate(); Project::truncate(); Client::truncate(); User::truncate(); OAuthClient::truncate(); DB::statement('SET foreign_key_checks = 1'); $this->call(UserTableSeeder::class); $this->call(ClientTableSeeder::class); $this->call(ProjectTableSeeder::class); $this->call(ProjectNoteTableSeeder::class); $this->call(ProjectMemberTableSeeder::class); $this->call(ProjectTaskTableSeeder::class); $this->call(OAuthClientTableSeeder::class); Model::reguard(); }
public function transform(ProjectFile $model) { return ['id' => $model->id, 'project_id' => $model->project->id, 'name' => $model->name, 'description' => $model->description, 'file' => $model->file, 'extension' => $model->extension, 'created_at' => $model->getCreatedAt(), 'updated_at' => $model->getUpdatedAt()]; }
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()); } }
public function includeProject(ProjectFile $projectFile) { return $this->collection($projectFile->project()->get(), new ProjectTransformer()); }
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!"]; }