Auth em duas tabelas de usuários

29 views
Skip to first unread message

Marcelo Santos

unread,
Dec 8, 2016, 11:33:08 AM12/8/16
to web2py-users-brazil
Boa tarde galera!
Estou com um problema em uma autenticação no web2py.
Preciso usar a autenticação do web2py usando as tabelas de uma aplicação que não posso alterar.
A autenticação é feita em duas tabelas, uma tabela dos administradores e outra tabela dos usuários comuns.
Portanto são duas tabelas diferentes que não posso adicionar colunas.
Como posso trabalhar com essas tabelas sem perder as vantagens do auth do web2py?

Outro detalhe: na tabela app_users a coluna de senha está salva sem criptografia.


mysql> desc app_admins;
+--------------+--------------+------+-----+-------------------+----------------+
| Field        | Type         | Null | Key | Default           | Extra          |
+--------------+--------------+------+-----+-------------------+----------------+
| userid       | bigint(20)   | NO   | PRI | NULL              | auto_increment |
| login        | char(50)     | NO   | UNI | NULL              |                |
| pwd_encoded  | varchar(250) | NO   |     | NULL              |                |
| name         | char(50)     | YES  |     | NULL              |                |
+--------------+--------------+------+-----+-------------------+----------------+

mysql> desc app_users;
+---------------------+---------------+------+-----+---------------------+----------------+
| Field               | Type          | Null | Key | Default             | Extra          |
+---------------------+---------------+------+-----+---------------------+----------------+
| id                  | bigint(20)    | NO   | PRI | NULL                | auto_increment |
| username            | varchar(50)   | NO   | UNI | NULL                |                |
| uipass              | varchar(50)   | NO   |     | NULL                |                |
+---------------------+---------------+------+-----+---------------------+----------------+


Resumindo:
  • Autenticação no web2py
  • Duas tabelas de usuários
  • Em uma das tabelas o password não é criptografado.

Já tentei coisas como: 
  • Field(.. rname = ...)
  • auth.settings.table_user_name = ...

Se puderem me dar uma pista sobre o caminho que devo seguir ...
vlwwww


Fabiano Almeida

unread,
Dec 8, 2016, 1:10:53 PM12/8/16
to web2py-us...@googlegroups.com
Marcelo, se pesquisar no histórico da lista, vai encontrar thread sobre sobreescrever a autenticação... No teu cenário, inicialmente penso em 2 formas:
> Caminhos de autenticação diferenciados para admin e users, podendo usar forms distintos ou um form com algum controle que define o tipo de usuário logando (checkbox ou radio button). Este caminho é útil quando há possibilidade de existir username igual para os dois tipos de usuários;
> Uma única função de autenticação, na qual primeiro tentaria localizar numa das tabelas, e se não encontrar pesquisa na outra. Esta forma é interessante se o sistema não permitir o mesmo username para user e admin.

Att.,

Fabiano.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Carlos Costa

unread,
Dec 8, 2016, 7:40:53 PM12/8/16
to web2py-us...@googlegroups.com
Dá uma olhada aqui. 
https://github.com/web2py/web2py/tree/master/gluon/contrib/login_methods
Vai ser fácil implementar seu próprio método de autenticação.

Esse aqui é bem simples. Serve de base para o seu:

A diferença é que você vai consultar num banco.
Para isso passe sua instância da DAL (db...) como parâmetro

Assim como se faz no método ldap


Para se desinscrever, envie email a: web2py-users-brazil+unsubscribe...@googlegroups.com

Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsubscribe...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem por estar inscrito no grupo web2py-users-brazil.
Para enviar uma mensagem ao grupo, envie email a: web2py-users-brazil@googlegroups.com
Para se desinscrever, envie email a: web2py-users-brazil+unsub...@googlegroups.com
Para mais opções, visite o site do grupo em: http://groups.google.com/group/web2py-users-brazil?hl=en
---
Você recebeu essa mensagem porque está inscrito no grupo "web2py-users-brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para web2py-users-brazil+unsub...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--


Carlos J. Costa
Cientista da Computação  | BS Computer Science
Esp. Gestão em Telecom   |
PgC Telecom Mangement
<º))><
Message has been deleted

Marcelo Santos

unread,
Dec 13, 2016, 6:42:24 AM12/13/16
to web2py-users-brazil
Obrigado pelas dicas fabiano e carlos, vou fazer alguns testes e mando um feedback aqui.
Reply all
Reply to author
Forward
0 new messages