/** * Find the given view in the list of paths. * * @param string $name * @param array $paths * @return string * * @throws \InvalidArgumentException */ protected function findInPaths($name, $paths) { foreach ((array) $paths as $path) { foreach ($this->getPossibleViewFiles($name) as $file) { if ($this->files->exists($viewPath = $path.'/'.$file)) { return $viewPath; } } } throw new InvalidArgumentException("View [$name] not found."); } /** * Get an array of possible view files. * * @param string $name * @return array */ protected function getPossibleViewFiles($name) { return array_map(function ($extension) use ($name) { return str_replace('.', '/', $name).'.'.$extension; }, $this->extensions); } /** * Add a location to the finder. * * @param string $location * @return void
"View [public.opjp_new.auth.privacyPolicy] not found."
} } /** * Get the fully qualified location of the view. * * @param string $name * @return string */ public function find($name) { if (isset($this->views[$name])) { return $this->views[$name]; } if ($this->hasHintInformation($name = trim($name))) { return $this->views[$name] = $this->findNamespacedView($name); } return $this->views[$name] = $this->findInPaths($name, $this->paths); } /** * Get the path to a template with a named path. * * @param string $name * @return string */ protected function findNamespacedView($name) { list($namespace, $view) = $this->parseNamespaceSegments($name); return $this->findInPaths($view, $this->hints[$namespace]); } /** * Get the segments of a template with a named path. * * @param string $name * @return array
"public.opjp_new.auth.privacyPolicy"
array:1 [ 0 => "/var/www/html/resources/views" ]
{ $data = array_merge($mergeData, $this->parseData($data)); return tap($this->viewInstance($path, $path, $data), function ($view) { $this->callCreator($view); }); } /** * Get the evaluated view contents for the given view. * * @param string $view * @param array $data * @param array $mergeData * @return \Illuminate\Contracts\View\View */ public function make($view, $data = [], $mergeData = []) { $path = $this->finder->find( $view = $this->normalizeName($view) ); // Next, we will create the view instance and call the view creator for the view // which can set any data, etc. Then we will return the view instance back to // the caller for rendering or performing other view manipulations on this. $data = array_merge($mergeData, $this->parseData($data)); return tap($this->viewInstance($view, $path, $data), function ($view) { $this->callCreator($view); }); } /** * Get the first view that actually exists from the given list. * * @param array $views * @param array $data * @param array $mergeData * @return \Illuminate\Contracts\View\View */
"public.opjp_new.auth.privacyPolicy"
} if (! function_exists('view')) { /** * Get the evaluated view contents for the given view. * * @param string $view * @param array $data * @param array $mergeData * @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory */ function view($view = null, $data = [], $mergeData = []) { $factory = app(ViewFactory::class); if (func_num_args() === 0) { return $factory; } return $factory->make($view, $data, $mergeData); } }
"public.opjp_new.auth.privacyPolicy"
array:1 [ "privacyPolicy" => """ <p><strong>Política de Privacidade do sítio de Internet opjovem.gov.pt</strong></p>\r\n <p><strong> </strong></p>\r\n <p>A política de privacidade a seguir indicada descreve as nossas práticas relativas aos tipos de informação pessoal recolhida através da utilização da aplicação “Serviço” do Orçamento Participativo Jovem Portugal, no sítio <a href="http://www.opjovem.gov.pt">https://www.opjovem.gov.pt</a>.</p>\r\n <p>Este Serviço e o Sítio são desenvolvidos e geridos no âmbito do Orçamento Participativo Jovem Portugal.</p>\r\n <p>Esta política de privacidade explica como a equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal utiliza a informação pessoal recolhida através deste Serviço, de que forma é usada, com quem é partilhada, como é gerida, arquivada e protegida.</p>\r\n <p> </p>\r\n <p><strong>a) Funções das organizações envolvidas</strong></p>\r\n <p>A gestão de dados para este Sítio é da responsabilidade da equipa técnica do Instituto Português do Desporto e da Juventude, entidade coordenadora do Orçamento Participativo Jovem Portugal. Este pode, no entanto, no âmbito de parcerias que venha a estabelecer, partilhar o controlo, o processamento e o arquivamento dos dados com outras entidades.</p>\r\n <p> </p>\r\n <p><strong>b) Finalidades da Recolha de Dados</strong></p>\r\n <p>Os dados pessoais são recolhidos e geridos sob esta política com os seguintes propósitos:</p>\r\n <ul>\r\n <li>Garantir a autenticação única dos utilizadores, necessária para apresentar propostas e votar em projetos no âmbito do Orçamento Participativo Jovem Portugal.</li>\r\n <li>Monitorizar e avaliar a operacionalização do Orçamento Participativo Jovem Portugal;</li>\r\n <li>Comunicar com os/as utilizadores/as para qualquer fim que se ache necessário no âmbito restrito do Orçamento Participativo Jovem;</li>\r\n <li>Fornecer informações periódicas sobre o conteúdo do Site, de acordo com as preferências de notificação configuradas por cada utilizador;</li>\r\n <li>Cumprir as leis da União Europeia e de Portugal.</li>\r\n </ul>\r\n <p> </p>\r\n <p>Em caso algum, o Controlador de Dados pode:</p>\r\n <ul>\r\n <li>Duplicar ou distribuir quaisquer dados pessoais recolhidos neste Sítio para finalidade diferentes da definida nessa <strong>Política de Privacidade.</strong></li>\r\n <li>Vender ou alugar quaisquer dados pessoais recolhidos neste Sítio, seja por que motivo for.</li>\r\n <li>Utilizar quaisquer dados pessoais recolhidos neste Sítio para comercialização ou quaisquer fins comerciais.</li>\r\n </ul>\r\n <p>Em todo o caso, serão divulgadas apenas informações que não identifiquem pessoalmente os usuários, agrupando e agregando informações de forma a não ser possível identificar dados pessoais.</p>\r\n <p> </p>\r\n <p><strong>c) Dados recolhidos</strong></p>\r\n <p><strong><u>Dados pessoais: </u></strong></p>\r\n <p>Para registar novos utilizadores, os dados pessoais recolhidos neste Sítio são os seguintes.</p>\r\n <ul>\r\n <li>Nome</li>\r\n <li>Endereço de e-mail</li>\r\n <li>Sexo</li>\r\n <li>Ano de Nascimento</li>\r\n <li>Habilitações Literárias</li>\r\n <li>Concelho de Residência</li>\r\n <li>Telefone</li>\r\n <li>Documento de Identificação (número de Cartão de Cidadão ou Título de Residência)</li>\r\n </ul>\r\n <p> </p>\r\n <p><strong><u>Informação pessoal não identificável</u></strong></p>\r\n <p>O Serviço recolhe igualmente informações, que não são de identificação pessoal, semelhante à que os motores de busca e servidores da Internet habitualmente disponibilizam, tais como, o tipo de motor de busca, a preferência de idioma, o sítio de referência ou data e hora de cada solicitação do visitante.</p>\r\n <p> </p>\r\n <p><strong><u>Informação pessoal potencialmente identificável</u></strong></p>\r\n <p>O Serviço recolhe informações potencialmente identificáveis, tais como os endereços IP (Internet Protocol). No entanto, a equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal não utiliza essas informações para identificar os seus visitantes e não divulga essas informações, adotando as mesmas medidas de segurança e privacidade descritas nesta política para os dados pessoais.</p>\r\n <p> </p>\r\n <p><strong><u>Conteúdos criados pelo utilizador e informações pessoais identificáveis</u></strong></p>\r\n <p>O Serviço pode acolher discussões, comentários, propostas e outros conteúdos criados pelos utilizadores durante o uso do sítio de Internet.</p>\r\n <p>Estes Conteúdos Criados pelo Utilizador podem identificar o utilizador pessoalmente para terceiros e, em alguns casos, para o público em geral. Os utilizadores não devem disponibilizar informação de identificação pessoal através do conteúdo publicado neste Site.</p>\r\n <p>Cada utilizador pode proceder à configuração de privacidade relativa ao conteúdo publicado e sua visibilidade na Internet, assim como usar um pseudónimo e um endereço de e-mail anónimo.</p>\r\n <p>Para obter informações adicionais sobre o conteúdo criado pelo utilizador, consultar os Termos de Serviço (<a title="Termos de Serviço" href="/page/use_terms" target="_blank">link</a>).</p>\r\n <p>A equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal poderá propor, aos utilizadores deste Serviço, a resposta a questionários relativamente a:</p>\r\n <ul>\r\n <li>Experiência dos utilizadores com o Serviço;</li>\r\n <li>Outros temas relacionados com o Orçamento Participativo Jovem Portugal.</li>\r\n </ul>\r\n <p>A resposta a estes questionários é voluntária, tendo os utilizadores a liberdade de as fazerem ou lhes responderem.</p>\r\n <p> </p>\r\n <p><strong>d) Segurança e Integridade de Dados</strong></p>\r\n <p>A equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal tomará todas as medidas necessárias para proteger os dados pessoais e os conteúdos dos utilizadores contra perda e uso indevido, bem assim como acesso não autorizado, divulgação, alteração e destruição.</p>\r\n <p><strong> </strong></p>\r\n <p><strong><u>Segurança física de dados</u></strong></p>\r\n <p>A central de dados, na qual estes são arquivados e preservados, tem políticas de segurança restritas relativamente ao seu acesso físico. O acesso a esta central está circunscrito a elementos devidamente autorizados, sendo gerido através de dois níveis de segurança: chave física e alarme. Todo o acesso é registado no sistema de alarme e documentado nos procedimentos internos do prestador do serviço.</p>\r\n <p> </p>\r\n <p><strong><u>Segurança de </u></strong><strong><u>dados inform</u></strong><strong><u>áticos</u></strong></p>\r\n <p>A plataforma implementa mecanismos de segurança para proteger os dados e gerir o acesso a eles. Todos os dados, especialmente os pessoais, são protegidos através de componentes específicos, que apenas permitem o acesso a esses dados através de mecanismos de segurança. Todos os acessos têm políticas de validade limitada.</p>\r\n <p> </p>\r\n <p><strong>e) Preservação de dados pessoais</strong></p>\r\n <p>Os dados pessoais processados para qualquer finalidade não serão mantidos por mais tempo do que o necessário para esse fim e, em qualquer caso, não mais de um ano após o último acesso do utilizador ao Serviço.</p>\r\n <p> </p>\r\n <p><strong>f) Procedimentos de acesso aos dados pessoais</strong></p>\r\n <p>Cada utilizador tem o direito de aceder a todos os seus dados pessoais e informações recolhidas através deste Serviço e saber como essas informações são processadas. Se pretender saber quais as informações e dados pessoais recolhidos, deve dirigir-se, por escrito, ao Processador (es) de Dados).</p>\r\n <p> </p>\r\n <p><strong>g) Procedimentos de saída</strong></p>\r\n <p>Cada utilizador tem o direito de se retirar do Serviço e obter a remoção de todos os seus dados pessoais e informações recolhidas através deste Serviço, exceto se se tratar de uma questão legal. Se pretender faze-lo, deve dirigir-se, por escrito, ao Processador (es) de Dados.</p>\r\n <p> </p>\r\n <p><strong>h) Acesso de terceiros a dados pessoais</strong></p>\r\n <p>Para fornecer algumas funcionalidades do sítio de internet do Orçamento Participativo Jovem Portugal como no caso concreto da análise de candidaturas, e um alto nível de serviço, a equipa técnica responsável pela sua operacionalização pode partilhar dados de utilizadores com terceiros. Ver mais detalhes sobre os Serviços de Terceiros nos Termos de Serviço aqui (<a title="Termos de Serviço" href="/page/use_terms" target="_blank">link</a>).</p>\r\n <p> </p>\r\n <p><strong>i) Entidade responsável pela aprovação / revisão da política</strong></p>\r\n <p>Esta política foi desenvolvida pela equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal.</p>\r\n <p>Esta política poderá ser alterada no futuro, no âmbito dos princípios éticos referidos nos nossos Termos de Serviço. Qualquer política alterada entrará em vigor após a publicação neste Sítio, e serão feitos todos os esforços possíveis para comunicar essas alterações, seja por e-mail ou através do sítio.</p>\r\n <p> </p>\r\n <p><strong>j) Data de funcionamento da Versão e da Política</strong></p>\r\n <p>A versão atual da política de privacidade é o 1.1. É válida desde 25/05/2018 até que uma nova versão da política seja disponibilizada.</p>\r\n <p> </p>\r\n <p><strong>k) Enquadramento legal da política</strong></p>\r\n <p>O quadro regulamentar para a proteção e gestão de dados obedece às seguintes normas e regulamentos da União Europeia e das leis de Portugal, onde o Serviço está efetivamente estabelecido:</p>\r\n <p> </p>\r\n <p>ENQUADRAMENTO INTERNACIONAL:</p>\r\n <ul>\r\n <li>Regulação da Comissão Europeia (EU) Nº 611/2013 de 24 de Junho de 2013 Sobre as medidas aplicáveis à notificação de violação de dados pessoais nos termos da Diretiva 2002/58/CE do Parlamento Europeu e do Conselho de Privacidade e Comunicações Eletrónicas.</li>\r\n <li> Regulamento (UE) N.º 2016/679, de 27 de abril de 2016 (RGPD) - Relativo à proteção das pessoas singulares no que diz respeito ao tratamento de dados pessoais e à livre circulação desses dados</li>\r\n </ul>\r\n <p> </p>\r\n <p>ENQUADRAMENTO NACIONAL:</p>\r\n <ul>\r\n <li>Artigo 35º da Constituição da República Portuguesa – utilização da informática</li>\r\n <li>Lei 67/ 98 – Lei da proteção de Dados Pessoais</li>\r\n <li>Lei 41/2004 - Regula a proteção de dados pessoais no sector das Comunicações Eletrónicas (alterada e republicada)</li>\r\n <li>Lei 32/2008 - transpõe a Diretiva da Retenção de Dados, relativa à conservação de dados das comunicações eletrónicas ”</li>\r\n </ul>\r\n <p> </p>\r\n <p>Regulador Nacional: Comissão Nacional de Proteção de Dados - CNPD (<a href="https://www.cnpd.pt">https://www.cnpd.pt/</a>)</p>\r\n <ul>\r\n <li>Lei nº 43/2004 de 18 de Agosto - regula a organização e o funcionamento da CNPD, bem como o estatuto pessoal dos seus membros.</li>\r\n </ul>\r\n <p> </p>\r\n <p><strong>l) Contacto </strong>(Processador(es) de Dados)</p>\r\n <p>Agradecemos ter dispensado o seu tempo para se informar sobre a política de privacidade do sítio de internet do Orçamento Participativo Jovem Portugal. A equipa técnica responsável pela sua operacionalização acredita firmemente que é cada vez mais importante para o nosso utilizador saber exatamente como os seus dados pessoais são tratados. Se tiver alguma dúvida ou perguntas não respondidas por esta política de privacidade, pode entrar em contacto com o controlador de dados responsável por este serviço, no seguinte endereço:</p>\r\n <p> </p>\r\n <p><strong>m) Consentimento em Orçamento Participativo Jovem Portugal</strong></p>\r\n <p>No cumprimento do disposto no Regulamento Geral sobre a Proteção de Dados, informa-se que o registo na plataforma do OPJovem pressupõe o tratamento de dados pessoais, com base no seu consentimento e destina-se à implementação do processo de Orçamento Participativo Jovem Portugal.</p>\r\n <p>Os dados pessoais tratados são os solicitados no momento do registo da plataforma – para a apresentação de uma proposta, para a votação num projeto, ou simplesmente para fazer parte da comunidade de pessoas registadas na página – ou do envio do seu voto através de SMS.</p>\r\n <p>O consentimento pressupõe que os dados pessoais possam ser utilizados pela equipa do Orçamento Participativo Jovem Portugal no desenvolvimento das diferentes atividades associadas ao processo, incluindo o contacto com os participantes, a contagem e validação dos votos, bem como a monitorização e avaliação da iniciativa.</p>\r\n <p> </p>\r\n <p><strong>n) Apresentação de uma proposta</strong></p>\r\n <p>Os cidadãos portugueses e estrangeiros a residir legalmente em Portugal, com idades entre os 14 e os 30 anos, podem apresentar propostas através desta página, devendo para o efeito efetuar um registo prévio no seguinte endereço <a href="https://opjovem.gov.pt/auth/register">https://opjovem.gov.pt/auth/register</a><br />Efetuado este passo, poderão submeter as respetivas propostas recorrendo ao formulário disponibilizado para o efeito. <br />Esta forma de participação pressupõe o consentimento para que os dados pessoais disponibilizados sejam tratados internamente pela equipa do OPJovem para validação do perfil de cada participante, para avaliação técnica da proposta apresentada, para eventual contacto com o proponente, caso sejam necessários esclarecimentos, bem como para divulgação do nome caso a proposta seja aprovada para passar à votação. Pressupõe ainda o consentimento para a utilização dos dados para efeitos estatísticos, necessários para a monitorização e avaliação do processo.</p>\r\n <p> </p>\r\n <p><strong>o) Votação de um projeto através da plataforma</strong></p>\r\n <p>Os cidadãos portugueses e estrangeiros a residir legalmente em Portugal, com idades entre os 14 e os 30 anos, podem votar nos projetos finalistas através desta página, devendo para o efeito efetuar um registo prévio no seguinte endereço <a href="https://opjovem.gov.pt/auth/register">https://opjovem.gov.pt/auth/register</a></p>\r\n <p>Efetuado este passo, poderão exercer o direito de voto, escolhendo um dos projetos constantes na lista aprovada. <br />Esta forma de participação pressupõe o consentimento para que os dados pessoais disponibilizados sejam tratados internamente pela equipa do OPJovem para validação do perfil de cada participante, bem como para efeitos estatísticos, necessários para a monitorização e avaliação do processo.</p>\r\n <p><br /><strong>p) Votação de um projeto através de SMS</strong></p>\r\n <p>Os cidadãos portugueses e estrangeiros a residir legalmente em Portugal, com idades entre os 14 e os 30 anos, podem votar nos projetos finalistas através do envio gratuito de SMS para o número 4310. Devem para o efeito seguir os passos indicados na plataforma <a href="https://opjovem.gov.pt/">https://opjovem.gov.pt</a> <br />O texto da mensagem de telemóvel deve ter a seguinte composição: “Número do projeto, espaço, número de cartão do cidadão com doze dígitos ou número do título de residência, espaço, autorizo”. Exemplo: “10 123456782AB7 autorizo”<br />O texto "autorizo" no corpo do SMS, equivale a “dou o meu consentimento de forma livre, específica e informada, para a recolha e tratamento dos meus dados pessoais por parte da equipa do Orçamento Participativo Jovem Portugal, abrangendo todas as atividades de tratamento necessárias à validação do voto no OPJovem 2019, inclusive à consulta por parte do Instituto de Registos e Notariado do nº de identificação civil e do Serviço de Estrangeiros e Fronteiras do n.º de autorização de residência para fins de verificação de idade, bem como à produção e análise estatística para efeitos de avaliação do processo.”<br />O envio da mensagem implica a aceitação dos termos e condições de utilização do serviço de votação por SMS.</p>\r\n <p> </p>\r\n <p> </p>\r\n <p><strong>Instituto Português do Desporto e Juventude, I.P.<br /></strong>Rua Rodrigo da Fonseca, 55<br />1250-190 Lisboa, PORTUGAL<br /><br /></p>\r\n <p> </p>\r\n <p> </p> """ ]
[]
$useTerms = html_entity_decode($response->content); }else{ $useTerms = $response; } return view('public.'.ONE::getEntityLayout().'.auth.useTerms', compact('useTerms')); } /** * @return View PrivacyPolicy */ public function privacyPolicy(Request $request) { $response = Orchestrator::getSitePrivacyPolicy(); if(isset($response)){ $privacyPolicy = html_entity_decode($response->content); }else{ $privacyPolicy = $response; } return view('public.'.ONE::getEntityLayout().'.auth.privacyPolicy', compact('privacyPolicy')); } /* Verify if user email exists */ public function verifyEmailExists(Request $request) { return response()->json(["exists"=>Auth::emailExists($request->input("email"))->exists],200); } public function migrateUserToEntityConfirmation(Request $request) { Session::reflash(); $facebook_login = false; if (View::exists('public.'.ONE::getEntityLayout().'.auth.migration')) return view('public.'.ONE::getEntityLayout().'.auth.migration', compact('facebook_login')); else return redirect("/"); } public function migrateUserToEntity(Request $request) { Session::reflash(); if ($request->input("response")==1) {
"public.opjp_new.auth.privacyPolicy"
array:1 [ "privacyPolicy" => """ <p><strong>Política de Privacidade do sítio de Internet opjovem.gov.pt</strong></p>\r\n <p><strong> </strong></p>\r\n <p>A política de privacidade a seguir indicada descreve as nossas práticas relativas aos tipos de informação pessoal recolhida através da utilização da aplicação “Serviço” do Orçamento Participativo Jovem Portugal, no sítio <a href="http://www.opjovem.gov.pt">https://www.opjovem.gov.pt</a>.</p>\r\n <p>Este Serviço e o Sítio são desenvolvidos e geridos no âmbito do Orçamento Participativo Jovem Portugal.</p>\r\n <p>Esta política de privacidade explica como a equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal utiliza a informação pessoal recolhida através deste Serviço, de que forma é usada, com quem é partilhada, como é gerida, arquivada e protegida.</p>\r\n <p> </p>\r\n <p><strong>a) Funções das organizações envolvidas</strong></p>\r\n <p>A gestão de dados para este Sítio é da responsabilidade da equipa técnica do Instituto Português do Desporto e da Juventude, entidade coordenadora do Orçamento Participativo Jovem Portugal. Este pode, no entanto, no âmbito de parcerias que venha a estabelecer, partilhar o controlo, o processamento e o arquivamento dos dados com outras entidades.</p>\r\n <p> </p>\r\n <p><strong>b) Finalidades da Recolha de Dados</strong></p>\r\n <p>Os dados pessoais são recolhidos e geridos sob esta política com os seguintes propósitos:</p>\r\n <ul>\r\n <li>Garantir a autenticação única dos utilizadores, necessária para apresentar propostas e votar em projetos no âmbito do Orçamento Participativo Jovem Portugal.</li>\r\n <li>Monitorizar e avaliar a operacionalização do Orçamento Participativo Jovem Portugal;</li>\r\n <li>Comunicar com os/as utilizadores/as para qualquer fim que se ache necessário no âmbito restrito do Orçamento Participativo Jovem;</li>\r\n <li>Fornecer informações periódicas sobre o conteúdo do Site, de acordo com as preferências de notificação configuradas por cada utilizador;</li>\r\n <li>Cumprir as leis da União Europeia e de Portugal.</li>\r\n </ul>\r\n <p> </p>\r\n <p>Em caso algum, o Controlador de Dados pode:</p>\r\n <ul>\r\n <li>Duplicar ou distribuir quaisquer dados pessoais recolhidos neste Sítio para finalidade diferentes da definida nessa <strong>Política de Privacidade.</strong></li>\r\n <li>Vender ou alugar quaisquer dados pessoais recolhidos neste Sítio, seja por que motivo for.</li>\r\n <li>Utilizar quaisquer dados pessoais recolhidos neste Sítio para comercialização ou quaisquer fins comerciais.</li>\r\n </ul>\r\n <p>Em todo o caso, serão divulgadas apenas informações que não identifiquem pessoalmente os usuários, agrupando e agregando informações de forma a não ser possível identificar dados pessoais.</p>\r\n <p> </p>\r\n <p><strong>c) Dados recolhidos</strong></p>\r\n <p><strong><u>Dados pessoais: </u></strong></p>\r\n <p>Para registar novos utilizadores, os dados pessoais recolhidos neste Sítio são os seguintes.</p>\r\n <ul>\r\n <li>Nome</li>\r\n <li>Endereço de e-mail</li>\r\n <li>Sexo</li>\r\n <li>Ano de Nascimento</li>\r\n <li>Habilitações Literárias</li>\r\n <li>Concelho de Residência</li>\r\n <li>Telefone</li>\r\n <li>Documento de Identificação (número de Cartão de Cidadão ou Título de Residência)</li>\r\n </ul>\r\n <p> </p>\r\n <p><strong><u>Informação pessoal não identificável</u></strong></p>\r\n <p>O Serviço recolhe igualmente informações, que não são de identificação pessoal, semelhante à que os motores de busca e servidores da Internet habitualmente disponibilizam, tais como, o tipo de motor de busca, a preferência de idioma, o sítio de referência ou data e hora de cada solicitação do visitante.</p>\r\n <p> </p>\r\n <p><strong><u>Informação pessoal potencialmente identificável</u></strong></p>\r\n <p>O Serviço recolhe informações potencialmente identificáveis, tais como os endereços IP (Internet Protocol). No entanto, a equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal não utiliza essas informações para identificar os seus visitantes e não divulga essas informações, adotando as mesmas medidas de segurança e privacidade descritas nesta política para os dados pessoais.</p>\r\n <p> </p>\r\n <p><strong><u>Conteúdos criados pelo utilizador e informações pessoais identificáveis</u></strong></p>\r\n <p>O Serviço pode acolher discussões, comentários, propostas e outros conteúdos criados pelos utilizadores durante o uso do sítio de Internet.</p>\r\n <p>Estes Conteúdos Criados pelo Utilizador podem identificar o utilizador pessoalmente para terceiros e, em alguns casos, para o público em geral. Os utilizadores não devem disponibilizar informação de identificação pessoal através do conteúdo publicado neste Site.</p>\r\n <p>Cada utilizador pode proceder à configuração de privacidade relativa ao conteúdo publicado e sua visibilidade na Internet, assim como usar um pseudónimo e um endereço de e-mail anónimo.</p>\r\n <p>Para obter informações adicionais sobre o conteúdo criado pelo utilizador, consultar os Termos de Serviço (<a title="Termos de Serviço" href="/page/use_terms" target="_blank">link</a>).</p>\r\n <p>A equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal poderá propor, aos utilizadores deste Serviço, a resposta a questionários relativamente a:</p>\r\n <ul>\r\n <li>Experiência dos utilizadores com o Serviço;</li>\r\n <li>Outros temas relacionados com o Orçamento Participativo Jovem Portugal.</li>\r\n </ul>\r\n <p>A resposta a estes questionários é voluntária, tendo os utilizadores a liberdade de as fazerem ou lhes responderem.</p>\r\n <p> </p>\r\n <p><strong>d) Segurança e Integridade de Dados</strong></p>\r\n <p>A equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal tomará todas as medidas necessárias para proteger os dados pessoais e os conteúdos dos utilizadores contra perda e uso indevido, bem assim como acesso não autorizado, divulgação, alteração e destruição.</p>\r\n <p><strong> </strong></p>\r\n <p><strong><u>Segurança física de dados</u></strong></p>\r\n <p>A central de dados, na qual estes são arquivados e preservados, tem políticas de segurança restritas relativamente ao seu acesso físico. O acesso a esta central está circunscrito a elementos devidamente autorizados, sendo gerido através de dois níveis de segurança: chave física e alarme. Todo o acesso é registado no sistema de alarme e documentado nos procedimentos internos do prestador do serviço.</p>\r\n <p> </p>\r\n <p><strong><u>Segurança de </u></strong><strong><u>dados inform</u></strong><strong><u>áticos</u></strong></p>\r\n <p>A plataforma implementa mecanismos de segurança para proteger os dados e gerir o acesso a eles. Todos os dados, especialmente os pessoais, são protegidos através de componentes específicos, que apenas permitem o acesso a esses dados através de mecanismos de segurança. Todos os acessos têm políticas de validade limitada.</p>\r\n <p> </p>\r\n <p><strong>e) Preservação de dados pessoais</strong></p>\r\n <p>Os dados pessoais processados para qualquer finalidade não serão mantidos por mais tempo do que o necessário para esse fim e, em qualquer caso, não mais de um ano após o último acesso do utilizador ao Serviço.</p>\r\n <p> </p>\r\n <p><strong>f) Procedimentos de acesso aos dados pessoais</strong></p>\r\n <p>Cada utilizador tem o direito de aceder a todos os seus dados pessoais e informações recolhidas através deste Serviço e saber como essas informações são processadas. Se pretender saber quais as informações e dados pessoais recolhidos, deve dirigir-se, por escrito, ao Processador (es) de Dados).</p>\r\n <p> </p>\r\n <p><strong>g) Procedimentos de saída</strong></p>\r\n <p>Cada utilizador tem o direito de se retirar do Serviço e obter a remoção de todos os seus dados pessoais e informações recolhidas através deste Serviço, exceto se se tratar de uma questão legal. Se pretender faze-lo, deve dirigir-se, por escrito, ao Processador (es) de Dados.</p>\r\n <p> </p>\r\n <p><strong>h) Acesso de terceiros a dados pessoais</strong></p>\r\n <p>Para fornecer algumas funcionalidades do sítio de internet do Orçamento Participativo Jovem Portugal como no caso concreto da análise de candidaturas, e um alto nível de serviço, a equipa técnica responsável pela sua operacionalização pode partilhar dados de utilizadores com terceiros. Ver mais detalhes sobre os Serviços de Terceiros nos Termos de Serviço aqui (<a title="Termos de Serviço" href="/page/use_terms" target="_blank">link</a>).</p>\r\n <p> </p>\r\n <p><strong>i) Entidade responsável pela aprovação / revisão da política</strong></p>\r\n <p>Esta política foi desenvolvida pela equipa responsável pela operacionalização do Orçamento Participativo Jovem Portugal.</p>\r\n <p>Esta política poderá ser alterada no futuro, no âmbito dos princípios éticos referidos nos nossos Termos de Serviço. Qualquer política alterada entrará em vigor após a publicação neste Sítio, e serão feitos todos os esforços possíveis para comunicar essas alterações, seja por e-mail ou através do sítio.</p>\r\n <p> </p>\r\n <p><strong>j) Data de funcionamento da Versão e da Política</strong></p>\r\n <p>A versão atual da política de privacidade é o 1.1. É válida desde 25/05/2018 até que uma nova versão da política seja disponibilizada.</p>\r\n <p> </p>\r\n <p><strong>k) Enquadramento legal da política</strong></p>\r\n <p>O quadro regulamentar para a proteção e gestão de dados obedece às seguintes normas e regulamentos da União Europeia e das leis de Portugal, onde o Serviço está efetivamente estabelecido:</p>\r\n <p> </p>\r\n <p>ENQUADRAMENTO INTERNACIONAL:</p>\r\n <ul>\r\n <li>Regulação da Comissão Europeia (EU) Nº 611/2013 de 24 de Junho de 2013 Sobre as medidas aplicáveis à notificação de violação de dados pessoais nos termos da Diretiva 2002/58/CE do Parlamento Europeu e do Conselho de Privacidade e Comunicações Eletrónicas.</li>\r\n <li> Regulamento (UE) N.º 2016/679, de 27 de abril de 2016 (RGPD) - Relativo à proteção das pessoas singulares no que diz respeito ao tratamento de dados pessoais e à livre circulação desses dados</li>\r\n </ul>\r\n <p> </p>\r\n <p>ENQUADRAMENTO NACIONAL:</p>\r\n <ul>\r\n <li>Artigo 35º da Constituição da República Portuguesa – utilização da informática</li>\r\n <li>Lei 67/ 98 – Lei da proteção de Dados Pessoais</li>\r\n <li>Lei 41/2004 - Regula a proteção de dados pessoais no sector das Comunicações Eletrónicas (alterada e republicada)</li>\r\n <li>Lei 32/2008 - transpõe a Diretiva da Retenção de Dados, relativa à conservação de dados das comunicações eletrónicas ”</li>\r\n </ul>\r\n <p> </p>\r\n <p>Regulador Nacional: Comissão Nacional de Proteção de Dados - CNPD (<a href="https://www.cnpd.pt">https://www.cnpd.pt/</a>)</p>\r\n <ul>\r\n <li>Lei nº 43/2004 de 18 de Agosto - regula a organização e o funcionamento da CNPD, bem como o estatuto pessoal dos seus membros.</li>\r\n </ul>\r\n <p> </p>\r\n <p><strong>l) Contacto </strong>(Processador(es) de Dados)</p>\r\n <p>Agradecemos ter dispensado o seu tempo para se informar sobre a política de privacidade do sítio de internet do Orçamento Participativo Jovem Portugal. A equipa técnica responsável pela sua operacionalização acredita firmemente que é cada vez mais importante para o nosso utilizador saber exatamente como os seus dados pessoais são tratados. Se tiver alguma dúvida ou perguntas não respondidas por esta política de privacidade, pode entrar em contacto com o controlador de dados responsável por este serviço, no seguinte endereço:</p>\r\n <p> </p>\r\n <p><strong>m) Consentimento em Orçamento Participativo Jovem Portugal</strong></p>\r\n <p>No cumprimento do disposto no Regulamento Geral sobre a Proteção de Dados, informa-se que o registo na plataforma do OPJovem pressupõe o tratamento de dados pessoais, com base no seu consentimento e destina-se à implementação do processo de Orçamento Participativo Jovem Portugal.</p>\r\n <p>Os dados pessoais tratados são os solicitados no momento do registo da plataforma – para a apresentação de uma proposta, para a votação num projeto, ou simplesmente para fazer parte da comunidade de pessoas registadas na página – ou do envio do seu voto através de SMS.</p>\r\n <p>O consentimento pressupõe que os dados pessoais possam ser utilizados pela equipa do Orçamento Participativo Jovem Portugal no desenvolvimento das diferentes atividades associadas ao processo, incluindo o contacto com os participantes, a contagem e validação dos votos, bem como a monitorização e avaliação da iniciativa.</p>\r\n <p> </p>\r\n <p><strong>n) Apresentação de uma proposta</strong></p>\r\n <p>Os cidadãos portugueses e estrangeiros a residir legalmente em Portugal, com idades entre os 14 e os 30 anos, podem apresentar propostas através desta página, devendo para o efeito efetuar um registo prévio no seguinte endereço <a href="https://opjovem.gov.pt/auth/register">https://opjovem.gov.pt/auth/register</a><br />Efetuado este passo, poderão submeter as respetivas propostas recorrendo ao formulário disponibilizado para o efeito. <br />Esta forma de participação pressupõe o consentimento para que os dados pessoais disponibilizados sejam tratados internamente pela equipa do OPJovem para validação do perfil de cada participante, para avaliação técnica da proposta apresentada, para eventual contacto com o proponente, caso sejam necessários esclarecimentos, bem como para divulgação do nome caso a proposta seja aprovada para passar à votação. Pressupõe ainda o consentimento para a utilização dos dados para efeitos estatísticos, necessários para a monitorização e avaliação do processo.</p>\r\n <p> </p>\r\n <p><strong>o) Votação de um projeto através da plataforma</strong></p>\r\n <p>Os cidadãos portugueses e estrangeiros a residir legalmente em Portugal, com idades entre os 14 e os 30 anos, podem votar nos projetos finalistas através desta página, devendo para o efeito efetuar um registo prévio no seguinte endereço <a href="https://opjovem.gov.pt/auth/register">https://opjovem.gov.pt/auth/register</a></p>\r\n <p>Efetuado este passo, poderão exercer o direito de voto, escolhendo um dos projetos constantes na lista aprovada. <br />Esta forma de participação pressupõe o consentimento para que os dados pessoais disponibilizados sejam tratados internamente pela equipa do OPJovem para validação do perfil de cada participante, bem como para efeitos estatísticos, necessários para a monitorização e avaliação do processo.</p>\r\n <p><br /><strong>p) Votação de um projeto através de SMS</strong></p>\r\n <p>Os cidadãos portugueses e estrangeiros a residir legalmente em Portugal, com idades entre os 14 e os 30 anos, podem votar nos projetos finalistas através do envio gratuito de SMS para o número 4310. Devem para o efeito seguir os passos indicados na plataforma <a href="https://opjovem.gov.pt/">https://opjovem.gov.pt</a> <br />O texto da mensagem de telemóvel deve ter a seguinte composição: “Número do projeto, espaço, número de cartão do cidadão com doze dígitos ou número do título de residência, espaço, autorizo”. Exemplo: “10 123456782AB7 autorizo”<br />O texto "autorizo" no corpo do SMS, equivale a “dou o meu consentimento de forma livre, específica e informada, para a recolha e tratamento dos meus dados pessoais por parte da equipa do Orçamento Participativo Jovem Portugal, abrangendo todas as atividades de tratamento necessárias à validação do voto no OPJovem 2019, inclusive à consulta por parte do Instituto de Registos e Notariado do nº de identificação civil e do Serviço de Estrangeiros e Fronteiras do n.º de autorização de residência para fins de verificação de idade, bem como à produção e análise estatística para efeitos de avaliação do processo.”<br />O envio da mensagem implica a aceitação dos termos e condições de utilização do serviço de votação por SMS.</p>\r\n <p> </p>\r\n <p> </p>\r\n <p><strong>Instituto Português do Desporto e Juventude, I.P.<br /></strong>Rua Rodrigo da Fonseca, 55<br />1250-190 Lisboa, PORTUGAL<br /><br /></p>\r\n <p> </p>\r\n <p> </p> """ ]
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
/** * Get the middleware assigned to the controller. * * @return array */ public function getMiddleware() { return $this->middleware; } /** * Execute an action on the controller. * * @param string $method * @param array $parameters * @return \Symfony\Component\HttpFoundation\Response */ public function callAction($method, $parameters) { return call_user_func_array([$this, $method], $parameters); } /** * Handle calls to missing methods on the controller. * * @param string $method * @param array $parameters * @return mixed * * @throws \BadMethodCallException */ public function __call($method, $parameters) { throw new BadMethodCallException("Method [{$method}] does not exist on [".get_class($this).'].'); } }
array:2 [ 0 => AuthController {#1943} 1 => "privacyPolicy" ]
array:1 [ 0 => Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } ]
{ $this->container = $container; } /** * Dispatch a request to a given controller and method. * * @param \Illuminate\Routing\Route $route * @param mixed $controller * @param string $method * @return mixed */ public function dispatch(Route $route, $controller, $method) { $parameters = $this->resolveClassMethodDependencies( $route->parametersWithoutNulls(), $controller, $method ); if (method_exists($controller, 'callAction')) { return $controller->callAction($method, $parameters); } return $controller->{$method}(...array_values($parameters)); } /** * Get the middleware for the controller instance. * * @param \Illuminate\Routing\Controller $controller * @param string $method * @return array */ public function getMiddleware($controller, $method) { if (! method_exists($controller, 'getMiddleware')) { return []; } return collect($controller->getMiddleware())->reject(function ($data) use ($method) { return static::methodExcludedByOptions($method, $data['options']);
"privacyPolicy"
array:1 [ 0 => Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" } ]
protected function runCallable() { $callable = $this->action['uses']; return $callable(...array_values($this->resolveMethodDependencies( $this->parametersWithoutNulls(), new ReflectionFunction($this->action['uses']) ))); } /** * Run the route action and return the response. * * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException */ protected function runController() { return $this->controllerDispatcher()->dispatch( $this, $this->getController(), $this->getControllerMethod() ); } /** * Get the controller instance for the route. * * @return mixed */ public function getController() { if (! $this->controller) { $class = $this->parseControllerCallback()[0]; $this->controller = $this->container->make(ltrim($class, '\\')); } return $this->controller; } /**
* * @throws \UnexpectedValueException */ protected function parseAction($action) { return RouteAction::parse($this->uri, $action); } /** * Run the route action and return the response. * * @return mixed */ public function run() { $this->container = $this->container ?: new Container; try { if ($this->isControllerAction()) { return $this->runController(); } return $this->runCallable(); } catch (HttpResponseException $e) { return $e->getResponse(); } } /** * Checks whether the route's action is a controller. * * @return bool */ protected function isControllerAction() { return is_string($this->action['uses']); } /** * Run the route action and return the response.
/** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /**
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
if (!empty($element = json_decode($siteConfGroup))) { if (count($element) > 1) { foreach ($element as $subElement) { $sessionSiteConfigurations[$key][] = action('FilesController@download', [$subElement->id, $subElement->code, 1]); } } else $sessionSiteConfigurations[$key] = action('FilesController@download', [$element[0]->id, $element[0]->code, 1]); } } } else { $sessionSiteConfigurations[$key] = $siteConfGroup ?? null; } } Session::put('SITE-CONFIGURATION',$sessionSiteConfigurations); } //dd($next($request)); return $next($request); } }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#1944 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#1938 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
if ($decryptTID) { MyCascaisWebController::processLogin($decryptTID); return $next($request); } else { $encodedRT = $this->Encrypt("rs=" . $returnURL); header('Location: ' . MyCascaisWebController::$MYCASCAIS_LOGIN_URL . '?appid=' . MyCascaisWebController::$APP_ID . '&rt=' . $encodedRT); exit; } } if (isset($_COOKIE[MyCascaisWebController::$APP_COOKIE_NAME])) { // if(isset($_COOKIE[MyCascaisWebController::$APP_COOKIE_NAME]) && isset($_COOKIE[MyCascaisWebController::$MYCASCAIS_COOKIE_NAME])) { MyCascaisWebController::processLogin($_COOKIE[MyCascaisWebController::$APP_COOKIE_NAME]); } else { unset($_COOKIE[MyCascaisWebController::$APP_COOKIE_NAME]); } } return $next($request); } }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2966 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#1944 …} : "App\Http\Middleware\OneAuth" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
$ip = $request->getClientIp(); if (!is_null($proxy_ips) && in_array($ip, $proxy_ips) && filter_var($_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP)){ $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } $isLogged = $request->session()->has('user'); $userKey = null; if ($isLogged) { $userKey = $request->session()->get('user')->user_key; } $siteKey = $request->session()->get('X-SITE-KEY'); $entityKey = $request->session()->get('X-ENTITY-KEY'); Redis::setEx("logged:" . $request->session()->getId(), 300, json_encode(['phpsessionid' => $request->session()->getId(), 'timestamp' => microtime(true), 'ip' => $ip, 'user_key' => $userKey, 'entity_key' => $entityKey, 'site_key' => $siteKey])); Redis::setEx("pageAccess:" . $request->session()->getId() . microtime(true), 300, json_encode(['phpsessionid' => $request->session()->getId(), 'timestamp' => microtime(true), 'ip' => $ip, 'user_key' => $userKey, 'entity_key' => $entityKey, 'site_key' => $siteKey])); return $next($request); } /** * @param $request * @param $response */ public function terminate($request, $response){ if(env('LOGS_FLAG', 'false')=='true') { $proxy_ips = explode(',', env('PROXY_IPS')); $proxy_ips = !empty($proxy_ips[0]) ? $proxy_ips : null ; $isLogged = $request->session()->has('user'); $authToken = null; $userKey = null; if ($isLogged) { $authToken = $request->session()->get('X-AUTH-TOKEN'); $userKey = $request->session()->get('user')->user_key; } $ip = $request->getClientIp();
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2967 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#2966 …} : "App\Http\Middleware\AuthCascais" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Illuminate\Session\TokenMismatchException */ public function handle($request, Closure $next) { if ( $this->isReading($request) || $this->runningUnitTests() || $this->inExceptArray($request) || $this->tokensMatch($request) ) { return $this->addCookieToResponse($request, $next($request)); } throw new TokenMismatchException; } /** * Determine if the HTTP request uses a ‘read’ verb. * * @param \Illuminate\Http\Request $request * @return bool */ protected function isReading($request) { return in_array($request->method(), ['HEAD', 'GET', 'OPTIONS']); } /** * Determine if the application is running unit tests. * * @return bool
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2968 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#2967 …} : "App\Http\Middleware\LogsRegistror" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { // If the current session has an "errors" variable bound to it, we will share // its value with all view instances so the views can easily access errors // without having to bind. An empty bag is set when there aren't errors. $this->view->share( 'errors', $request->session()->get('errors') ?: new ViewErrorBag ); // Putting the errors in the view for every view allows the developer to just // assume that some errors are always available, which is convenient since // they don't have to continually run checks for the presence of errors. return $next($request); } }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2969 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#2968 …} : "App\Http\Middleware\VerifyCsrfToken" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $this->sessionHandled = true; // If a session driver has been configured, we will need to start the session here // so that the data is ready for an application. Note that the Laravel sessions // do not make use of PHP "native" sessions in any way since they are crappy. if ($this->sessionConfigured()) { $request->setLaravelSession( $session = $this->startSession($request) ); $this->collectGarbage($session); } $response = $next($request); // Again, if the session has been configured we will need to close out the session // so that the attributes may be persisted to some storage medium. We will also // add the session identifier cookie to the application response headers now. if ($this->sessionConfigured()) { $this->storeCurrentUrl($request, $session); $this->addCookieToResponse($response, $session); } return $response; } /** * Perform any final actions for the request lifecycle. * * @param \Illuminate\Http\Request $request * @param \Symfony\Component\HttpFoundation\Response $response * @return void */
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2970 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#2969 …} : "Illuminate\View\Middleware\ShareErrorsFromSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Create a new CookieQueue instance. * * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookies * @return void */ public function __construct(CookieJar $cookies) { $this->cookies = $cookies; } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $response = $next($request); foreach ($this->cookies->getQueuedCookies() as $cookie) { $response->headers->setCookie($cookie); } return $response; } }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2971 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#2970 …} : "Illuminate\Session\Middleware\StartSession" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* Disable encryption for the given cookie name(s). * * @param string|array $cookieName * @return void */ public function disableFor($cookieName) { $this->except = array_merge($this->except, (array) $cookieName); } /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { return $this->encrypt($next($this->decrypt($request))); } /** * Decrypt the cookies on the request. * * @param \Symfony\Component\HttpFoundation\Request $request * @return \Symfony\Component\HttpFoundation\Request */ protected function decrypt(Request $request) { foreach ($request->cookies as $key => $c) { if ($this->isDisabled($key)) { continue; } try { $request->cookies->set($key, $this->decryptCookie($c)); } catch (DecryptException $e) { $request->cookies->set($key, null); }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#2972 : "Illuminate\Routing\Pipeline" : Pipeline {#1912 …} : { : {} } : { : Closure {#2971 …} : "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse" } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware) ->then(function ($request) use ($route) { return $this->prepareResponse( $request, $route->run() ); }); } /** * Gather the middleware for the given route with resolved class names. * * @param \Illuminate\Routing\Route $route * @return array */ public function gatherRouteMiddleware(Route $route) { $middleware = collect($route->gatherMiddleware())->map(function ($name) { return (array) MiddlewareNameResolver::resolve($name, $this->middleware, $this->middlewareGroups); })->flatten(); return $this->sortMiddleware($middleware); } /** * Sort the given middleware by priority. *
return $route; } /** * Return the response for the given route. * * @param Route $route * @param Request $request * @return mixed */ protected function runRoute(Request $request, Route $route) { $request->setRouteResolver(function () use ($route) { return $route; }); $this->events->dispatch(new Events\RouteMatched($route, $request)); return $this->prepareResponse($request, $this->runRouteWithinStack($route, $request) ); } /** * Run the given route within a Stack "onion" instance. * * @param \Illuminate\Routing\Route $route * @param \Illuminate\Http\Request $request * @return mixed */ protected function runRouteWithinStack(Route $route, Request $request) { $shouldSkipMiddleware = $this->container->bound('middleware.disable') && $this->container->make('middleware.disable') === true; $middleware = $shouldSkipMiddleware ? [] : $this->gatherRouteMiddleware($route); return (new Pipeline($this->container)) ->send($request) ->through($middleware)
Route {#1751}
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request) { $this->current = $route = $this->routes->match($request); $this->container->instance(Route::class, $route); return $route; } /** * Return the response for the given route. *
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Route {#1751}
* @return mixed */ public function respondWithRoute($name) { $route = tap($this->routes->getByName($name))->bind($this->currentRequest); return $this->runRoute($this->currentRequest, $route); } /** * Dispatch the request to the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response|\Illuminate\Http\JsonResponse */ public function dispatch(Request $request) { $this->currentRequest = $request; return $this->dispatchToRoute($request); } /** * Dispatch the request to a route and return the response. * * @param \Illuminate\Http\Request $request * @return mixed */ public function dispatchToRoute(Request $request) { return $this->runRoute($request, $this->findRoute($request)); } /** * Find the route matching a given request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Routing\Route */ protected function findRoute($request)
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
* @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter() { return function ($request) { $this->app->instance('request', $request); return $this->router->dispatch($request); }; } /** * Call the terminate method on any terminable middleware. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Response $response * @return void */ public function terminate($request, $response) { $this->terminateMiddleware($request, $response); $this->app->terminate(); } /** * Call the terminate method on any terminable middleware. *
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
use Symfony\Component\Debug\Exception\FatalThrowableError; /** * This extended pipeline catches any exceptions that occur during each slice. * * The exceptions are converted to HTTP responses for proper middleware handling. */ class Pipeline extends BasePipeline { /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { try { return $destination($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry();
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed * * @throws \Symfony\Component\HttpKernel\Exception\HttpException */ public function handle($request, Closure $next) { if ($this->app->isDownForMaintenance()) { $data = json_decode(file_get_contents($this->app->storagePath().'/framework/down'), true); throw new MaintenanceModeException($data['time'], $data['retry'], $data['message']); } return $next($request); } }
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
// the appropriate method and arguments, returning the results back out. return $pipe($passable, $stack); } elseif (! is_object($pipe)) { list($name, $parameters) = $this->parsePipeString($pipe); // If the pipe is a string we will parse the string and resolve the class out // of the dependency injection container. We can then build a callable and // execute the pipe function giving in the parameters that are required. $pipe = $this->getContainer()->make($name); $parameters = array_merge([$passable, $stack], $parameters); } else { // If the pipe is already an object we'll just make a callable and pass it to // the pipe as-is. There is no need to do any extra parsing and formatting // since the object we're given was already a fully instantiated object. $parameters = [$passable, $stack]; } return method_exists($pipe, $this->method) ? $pipe->{$this->method}(...$parameters) : $pipe(...$parameters); }; }; } /** * Parse full pipe string to get name and parameters. * * @param string $pipe * @return array */ protected function parsePipeString($pipe) { list($name, $parameters) = array_pad(explode(':', $pipe, 2), 2, []); if (is_string($parameters)) { $parameters = explode(',', $parameters); } return [$name, $parameters];
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
Closure {#22 : "Illuminate\Routing\Pipeline" : Pipeline {#33 …} : { : {} } : { : Closure {#1088 …} } }
return $this->handleException($passable, new FatalThrowableError($e)); } }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */ protected function carry() { return function ($stack, $pipe) { return function ($passable) use ($stack, $pipe) { try { $slice = parent::carry(); $callable = $slice($stack, $pipe); return $callable($passable); } catch (Exception $e) { return $this->handleException($passable, $e); } catch (Throwable $e) { return $this->handleException($passable, new FatalThrowableError($e)); } }; }; } /** * Handle the given exception. * * @param mixed $passable * @param \Exception $e * @return mixed * * @throws \Exception */ protected function handleException($passable, Exception $e) {
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
public function via($method) { $this->method = $method; return $this; } /** * Run the pipeline with a final destination callback. * * @param \Closure $destination * @return mixed */ public function then(Closure $destination) { $pipeline = array_reduce( array_reverse($this->pipes), $this->carry(), $this->prepareDestination($destination) ); return $pipeline($this->passable); } /** * Get the final piece of the Closure onion. * * @param \Closure $destination * @return \Closure */ protected function prepareDestination(Closure $destination) { return function ($passable) use ($destination) { return $destination($passable); }; } /** * Get a Closure that represents a slice of the application onion. * * @return \Closure */
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers: HeaderBag {#48} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: array:1 [ 0 => "*/*" ] #pathInfo: "/auth/privacyPolicy" #requestUri: "/auth/privacyPolicy" #baseUrl: "" #basePath: null #method: "GET" #format: null #session: Store {#1834} #locale: null #defaultLocale: "en" -isHostValid: true -isForwardedValid: true : "" : "html" }
} /** * Send the given request through the middleware / router. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ protected function sendRequestThroughRouter($request) { $this->app->instance('request', $request); Facade::clearResolvedInstance('request'); $this->bootstrap(); return (new Pipeline($this->app)) ->send($request) ->through($this->app->shouldSkipMiddleware() ? [] : $this->middleware) ->then($this->dispatchToRouter()); } /** * Bootstrap the application for HTTP requests. * * @return void */ public function bootstrap() { if (! $this->app->hasBeenBootstrapped()) { $this->app->bootstrapWith($this->bootstrappers()); } } /** * Get the route dispatcher callback. * * @return \Closure */ protected function dispatchToRouter()
$router->middlewareGroup($key, $middleware); } foreach ($this->routeMiddleware as $key => $middleware) { $router->aliasMiddleware($key, $middleware); } } /** * Handle an incoming HTTP request. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function handle($request) { try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request); } catch (Exception $e) { $this->reportException($e); $response = $this->renderException($request, $e); } catch (Throwable $e) { $this->reportException($e = new FatalThrowableError($e)); $response = $this->renderException($request, $e); } $this->app['events']->dispatch( new Events\RequestHandled($request, $response) ); return $response; } /** * Send the given request through the middleware / router. *
Request {#42 #json: null #convertedFiles: null #userResolver: Closure {#1934 : "Illuminate\Auth\AuthServiceProvider" : AuthServiceProvider {#41 …} : { : { : null } } : { : Application {#2 …} } } #routeResolver: Closure {#1936 : "Illuminate\Routing\Router" : Router {#25 …} : { : Route {#1751 …} } } +attributes: ParameterBag {#44} +request: ParameterBag {#50} +query: ParameterBag {#50} +server: ServerBag {#46} +files: FileBag {#47} +cookies: ParameterBag {#45} +headers<403 Forbidden Forbidden
You don't have permission to access this resource.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.