Ejemplo n.º 1
0
 def authenticate(self, username=None, password=None, realm=None, **kwargs):
     UserModel = get_user_model()
     if username is None:
         username = kwargs.get(UserModel.USERNAME_FIELD)
     if not username:
         return
     query = self.get_query(username, realm)
     users = UserModel.objects.filter(query)
     # order by username to make username without realm come before usernames with realms
     # i.e. "toto" should come before "*****@*****.**"
     users = users.order_by(UserModel.USERNAME_FIELD)
     for user in users:
         if user.check_password(password):
             user_login_success(user.get_username())
             return user
         else:
             user_login_failure(user.get_username())
Ejemplo n.º 2
0
 def authenticate(self, username=None, password=None, realm=None, **kwargs):
     UserModel = get_user_model()
     if username is None:
         username = kwargs.get(UserModel.USERNAME_FIELD)
     if not username:
         return
     query = self.get_query(username, realm)
     users = get_user_queryset().filter(query)
     # order by username to make username without realm come before usernames with realms
     # i.e. "toto" should come before "*****@*****.**"
     users = users.order_by('-is_active', UserModel.USERNAME_FIELD)
     for user in users:
         if user.check_password(password):
             user_login_success(user.get_username())
             return user
         else:
             user_login_failure(user.get_username())
Ejemplo n.º 3
0
                        continue
                    except ldap.LDAPError, e:
                        log.error('user lookup failed: with query %r got error '
                                '%s: %s', username, query, e)
                        continue
                if not authz_ids:
                    continue

                try:
                    for authz_id in authz_ids:
                        try:
                            conn.simple_bind_s(authz_id, utf8_password)
                            user_login_success(authz_id)
                            break
                        except ldap.INVALID_CREDENTIALS:
                            user_login_failure(authz_id)
                            pass
                    else:
                        log.debug('user bind failed: invalid credentials')
                        if block['replicas']:
                            break
                        continue
                except ldap.NO_SUCH_OBJECT:
                    # should not happen as we just searched for this object !
                    log.error('user bind failed: authz_id not found %r', ', '.join(authz_ids))
                    if block['replicas']:
                        break
                return self._return_user(authz_id, password, conn, block)
            except ldap.CONNECT_ERROR:
                log.error('connection to %r failed, did '
                        'you forget to declare the TLS certificate in '