allianceauth/services/jabber_manager.py

63 lines
2.0 KiB
Python

import os
from django.conf import settings
from openfire import exception
from openfire import UserService
from urlparse import urlparse
class JabberManager():
def __init__(self):
pass
def __add_address_to_username(self, username):
address = urlparse(settings.OPENFIRE_ADDRESS).netloc.split(":")[0]
completed_username = username + "@" + address
return completed_username
def __santatize_username(self, username):
sanatized = username.replace(" ", "_")
return sanatized.lower()
def __generate_random_pass(self):
return os.urandom(8).encode('hex')
def add_user(self, username):
try:
sanatized_username = self.__santatize_username(username)
password = self.__generate_random_pass()
api = UserService(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
api.add_user(sanatized_username, password)
except exception.UserAlreadyExistsException:
# User exist
return "", ""
return sanatized_username, password
def delete_user(self, username):
try:
api = UserService(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
api.delete_user(username)
return True
except exception.UserNotFoundException:
return False
def lock_user(self, username):
api = UserService(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
api.lock_user(username)
def unlock_user(self, username):
api = UserService(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
api.unlock_user(username)
def update_user_pass(self, username):
try:
password = self.__generate_random_pass()
api = UserService(settings.OPENFIRE_ADDRESS, settings.OPENFIRE_SECRET_KEY)
api.update_user(username, password)
return password
except exception.UserNotFoundException:
return ""