that should fix it

diff --git a/gluon/tools.py b/gluon/tools.py
--- a/gluon/tools.py
+++ b/gluon/tools.py
@@ -847,6 +847,7 @@
         self.settings.login_methods = [self]
         self.settings.login_form = self
         self.settings.login_email_validate = True
+        self.settings.login_userfield = None

         self.settings.logout_next = self.url('index')
         self.settings.logout_onlogout = None
@@ -1294,7 +1295,9 @@
         request = self.environment.request
         session = self.environment.session
         table_user = self.settings.table_user
-        if 'username' in table_user.fields:
+        if self.settings.login_userfield:
+            userfield = self.settings.login_userfield
+        elif 'username' in table_user.fields:
             userfield = 'username'
         else:
             userfield = 'email'
@@ -1326,7 +1329,9 @@
         """

         table_user = self.settings.table_user
-        if 'username' in table_user.fields:
+        if self.settings.login_userfield:
+            username = self.settings.login_userfield
+        elif 'username' in table_user.fields:
             username = 'username'
         else:
             username = 'email'

On Sep 15, 1:11 pm, selecta <[email protected]> wrote:
> I have customized my auth table and allow via a configuration file to
> login via LDAP. If LDAP is enabled the username field should be used
> for login if LDAP is not enabled the email field should be used for
> logging in.
> Is this possible?
> looking into def login_bare() and  def login() it seems like that when
> a username field is available it is always used.
> I guess I have to fix this on my own, right? Just checking to see if
> am correct.

Reply via email to