Blz Bill,
Vamos alimentando a lista com o que descobrirmos.
Eu também tenho a parte aberta e outra fechada, vou tentar fazer como você,
setar o othAuthRestrictions para "vazio" nas actions ou controllers que não
precisar de autenticação. Se isso não der certo vou a plano B, forçando
autenticação para o user anonymous. Talvez o plano B tenha a vantagem de um
"keep tracking" dos usuários (inclusive anonymous) usando o history model do
próprio oth. Mas não sei. Tem que estudar tudo isso ainda.
Abraço,
Benito.
On 11/13/07, Bill <[EMAIL PROTECTED]> wrote:
>
> acho q agora estou entendendo...ao menos um pouco mais..rs
>
> no meu app_controller deixei o seguinte
>
> var $othAuthRestrictions = null;
>
> e no controller, eu seto novamente esta opção
>
> var $othAuthRestrictions = array('view', 'index');
>
> no caso acima, o grupo 1 acessa o view, o 2 acessa o index. Isto defini no
> banco de dados e esta funcionando.
>
> Como meu site terá 1 parte para registrados e outra aberta, não precisarei
> fazer o que vc está tentando, de setar uma autenticação automática para
> usuários anonimos.
>
> Caso tenha alguma dica ai do othAuth, algo q ta descobrindo, vai postando
> pra montarmos uma documentação melhor pra ele.
>
> Abraços
>
> > Olá Bill e lista, bom dia.
> >
> > Então Bill, não sei se você lembra eu disse que estava trabalhando
> > em dois projetos, um pessoal e um para a comunidade
> > radioamadorística. Estou usando meu projeto pessoal como
> > laboratório e o outro estou tentando fazer da melhor forma possível
> > (conhece aquela história sobre "santo de casa não fazer
> > milagres"?). Porém, no quesito controle de usuários minha aplicação
> > pessoal é muito pobre. Só deve haver um usuário (eu!! hihi) que
> > pode tudo (modesto eu né?) e qualquer visitante não logado que terá
> > acesso a uma view de pesquisa. Dessa forma basta que eu proteja
> > tudo menos aquela view. Também não tenho nenhuma página (por
> > enquanto pelo menos) que não seja gerada por um controler e precise
> > ser protegida. Assim basta proteger todos os controller menos a
> > view de pesquisa. Ainda não fiz a view de pesquisa mas acho que vai
> > funcionar redefinindo, naquele controller, o
> >
> > var $othAuthRestrictions = array( 'add','edit','delete');
> >
> > Assim que testar eu digo se funcionou.
> >
> > Já na outra aplicação vou ter muitos usuários (todos que desejarem
> > usar parte protegidas do sistema). Terei três bases de dados
> > (modelos) onde qualquer um pode registrar informações, logado ou
> > não (funcionará como um painel de divulgação, cada um do modelos
> > estará divulgando algo diferente, público, portanto não precisa
> > estar logado). Depois eu tenho o profile de cada estação de
> > radioamador e um sistema de impressão on-line dos certificados de
> > participação e diplomas das competições organizadas pelo grupo.
> > Nesses casos é fundamental estar logado. Nas divulgações públicas,
> > se o usuário estiver logado, vou oferecer um "add-on" onde alguns
> > campos aparecerão pré populados (evitando a necessidade de
> > digitação). Meu plano é proteger tudo no AppController e redefinir
> > a variável othAuthRestrictions nos controllers onde não precisar de
> > proteção (como disse ainda não sei se funciona). Também tenho um
> > plano B (que não faço mínima idéia se funcionará) onde, no
> > appController, caso não estaja logado (via othAuth), definir o
> > user_id e group_id na session como 999 (user/grupo anonymous por
> > exemplo) e setar as permissões para esse grupo na base. Estaria
> > tentando forçar um "login" do user anonymous do grupo anonymous.
> > Então, se eu não estiver pensando besteira, quando o usuário
> > acessar uma área protegida (onde anonymous não tem direito de ir),
> > será redirecionado para o login page onde fará um "re-login" com um
> > usuário válido (setando as vars User e Group da session para outros
> > valores).
> >
> > Será que funciona?
> >
> > Spark, como funciona no Cake 1.2?
> >
> > Abraço,
> > Benito
> >
> > On 11/13/07, Bill wrote:> no meu arquivo
> > users_controller.php faço isto da seguinte maneira
> >
> >> coloco o redirect dentro da function login
> >>
> >> function login()
> >> {
> >> if(isset($this->params['data']))
> >> {
> >> $auth_num = $this->othAuth->login($this-
> >> >params['data']['User']);
> >>
> >> $this->set('auth_msg', $this->othAuth-
> >> >getMsg($auth_num));
> >>
> >> $this->redirect('users/painel', null, true); }
> >> } Agora deixa eu te perguntar algo Benito...como está
> >> protegendo suas páginas, de começo estava avançando bem com o
> >> othAuth, mas agora ja to apanhando.
> >> Vi que no arquivo app_controller.php tem uma linha q serve pra
> >> proteger os controllers
> >>
> >> var $othAuthRestrictions = array( 'add','edit','delete');
> >>
> >> no caso ela impede acesso a qualquer pagina q chame estes add,
> >> edit e delete.
> >>
> >> Como vc está fazendo para proteger as páginas? vc protege o
> >> controller inteiro? apenas algum método dele?
> >> Você apenas configura via banco a permissão das páginas X grupos?
> >>
> >> Se puder dar umas dicas, serão bem vindas!
> >>
> >> Abraços
> >>
> >>
> >>> Obrigado Bill.
> >>>
> >>> O mesmo está funcionando, apenas estou enfretando um
> >>> probleminha que ainda estou debugando sem muito sucesso.
> >>>
> >>> Seu eu tento fazer algo protegido ele me direciona para a
> >>> página de login (ótimo!). Tudo ocorre bem agora. Mas, se eu sou
> >>> um usuário esperto e savei a URL: localhost/app/users/login e
> >>> uso ela para entrar no site (ou seja, não sou redirecionado
> >>> para o login, vou direto a ele como primeira atividade do
> >>> site), após o login o "auto redirect" me joga para
> >>>
> >>> localhost/app/allow
> >>>
> >>> que obviamente não é um controller válido. Me parece que allow
> >>> é lixo dentro da variável "from" que não está setada. Mas já
> >>> estou correndo atrás para descobrir onde se origina o problema.
> >>> Assim que souber eu posto aqui.
> >>>
> >>> Abraço
> >>> Benito
> >>>
> >>> On 11/9/07, Bill wrote:> Vamos a algumas
> >>> dicas do padeiro aqui..rsrsrsrs
> >>>
> >>>> no arquivo app_controller.php, dentro da função beforeFilter,
> >>>> insira esta linha
> >>>>
> >>>> $this->othAuthRestrictions[] =
> >>>> Configure::read('Routing.admin');
> >>>>
> >>>> Ficando desta maneira
> >>>>
> >>>> function beforeFilter()
> >>>> {
> >>>>
> >>>> $this->othAuthRestrictions[] =
> >>>> Configure::read('Routing.admin');
> >>>>
> >>>>
> >>>> Agora, no component oth_auth.php, troque todas referências:
> >>>>
> >>>> defined('CAKE_ADMIN')
> >>>>
> >>>> Por:
> >>>>
> >>>> Configure::read('Routing.admin')
> >>>>
> >>>>
> >>>> e todas ocorrencias de:
> >>>>
> >>>> CAKE_ADMIN
> >>>>
> >>>> Por:
> >>>> Configure::read('Routing.admin')
> >>>>
> >>>>
> >>>> e tb troque neste arquivo a linha:
> >>>> $res = $UserModel->save($row,true,array($this-
> >>>>
> >>>>> user_table_last_visit));
> >>>>>
> >>>>
> >>>> Por estas 2 linhas:
> >>>> $UserModel->id = $row[$this->user_model]['id']; $res =
> >>>> $UserModel-
> >>>>
> >>>>> saveField($this->user_table_last_visit,$row[$this-
> >>>>> user_model][$this->user_table_last_visit],true);
> >>>>
> >>>>
> >>>> Estas dicas foram extraidas deste blog:
> >>>> http://www.ancientwisdom.cc/news/archives/111
> >>>>
> >>>> Espero q te ajude
> >>>>
> >>>>
> >>>>> Boa noite Bill, Gustavo e lista,
> >>>>>
> >>>>> Bill, funcionou, agora ele não tenta mais criar um registro
> >>>>> novo na tabela de usuários e atualiza os dados de last
> >>>>> visit e modified corretamente. Porém continua o notice:
> >>>>>
> >>>>> Notice: Only variables should be assigned by reference in
> >>>>> C:\xampp\htdocs\logbook\app\controllers\components\oth_auth.php on
> lin
> >>>>> e 301
> >>>>>
> >>>>> Obviamente seguido de um "Cannot modify headers" já que
> >>>>> isso acontece em um redirecionamento.
> >>>>>
> >>>>> Algum outro ajuste no oth_auth.php?
> >>>>>
> >>>>> Grato.
> >>>>> Benito
> >>>>>
> >>>>> On 11/8/07, Bill wrote:> Bom, vamos lá,
> >>>>> instalei aqui o othAuth e funcionou perfeito, mas tem
> >>>>> alguns ajustes necessários, primeiro, vamos tratar deste
> >>>>> erro:
> >>>>>
> >>>>>> + ou - na linha 323 do component oth_auth.php, temos o
> >>>>>> seguinte trecho de código:
> >>>>>>
> >>>>>> // Update the last visit date to now
> >>>>>> if(isset($this->user_table_last_visit))
> >>>>>> { $row[$this->user_model][$this-
> >>>>>>
> >>>>>>> user_table_last_visit] = date('Y-m-d H:i:s');
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>> $res = $UserModel->save($row,true,array($this-
> >>>>>>
> >>>>>>> user_table_last_visit)); } Substitua
> >>>>>>> por isto:
> >>>>>>>
> >>>>>> // Update the last visit date to now
> >>>>>> if(isset($this->user_table_last_visit))
> >>>>>> { $row[$this->user_model][$this-
> >>>>>>
> >>>>>>> user_table_last_visit] = date('Y-m-d H:i:s');
> >>>>>>>
> >>>>>> $UserModel->id = $row[$this-
> >>>>>> >user_model]['id']; $res = $UserModel-
> >>>>>> >saveField($this-
> >>>>>>
> >>>>>>> user_table_last_visit,$row[$this->user_model][$this-
> >>>>>>> user_table_last_visit],true); }
> >>>>>>
> >>>>>>
> >>>>>> Na linha ($res = $UserModel->saveField($this-
> >>>>>>
> >>>>>>> user_table_last_visit,$row[$this->user_model][$this-
> >>>>>>> user_table_last_visit],true); ) eu troquei o $UserModel-
> >>>>>>>
> >>>>>>>> save
> >>>>>>>>
> >>>>>> por $UserModel->saveField, que atualiza o registro,
> >>>>>> atualizando assim a data de autenticação do usuário,
> >>>>>> quando o save, apenas está tentando isnerir um novo
> >>>>>> registro, por isto dá erro
> >>>>>>
> >>>>>>
> >>>>>> Ah, acessa a tabela de usuários do othAuth e deleta um
> >>>>>> registro em branco q tem lá, ele foi criado por este save
> >>>>>> besta ai de cima..rs
> >>>>>>
> >>>>>> Qquer coisa so perguntar
> >>>>>>
> >>>>>>
> >>>>>>> Bom dia,
> >>>>>>>
> >>>>>>> Não falei que iria começar a fazer perguntas? Seguindo
> >>>>>>> a documentação do othAuth consegui por para funcionar
> >>>>>>> (ainda tem bugs) mas estou tendo dois problemas:
> >>>>>>>
> >>>>>>> 1) Recebo a mensagem: Notice: Only variables should be
> >>>>>>> assigned by reference in
> >>>>>>> C:\xampp\htdocs\logbook\app\controllers\components\oth_auth.php on
> lin
> >>>>>>> e 301 logo depois de logar com usuário correto. A
> >>>>>>> linha 301 está, se não me engano, fazendo o save do
> >>>>>>> LoginAttempt model. Como dá esse Notice, não grava o
> >>>>>>> login attempt e, obviamente, não faz o redirect
> >>>>>>> corretamente.
> >>>>>>>
> >>>>>>> 2) Se apago o cookie de sessão (para forçar um login),
> >>>>>>> recebo, além do item um acima, um
> >>>>>>>
> >>>>>>>
> >>>>>>> Query: INSERT INTO `users`
> >>>>>>> (`last_visit`,`created`,`modified`) VALUES ('2007-11-08
> >>>>>>> 02:05:27','2007-11-08 02:05:27','2007-11-08 02:05:27')
> >>>>>>> Warning: SQL Error: 1062: Duplicate entry '' for key 2
> >>>>>>> in
> >>>>>>>
> C:\xampp\htdocs\cake_core\cake\libs\model\datasources\dbo_source.php o
> >>>>>>> n line 440 que, neste caso, está tentando dar INSERT
> >>>>>>> de valores na tabela users para uma key 2. O detalhe é
> >>>>>>> que só tenho um usuário na tabela users e ele tem key
> >>>>>>> (Id) 1. Os campos create e modified e last_visit do
> >>>>>>> user (id=1) não são mexidos, mas a entrada 2 é criada
> >>>>>>> (caso não exista) e depois recebo esse erro. Pergunta,
> >>>>>>> o othAuth não deveria tentar um "UPDATE" ao invés de
> >>>>>>> INSERT? Alguém sabe o que está causando isso? Grato
> >>>>>>> Benito
> >
> >
> >
> >
>
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do
Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---