/**
  * 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');
         }
     }
 }
Beispiel #3
0
 /**
  * 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);
 }