/** * Metodo para trocar a entidadeAtiva atual * @param $id Id da entidade a ser acessada * @param $tipo Tipo da entidade (ong|empresa|perfil) */ public function getAcessarcomo($id, $tipo) { $entidadeAtiva_id = $id; $entidadeAtiva_tipo = $tipo; if ($entidadeAtiva_tipo && $entidadeAtiva_id) { $entidadeExiste = false; switch ($entidadeAtiva_tipo) { case 'ong': # Retorna a ong na lista de ongs do usuario, ou o perfil $ong = Ong::find($entidadeAtiva_id); $entidadeExiste = $ong && Auth::user()->ongs->find($id) ? true : false; break; case 'empresa': # Retorna a empresa na lista de empresas do usuario, ou o perfil $empresa = Empresa::find($entidadeAtiva_id); $entidadeExiste = $empresa && Auth::user()->empresas->find($id) ? true : false; break; case 'perfil': # Retorna a empresa na lista de empresas do usuario, ou o perfil $perfil = Perfil::find($entidadeAtiva_id); $entidadeExiste = $perfil && Auth::user()->perfil->id == $id ? true : false; break; default: break; } if ($entidadeExiste) { Session::put('entidadeAtiva_id', $entidadeAtiva_id); Session::put('entidadeAtiva_tipo', $entidadeAtiva_tipo); } return redirect('conectar'); } }
/** * Rota para ser acessada por post para trocar a entidadeAtiva, * @param $id id da entidade a ser acessada * @todo a ser deprecated, criado um metodo PaginaController@getAcessarcomo($id, $tipo) */ public function postTrocaentidadeativa($id, Request $request) { $entidadeAtiva_id = $id; $entidadeAtiva_tipo = $request->get('entidadeAtiva_tipo'); if ($entidadeAtiva_tipo && $entidadeAtiva_id) { $entidadeExiste = false; switch ($entidadeAtiva_tipo) { case 'ong': # Retorna a ong na lista de ongs do usuario, ou o perfil $ong = Ong::find($entidadeAtiva_id); $entidadeExiste = $ong ? true : false; break; case 'empresa': # Retorna a empresa na lista de empresas do usuario, ou o perfil $empresa = Empresa::find($entidadeAtiva_id); $entidadeExiste = $empresa ? true : false; break; default: break; } if ($entidadeExiste) { Session::put('entidadeAtiva_id', $entidadeAtiva_id); Session::put('entidadeAtiva_tipo', $entidadeAtiva_tipo); return redirect('conectar'); } } }
/** * Mostra a ong * * @param int $id * @return Response */ public function show($prettyUrl) { //se o dado da sessao for diferente da prettyUrl digitada, pegar da url $ong = Session::get('ong', null); if (is_null($ong) || $prettyUrl != $ong->getUrl()) { Session::forget('ong'); $prettyUrlObj = PrettyUrl::all()->where('url', $prettyUrl)->first(); //Se parametro for uma prettyURL, pegar objeto Ong. if (!is_null($prettyUrlObj)) { $ong = App\Ong::find($prettyUrlObj->prettyurlable_id); } else { $ong = App\Ong::find($prettyUrl); if (!$ong) { App::abort(404); } } } Session::put('perfil', $ong); $user = $ong->user; $perfil = $ong; $follow = $perfil->followPerfil; $followedBy = $perfil->followedByPerfil; $entidadeAtiva = $perfil; $posts = $ong->posts; return view('perfil.index', compact('user', 'perfil', 'follow', 'followedBy', 'posts', 'entidadeAtiva')); }
/** * Store a newly created resource in storage. * * @return Response */ public function store(CriarVagaRequest $request) { $ongResponsavel = Ong::find($request->get('ong')); //Checando se posso criar vagas if (!($ongResponsavel->user->id === Auth::user()->id)) { App::abort(403, "Apenas ongs tem permissão para criar Vagas"); } //Criando uma vaga com os campos do formulario $novaVaga = $ongResponsavel->vagas()->create($request->all()); $foto = Request::input('foto'); if ($foto && $foto > 0) { $novaVaga->fotos()->save(Foto::find($foto)); } // Faz um post de criação de vaga $novoPost = new Post(); $novoPost->descricao = "<h1><i class='fa fa-heart'></i></h1><a href='/vagas/" . $novaVaga->id . "' class=''>" . $ongResponsavel->nome . " criou uma vaga em " . $novaVaga->cidade->nome . "," . $novaVaga->estado->sigla . "</a>"; $novoPost->tipo_post = 'acontecimento'; //Salvando novoPost para entidadeAtiva $ongResponsavel->posts()->save($novoPost); //Setta o responsavel da vaga como sendo o perfil da ong $novaVaga->responsavel()->associate(Auth::user()->perfil); $novaVaga->push(); return redirect('vagas/' . $novaVaga->id); }