Beispiel #1
0
    def create(self, username, domain, password, email):
        if password is None:
            password = self.get_random_password()

        elif settings.XMPP_HOSTS[domain].get('RESERVE', False):
            self.set_password(username, domain, password)
            self.set_email(username, domain, email)
            return

        result = self.rpc('register',
                          user=username,
                          host=domain,
                          password=password)
        if result['res'] == 0:
            # set last activity, so that no user has the activity 'Never'. This way the account
            # isn't removed with delete_old_users.
            try:
                self.rpc('set_last',
                         user=username,
                         host=domain,
                         timestamp=int(time.time()),
                         status='Registered')
            except TemporaryError:
                log.error('Temporary error when setting last activity.')

            return
        elif result['res'] == 1:
            raise UserExists()
        else:
            raise BackendError(result.get('text', 'Unknown Error'))
Beispiel #2
0
 def exists(self, username, domain):
     result = self.rpc('check_account', user=username, host=domain)
     if result['res'] == 0:
         return True
     elif result['res'] == 1:
         return False
     else:
         raise BackendError(result.get('text', 'Unknown Error'))
Beispiel #3
0
    def check_password(self, username, domain, password):
        code, out, err = self.ctl('check_password', username, domain, password)

        if code == 0:
            return True
        elif code == 1:
            return False
        else:
            raise BackendError(code)
Beispiel #4
0
 def set_password(self, username, domain, password):
     result = self.rpc('change_password',
                       user=username,
                       host=domain,
                       newpass=password)
     if result['res'] == 0:
         return True
     else:
         raise BackendError(result.get('text', 'Unknown Error'))
Beispiel #5
0
 def check_password(self, username, domain, password):
     result = self.rpc('check_password',
                       user=username,
                       host=domain,
                       password=password)
     if result['res'] == 0:
         return True
     elif result['res'] == 1:
         return False
     else:
         raise BackendError(result.get('text', 'Unknown Error'))
Beispiel #6
0
    def create(self, username, domain, password, email):
        if password is None:
            password = self.get_random_password()

        elif settings.XMPP_HOSTS[domain].get('RESERVE', False):
            self.set_password(username, domain, password)
            self.set_email(username, domain, email)
            return

        code, out, err = self.ctl('register', username, domain, password)

        if code == 0:
            self.ctl('set_last', username, domain, int(time.time()),
                     'Registered')
            return
        elif code == 1:
            raise UserExists()
        else:
            raise BackendError(code)  # TODO: 3 means nodedown.
Beispiel #7
0
 def set_password(self, username, domain, password):
     code, out, err = self.ctl('change_password', username, domain,
                               password)
     if code != 0:  # 0 is also returned if the user doesn't exist.
         raise BackendError(code)
Beispiel #8
0
 def remove(self, username, domain):
     code, out, err = self.ctl('unregister', username, domain)
     if code != 0:  # 0 is also returned if the user does not exist
         raise BackendError(code)
Beispiel #9
0
    def all_users(self, domain):
        code, out, err = self.ctl('registered_users', domain)
        if code != 0:
            raise BackendError(code)

        return set(out.splitlines())
Beispiel #10
0
 def set_unusable_password(self, username, domain):
     code, out, err = self.ctl('ban_account', username, domain,
                               'by django-xmpp-account')
     if code != 0:
         raise BackendError(code)
Beispiel #11
0
 def remove(self, username, domain):
     result = self.rpc('unregister', user=username, host=domain)
     if result['res'] == 0:
         return True
     else:
         raise BackendError(result.get('text', 'Unknown Error'))