mirror of
https://github.com/nikdoof/test-auth.git
synced 2025-12-15 23:32:17 +00:00
Reworked DB accessing plugins to use a common API class
This commit is contained in:
@@ -57,3 +57,33 @@ class BaseService():
|
|||||||
def login(uid):
|
def login(uid):
|
||||||
""" Login the user and provide cookies back """
|
""" Login the user and provide cookies back """
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class BaseDBService(BaseService):
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _db(self):
|
||||||
|
if not hasattr(self, '_db'):
|
||||||
|
# Use the master DB settings, bar the database name
|
||||||
|
backend = load_backend(settings.DATABASE_ENGINE)
|
||||||
|
self._db = backend.DatabaseWrapper({
|
||||||
|
'DATABASE_HOST': settings.DATABASE_HOST,
|
||||||
|
'DATABASE_NAME': self.settings['database_name'],
|
||||||
|
'DATABASE_OPTIONS': {},
|
||||||
|
'DATABASE_PASSWORD': settings.DATABASE_PASSWORD,
|
||||||
|
'DATABASE_PORT': settings.DATABASE_PORT,
|
||||||
|
'DATABASE_USER': settings.DATABASE_USER,
|
||||||
|
'TIME_ZONE': settings.TIME_ZONE,})
|
||||||
|
|
||||||
|
return self._db
|
||||||
|
|
||||||
|
@property
|
||||||
|
def _dbcursor(self):
|
||||||
|
return self._db.dbcursor()
|
||||||
|
|
||||||
|
def __del__(self):
|
||||||
|
if hasattr(self, '_db'):
|
||||||
|
self._db.connection.commit()
|
||||||
|
self._db.close()
|
||||||
|
self._db = None
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,10 @@ import crypt
|
|||||||
import random
|
import random
|
||||||
import time
|
import time
|
||||||
from django.db import load_backend, transaction
|
from django.db import load_backend, transaction
|
||||||
from sso.services import BaseService
|
from sso.services import BaseDBService
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
class MiningBuddyService(BaseService):
|
class MiningBuddyService(BaseDBService):
|
||||||
"""
|
"""
|
||||||
Mining Buddy Class, allows registration and sign-in
|
Mining Buddy Class, allows registration and sign-in
|
||||||
|
|
||||||
@@ -25,25 +25,6 @@ class MiningBuddyService(BaseService):
|
|||||||
SQL_CHECK_USER = r"SELECT username from users WHERE username = %s and deleted = 0"
|
SQL_CHECK_USER = r"SELECT username from users WHERE username = %s and deleted = 0"
|
||||||
SQL_DEL_USER = r"UPDATE users set deleted = 1 WHERE username = %s"
|
SQL_DEL_USER = r"UPDATE users set deleted = 1 WHERE username = %s"
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
|
|
||||||
# Use the master DB settings, bar the database name
|
|
||||||
backend = load_backend(settings.DATABASE_ENGINE)
|
|
||||||
self._db = backend.DatabaseWrapper({
|
|
||||||
'DATABASE_HOST': settings.DATABASE_HOST,
|
|
||||||
'DATABASE_NAME': self.settings['database_name'],
|
|
||||||
'DATABASE_OPTIONS': {},
|
|
||||||
'DATABASE_PASSWORD': settings.DATABASE_PASSWORD,
|
|
||||||
'DATABASE_PORT': settings.DATABASE_PORT,
|
|
||||||
'DATABASE_USER': settings.DATABASE_USER,
|
|
||||||
'TIME_ZONE': settings.TIME_ZONE,})
|
|
||||||
|
|
||||||
self._dbcursor = self._db.cursor()
|
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
self._db.close()
|
|
||||||
self._db = None
|
|
||||||
|
|
||||||
def _gen_salt(self):
|
def _gen_salt(self):
|
||||||
return self.settings['password_salt']
|
return self.settings['password_salt']
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from django.db import load_backend, transaction, IntegrityError
|
|||||||
from sso.services import BaseService
|
from sso.services import BaseService
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
class PhpBBService(BaseService):
|
class PhpBBService(BaseDBService):
|
||||||
"""
|
"""
|
||||||
PHPBB Class, allows registration and sign-in
|
PHPBB Class, allows registration and sign-in
|
||||||
|
|
||||||
@@ -22,26 +22,6 @@ class PhpBBService(BaseService):
|
|||||||
SQL_GET_GROUP = r"SELECT group_id from phpbb_groups WHERE group_name = %s"
|
SQL_GET_GROUP = r"SELECT group_id from phpbb_groups WHERE group_name = %s"
|
||||||
SQL_ADD_GROUP = r"INSERT INTO phpbb_groups (group_name) VALUES (%s)"
|
SQL_ADD_GROUP = r"INSERT INTO phpbb_groups (group_name) VALUES (%s)"
|
||||||
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
|
|
||||||
# Use the master DB settings, bar the database name
|
|
||||||
backend = load_backend(settings.DATABASE_ENGINE)
|
|
||||||
self._db = backend.DatabaseWrapper({
|
|
||||||
'DATABASE_HOST': settings.DATABASE_HOST,
|
|
||||||
'DATABASE_NAME': settings.PHPBB_DATABASE,
|
|
||||||
'DATABASE_OPTIONS': {},
|
|
||||||
'DATABASE_PASSWORD': settings.DATABASE_PASSWORD,
|
|
||||||
'DATABASE_PORT': settings.DATABASE_PORT,
|
|
||||||
'DATABASE_USER': settings.DATABASE_USER,
|
|
||||||
'TIME_ZONE': settings.TIME_ZONE,})
|
|
||||||
|
|
||||||
self._dbcursor = self._db.cursor()
|
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
self._db.close()
|
|
||||||
self._db = None
|
|
||||||
|
|
||||||
def _gen_salt(self):
|
def _gen_salt(self):
|
||||||
return "%x" % random.randint(0, 2147483647)
|
return "%x" % random.randint(0, 2147483647)
|
||||||
|
|
||||||
|
|||||||
@@ -20,25 +20,6 @@ class QMSService(BaseService):
|
|||||||
SQL_ENABLE_USER = r"UPDATE users SET passhash = %s, salt = %s, certificate = %s WHERE ssoid = %s"
|
SQL_ENABLE_USER = r"UPDATE users SET passhash = %s, salt = %s, certificate = %s WHERE ssoid = %s"
|
||||||
SQL_CHECK_USER = r"SELECT ssoid from users WHERE ssoid = %s"
|
SQL_CHECK_USER = r"SELECT ssoid from users WHERE ssoid = %s"
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
|
|
||||||
# Use the master DB settings, bar the database name
|
|
||||||
backend = load_backend(settings.DATABASE_ENGINE)
|
|
||||||
self._db = backend.DatabaseWrapper({
|
|
||||||
'DATABASE_HOST': settings.DATABASE_HOST,
|
|
||||||
'DATABASE_NAME': self.settings['database_name'],
|
|
||||||
'DATABASE_OPTIONS': {},
|
|
||||||
'DATABASE_PASSWORD': settings.DATABASE_PASSWORD,
|
|
||||||
'DATABASE_PORT': settings.DATABASE_PORT,
|
|
||||||
'DATABASE_USER': settings.DATABASE_USER,
|
|
||||||
'TIME_ZONE': settings.TIME_ZONE,})
|
|
||||||
|
|
||||||
self._dbcursor = self._db.cursor()
|
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
self._db.close()
|
|
||||||
self._db = None
|
|
||||||
|
|
||||||
def _gen_salt(self):
|
def _gen_salt(self):
|
||||||
return hashlib.md5("%x" % random.randint(0, 2147483647)).hexdigest()[:6]
|
return hashlib.md5("%x" % random.randint(0, 2147483647)).hexdigest()[:6]
|
||||||
|
|
||||||
|
|||||||
@@ -25,25 +25,6 @@ class MediawikiService(BaseService):
|
|||||||
SQL_DEL_REV = r"UPDATE revision SET rev_user = (SELECT user_id FROM user WHERE user_name = 'DeletedUser'), rev_user_text = 'DeletedUser' WHERE rev_user = (SELECT user_id FROM user WHERE user_name = %s)"
|
SQL_DEL_REV = r"UPDATE revision SET rev_user = (SELECT user_id FROM user WHERE user_name = 'DeletedUser'), rev_user_text = 'DeletedUser' WHERE rev_user = (SELECT user_id FROM user WHERE user_name = %s)"
|
||||||
SQL_DEL_USER = r"DELETE FROM user WHERE user_name = %s"
|
SQL_DEL_USER = r"DELETE FROM user WHERE user_name = %s"
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
|
|
||||||
# Use the master DB settings, bar the database name
|
|
||||||
backend = load_backend(settings.DATABASE_ENGINE)
|
|
||||||
self._db = backend.DatabaseWrapper({
|
|
||||||
'DATABASE_HOST': settings.DATABASE_HOST,
|
|
||||||
'DATABASE_NAME': self.settings['database_name'],
|
|
||||||
'DATABASE_OPTIONS': {},
|
|
||||||
'DATABASE_PASSWORD': settings.DATABASE_PASSWORD,
|
|
||||||
'DATABASE_PORT': settings.DATABASE_PORT,
|
|
||||||
'DATABASE_USER': settings.DATABASE_USER,
|
|
||||||
'TIME_ZONE': settings.TIME_ZONE,})
|
|
||||||
|
|
||||||
self._dbcursor = self._db.cursor()
|
|
||||||
|
|
||||||
def __del__(self):
|
|
||||||
self._db.close()
|
|
||||||
self._db = None
|
|
||||||
|
|
||||||
def _gen_salt(self):
|
def _gen_salt(self):
|
||||||
return "%x" % random.randint(0, 2147483647)
|
return "%x" % random.randint(0, 2147483647)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user