diff --git a/allianceauth/services/modules/ips4/manager.py b/allianceauth/services/modules/ips4/manager.py index 017864b8..1b723189 100644 --- a/allianceauth/services/modules/ips4/manager.py +++ b/allianceauth/services/modules/ips4/manager.py @@ -4,16 +4,20 @@ import string import re from django.db import connections from passlib.hash import bcrypt +from django.conf import settings logger = logging.getLogger(__name__) +TABLE_PREFIX = getattr(settings, 'IPS4_TABLE_PREFIX', '') + + class Ips4Manager: - SQL_ADD_USER = r"INSERT INTO core_members (name, email, members_pass_hash, members_pass_salt, " \ - r"member_group_id) VALUES (%s, %s, %s, %s, %s)" - SQL_GET_ID = r"SELECT member_id FROM core_members WHERE name = %s" - SQL_UPDATE_PASSWORD = r"UPDATE core_members SET members_pass_hash = %s, members_pass_salt = %s WHERE name = %s" - SQL_DEL_USER = r"DELETE FROM core_members WHERE member_id = %s" + SQL_ADD_USER = r"INSERT INTO %score_members (name, email, members_pass_hash, members_pass_salt, " \ + r"member_group_id) VALUES (%%s, %%s, %%s, %%s, %%s)" % TABLE_PREFIX + SQL_GET_ID = r"SELECT member_id FROM %score_members WHERE name = %%s" % TABLE_PREFIX + SQL_UPDATE_PASSWORD = r"UPDATE %score_members SET members_pass_hash = %%s, members_pass_salt = %%s WHERE name = %%s" % TABLE_PREFIX + SQL_DEL_USER = r"DELETE FROM %score_members WHERE member_id = %%s" % TABLE_PREFIX MEMBER_GROUP_ID = 3 diff --git a/allianceauth/services/modules/market/manager.py b/allianceauth/services/modules/market/manager.py index bec87ca2..6f0a788c 100644 --- a/allianceauth/services/modules/market/manager.py +++ b/allianceauth/services/modules/market/manager.py @@ -5,26 +5,30 @@ import re from django.db import connections from passlib.hash import bcrypt +from django.conf import settings # requires yum install libffi-devel and pip install bcrypt logger = logging.getLogger(__name__) +TABLE_PREFIX = getattr(settings, 'MARKET_TABLE_PREFIX', 'fos_') + + class MarketManager: def __init__(self): pass - SQL_ADD_USER = r"INSERT INTO fos_user (username, username_canonical, email, email_canonical, enabled, salt," \ + SQL_ADD_USER = r"INSERT INTO %suser (username, username_canonical, email, email_canonical, enabled, salt," \ r"password, locked, expired, roles, credentials_expired, characterid, characterName)" \ - r"VALUES (%s, %s, %s, %s, 1,%s, %s, 0, 0, 'a:0:{}', 0, %s, %s) " - SQL_GET_USER_ID = r"SELECT id FROM fos_user WHERE username = %s" - SQL_DISABLE_USER = r"UPDATE fos_user SET enabled = '0' WHERE username = %s" - SQL_ENABLE_USER = r"UPDATE fos_user SET enabled = '1' WHERE username = %s" - SQL_UPDATE_PASSWORD = r"UPDATE fos_user SET password = %s, salt = %s WHERE username = %s" - SQL_CHECK_EMAIL = r"SELECT email FROM fos_user WHERE email = %s" - SQL_CHECK_USERNAME = r"SELECT username FROM fos_user WHERE username = %s" - SQL_UPDATE_USER = r"UPDATE fos_user SET password = %s, salt = %s, enabled = '1' WHERE username = %s" + r"VALUES (%%s, %%s, %%s, %%s, 1,%%s, %%s, 0, 0, 'a:0:{}', 0, %%s, %%s) " % TABLE_PREFIX + SQL_GET_USER_ID = r"SELECT id FROM %suser WHERE username = %%s" % TABLE_PREFIX + SQL_DISABLE_USER = r"UPDATE %suser SET enabled = '0' WHERE username = %%s" % TABLE_PREFIX + SQL_ENABLE_USER = r"UPDATE %suser SET enabled = '1' WHERE username = %%s" % TABLE_PREFIX + SQL_UPDATE_PASSWORD = r"UPDATE %suser SET password = %%s, salt = %%s WHERE username = %%s" % TABLE_PREFIX + SQL_CHECK_EMAIL = r"SELECT email FROM %suser WHERE email = %%s" % TABLE_PREFIX + SQL_CHECK_USERNAME = r"SELECT username FROM %suser WHERE username = %%s" % TABLE_PREFIX + SQL_UPDATE_USER = r"UPDATE %suser SET password = %%s, salt = %%s, enabled = '1' WHERE username = %%s" % TABLE_PREFIX @staticmethod def __santatize_username(username): @@ -47,31 +51,31 @@ class MarketManager: @classmethod def check_username(cls, username): - logger.debug("Checking alliance market username %s" % username) + logger.debug("Checking alliance market username %%s" % username) cursor = connections['market'].cursor() cursor.execute(cls.SQL_CHECK_USERNAME, [cls.__santatize_username(username)]) row = cursor.fetchone() if row: - logger.debug("Found user %s on alliance market" % username) + logger.debug("Found user %%s on alliance market" % username) return True - logger.debug("User %s not found on alliance market" % username) + logger.debug("User %%s not found on alliance market" % username) return False @classmethod def check_user_email(cls, username, email): - logger.debug("Checking if alliance market email exists for user %s" % username) + logger.debug("Checking if alliance market email exists for user %%s" % username) cursor = connections['market'].cursor() cursor.execute(cls.SQL_CHECK_EMAIL, [email]) row = cursor.fetchone() if row: - logger.debug("Found user %s email address on alliance market" % username) + logger.debug("Found user %%s email address on alliance market" % username) return True - logger.debug("User %s email address not found on alliance market" % username) + logger.debug("User %%s email address not found on alliance market" % username) return False @classmethod def add_user(cls, username, email, characterid, charactername): - logger.debug("Adding new market user %s" % username) + logger.debug("Adding new market user %%s" % username) plain_password = cls.__generate_random_pass() hash = cls._gen_pwhash(plain_password) salt = cls._get_salt(hash) @@ -79,33 +83,33 @@ class MarketManager: if not cls.check_username(username): if not cls.check_user_email(username, email): try: - logger.debug("Adding user %s to alliance market" % username) + logger.debug("Adding user %%s to alliance market" % username) cursor = connections['market'].cursor() cursor.execute(cls.SQL_ADD_USER, [username_clean, username_clean, email, email, salt, hash, characterid, charactername]) return username_clean, plain_password except: - logger.debug("Unsuccessful attempt to add market user %s" % username) + logger.debug("Unsuccessful attempt to add market user %%s" % username) return "", "" else: - logger.debug("Alliance market email %s already exists Updating instead" % email) + logger.debug("Alliance market email %%s already exists Updating instead" % email) username_clean, password = cls.update_user_info(username) return username_clean, password else: - logger.debug("Alliance market username %s already exists Updating instead" % username) + logger.debug("Alliance market username %%s already exists Updating instead" % username) username_clean, password = cls.update_user_info(username) return username_clean, password @classmethod def disable_user(cls, username): - logger.debug("Disabling alliance market user %s " % username) + logger.debug("Disabling alliance market user %%s " % username) cursor = connections['market'].cursor() cursor.execute(cls.SQL_DISABLE_USER, [username]) return True @classmethod def update_custom_password(cls, username, plain_password): - logger.debug("Updating alliance market user %s password" % username) + logger.debug("Updating alliance market user %%s password" % username) if cls.check_username(username): username_clean = cls.__santatize_username(username) hash = cls._gen_pwhash(plain_password) @@ -114,12 +118,12 @@ class MarketManager: cursor.execute(cls.SQL_UPDATE_PASSWORD, [hash, salt, username_clean]) return plain_password else: - logger.error("Unable to update alliance market user %s password" % username) + logger.error("Unable to update alliance market user %%s password" % username) return "" @classmethod def update_user_password(cls, username): - logger.debug("Updating alliance market user %s password" % username) + logger.debug("Updating alliance market user %%s password" % username) if cls.check_username(username): username_clean = cls.__santatize_username(username) plain_password = cls.__generate_random_pass() @@ -129,12 +133,12 @@ class MarketManager: cursor.execute(cls.SQL_UPDATE_PASSWORD, [hash, salt, username_clean]) return plain_password else: - logger.error("Unable to update alliance market user %s password" % username) + logger.error("Unable to update alliance market user %%s password" % username) return "" @classmethod def update_user_info(cls, username): - logger.debug("Updating alliance market user %s" % username) + logger.debug("Updating alliance market user %%s" % username) try: username_clean = cls.__santatize_username(username) plain_password = cls.__generate_random_pass() @@ -144,5 +148,5 @@ class MarketManager: cursor.execute(cls.SQL_UPDATE_USER, [hash, salt, username_clean]) return username_clean, plain_password except: - logger.debug("Alliance market update user failed for %s" % username) + logger.debug("Alliance market update user failed for %%s" % username) return "", "" diff --git a/allianceauth/services/modules/phpbb3/manager.py b/allianceauth/services/modules/phpbb3/manager.py index 01b2dec8..0df4f299 100755 --- a/allianceauth/services/modules/phpbb3/manager.py +++ b/allianceauth/services/modules/phpbb3/manager.py @@ -14,40 +14,43 @@ from django.conf import settings logger = logging.getLogger(__name__) +TABLE_PREFIX = getattr(settings, 'PHPBB3_TABLE_PREFIX', 'phpbb_') + + class Phpbb3Manager: - SQL_ADD_USER = r"INSERT INTO phpbb_users (username, username_clean, " \ + SQL_ADD_USER = r"INSERT INTO %susers (username, username_clean, " \ r"user_password, user_email, group_id, user_regdate, user_permissions, " \ - r"user_sig, user_lang) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, 'en')" + r"user_sig, user_lang) VALUES (%%s, %%s, %%s, %%s, %%s, %%s, %%s, %%s, 'en')" % TABLE_PREFIX - SQL_DEL_USER = r"DELETE FROM phpbb_users where username = %s" + SQL_DEL_USER = r"DELETE FROM %susers where username = %%s" % TABLE_PREFIX - SQL_DIS_USER = r"UPDATE phpbb_users SET user_email= %s, user_password=%s WHERE username = %s" + SQL_DIS_USER = r"UPDATE %susers SET user_email= %%s, user_password=%%s WHERE username = %%s" % TABLE_PREFIX - SQL_USER_ID_FROM_USERNAME = r"SELECT user_id from phpbb_users WHERE username = %s" + SQL_USER_ID_FROM_USERNAME = r"SELECT user_id from %susers WHERE username = %%s" % TABLE_PREFIX - SQL_ADD_USER_GROUP = r"INSERT INTO phpbb_user_group (group_id, user_id, user_pending) VALUES (%s, %s, %s)" + SQL_ADD_USER_GROUP = r"INSERT INTO %suser_group (group_id, user_id, user_pending) VALUES (%%s, %%s, %%s)" % TABLE_PREFIX - SQL_GET_GROUP_ID = r"SELECT group_id from phpbb_groups WHERE group_name = %s" + SQL_GET_GROUP_ID = r"SELECT group_id from %sgroups WHERE group_name = %%s" % TABLE_PREFIX - SQL_ADD_GROUP = r"INSERT INTO phpbb_groups (group_name,group_desc,group_legend) VALUES (%s,%s,0)" + SQL_ADD_GROUP = r"INSERT INTO %sgroups (group_name,group_desc,group_legend) VALUES (%%s,%%s,0)" % TABLE_PREFIX - SQL_UPDATE_USER_PASSWORD = r"UPDATE phpbb_users SET user_password = %s WHERE username = %s" + SQL_UPDATE_USER_PASSWORD = r"UPDATE %susers SET user_password = %%s WHERE username = %%s" % TABLE_PREFIX - SQL_REMOVE_USER_GROUP = r"DELETE FROM phpbb_user_group WHERE user_id=%s AND group_id=%s " + SQL_REMOVE_USER_GROUP = r"DELETE FROM %suser_group WHERE user_id=%%s AND group_id=%%s " % TABLE_PREFIX - SQL_GET_ALL_GROUPS = r"SELECT group_id, group_name FROM phpbb_groups" + SQL_GET_ALL_GROUPS = r"SELECT group_id, group_name FROM %sgroups" % TABLE_PREFIX - SQL_GET_USER_GROUPS = r"SELECT phpbb_groups.group_name FROM phpbb_groups , phpbb_user_group WHERE " \ - r"phpbb_user_group.group_id = phpbb_groups.group_id AND user_id=%s" + SQL_GET_USER_GROUPS = r"SELECT %(prefix)sgroups.group_name FROM %(prefix)sgroups , %(prefix)suser_group WHERE " \ + r"%(prefix)suser_group.group_id = %(prefix)sgroups.group_id AND user_id=%%s" % {'prefix': TABLE_PREFIX} - SQL_ADD_USER_AVATAR = r"UPDATE phpbb_users SET user_avatar_type=2, user_avatar_width=64, user_avatar_height=64, " \ - "user_avatar=%s WHERE user_id = %s" + SQL_ADD_USER_AVATAR = r"UPDATE %susers SET user_avatar_type=2, user_avatar_width=64, user_avatar_height=64, " \ + "user_avatar=%%s WHERE user_id = %%s" % TABLE_PREFIX - SQL_CLEAR_USER_PERMISSIONS = r"UPDATE phpbb_users SET user_permissions = '' WHERE user_Id = %s" + SQL_CLEAR_USER_PERMISSIONS = r"UPDATE %susers SET user_permissions = '' WHERE user_id = %%s" % TABLE_PREFIX - SQL_DEL_SESSION = r"DELETE FROM phpbb_sessions where session_user_id = %s" + SQL_DEL_SESSION = r"DELETE FROM %ssessions where session_user_id = %%s" % TABLE_PREFIX - SQL_DEL_AUTOLOGIN = r"DELETE FROM phpbb_sessions_keys where user_id = %s" + SQL_DEL_AUTOLOGIN = r"DELETE FROM %ssessions_keys where user_id = %%s" % TABLE_PREFIX def __init__(self): pass diff --git a/allianceauth/services/modules/smf/manager.py b/allianceauth/services/modules/smf/manager.py index ff9f346a..194c2806 100644 --- a/allianceauth/services/modules/smf/manager.py +++ b/allianceauth/services/modules/smf/manager.py @@ -12,35 +12,38 @@ from django.conf import settings logger = logging.getLogger(__name__) +TABLE_PREFIX = getattr(settings, 'SMF_TABLE_PREFIX', 'smf_') + + class SmfManager: def __init__(self): pass - SQL_ADD_USER = r"INSERT INTO smf_members (member_name, passwd, email_address, date_registered, real_name," \ + SQL_ADD_USER = r"INSERT INTO %smembers (member_name, passwd, email_address, date_registered, real_name," \ r" buddy_list, message_labels, openid_uri, signature, ignore_boards) " \ - r"VALUES (%s, %s, %s, %s, %s, 0, 0, 0, 0, 0)" + r"VALUES (%%s, %%s, %%s, %%s, %%s, 0, 0, 0, 0, 0)" % TABLE_PREFIX - SQL_DEL_USER = r"DELETE FROM smf_members where member_name = %s" + SQL_DEL_USER = r"DELETE FROM %smembers where member_name = %%s" % TABLE_PREFIX - SQL_DIS_USER = r"UPDATE smf_members SET email_address = %s, passwd = %s WHERE member_name = %s" + SQL_DIS_USER = r"UPDATE %smembers SET email_address = %%s, passwd = %%s WHERE member_name = %%s" % TABLE_PREFIX - SQL_USER_ID_FROM_USERNAME = r"SELECT id_member from smf_members WHERE member_name = %s" + SQL_USER_ID_FROM_USERNAME = r"SELECT id_member from %smembers WHERE member_name = %%s" % TABLE_PREFIX - SQL_ADD_USER_GROUP = r"UPDATE smf_members SET additional_groups = %s WHERE id_member = %s" + SQL_ADD_USER_GROUP = r"UPDATE %smembers SET additional_groups = %%s WHERE id_member = %%s" % TABLE_PREFIX - SQL_GET_GROUP_ID = r"SELECT id_group from smf_membergroups WHERE group_name = %s" + SQL_GET_GROUP_ID = r"SELECT id_group from %smembergroups WHERE group_name = %%s" % TABLE_PREFIX - SQL_ADD_GROUP = r"INSERT INTO smf_membergroups (group_name,description) VALUES (%s,%s)" + SQL_ADD_GROUP = r"INSERT INTO %smembergroups (group_name,description) VALUES (%%s,%%s)" % TABLE_PREFIX - SQL_UPDATE_USER_PASSWORD = r"UPDATE smf_members SET passwd = %s WHERE member_name = %s" + SQL_UPDATE_USER_PASSWORD = r"UPDATE %smembers SET passwd = %%s WHERE member_name = %%s" % TABLE_PREFIX - SQL_REMOVE_USER_GROUP = r"UPDATE smf_members SET additional_groups = %s WHERE id_member = %s" + SQL_REMOVE_USER_GROUP = r"UPDATE %smembers SET additional_groups = %%s WHERE id_member = %%s" % TABLE_PREFIX - SQL_GET_ALL_GROUPS = r"SELECT id_group, group_name FROM smf_membergroups" + SQL_GET_ALL_GROUPS = r"SELECT id_group, group_name FROM %smembergroups" % TABLE_PREFIX - SQL_GET_USER_GROUPS = r"SELECT additional_groups FROM smf_members WHERE id_member = %s" + SQL_GET_USER_GROUPS = r"SELECT additional_groups FROM %smembers WHERE id_member = %%s" % TABLE_PREFIX - SQL_ADD_USER_AVATAR = r"UPDATE smf_members SET avatar = %s WHERE id_member = %s" + SQL_ADD_USER_AVATAR = r"UPDATE %smembers SET avatar = %%s WHERE id_member = %%s" % TABLE_PREFIX @staticmethod def _sanitize_groupname(name): diff --git a/docs/installation/services/phpbb3.md b/docs/installation/services/phpbb3.md index 41631e89..82c6b495 100644 --- a/docs/installation/services/phpbb3.md +++ b/docs/installation/services/phpbb3.md @@ -115,6 +115,8 @@ Under Database Settings, set the following: - Database Username is your auth MySQL user, usually `allianceserver` - Database Password is this user’s password +If you use a table prefix other than the standard `phpbb_` you need to add an additional setting to your auth project's settings file, `PHPBB3_TABLE_PREFIX = ''`, and enter the prefix. + You should see `Succesful Connection` and proceed. Enter administrator credentials on the next page. diff --git a/docs/installation/services/smf.md b/docs/installation/services/smf.md index eff427a7..9044449c 100644 --- a/docs/installation/services/smf.md +++ b/docs/installation/services/smf.md @@ -104,4 +104,6 @@ Under Database Settings, set the following: - Database Username is your auth MySQL user, usually `allianceserver` - Database Password is this user’s password +If you use a table prefix other than the standard `smf_` you need to add an additional setting to your auth project's settings file, `SMF_TABLE_PREFIX = ''`, and enter the prefix. + Follow the directions in the installer. \ No newline at end of file