Skip to content

Commit a0afda6

Browse files
committed
backend: fixed
1 parent 758437c commit a0afda6

3 files changed

Lines changed: 28 additions & 2 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*~
22
*.pyc
3+
examples/hammertime/settings.py

phpbb/auth/backends.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,23 @@
1818
#
1919

2020
from django.contrib.auth.models import User
21+
from django.conf import settings
2122

2223
from phpbb.auth.auth_db import login_db
24+
from phpbb.auth.sql import setup, is_setup
25+
26+
def connect_to_database():
27+
if is_setup():
28+
return
29+
30+
db_module = __import__(settings.PHPBB_AUTH_DB_MODULE, globals(), locals(), [], -1)
31+
conn = db_module.connect(**settings.PHPBB_AUTH_DB_PARAMS)
32+
setup(conn)
33+
34+
class PhpbbBackend(object):
35+
def __init__(self):
36+
connect_to_database()
2337

24-
class PhpbbBackend:
2538
def authenticate(self, username=None, password=None):
2639
if username is None or password is None:
2740
return None
@@ -31,9 +44,14 @@ def authenticate(self, username=None, password=None):
3144
return None
3245

3346
user, created = User.objects.get_or_create(
34-
username=user_row["username_clean"],
47+
username=user_row["username"],
3548
email=user_row.get("user_email", None)
3649
)
3750

3851
return user
3952

53+
def get_user(self, user_id):
54+
try:
55+
return User.objects.get(pk=user_id)
56+
except User.DoesDotExist:
57+
return None

phpbb/auth/sql.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,19 @@
3838

3939
class GetUserRow(object):
4040
def __init__(self, *args, **kwargs):
41+
self.conn = None
42+
self.sql = None
43+
4144
if args or kwargs:
4245
self.setup(*args, **kwargs)
4346

4447
def setup(self, conn, param_style=DEFAULT_PARAM_STYLE, users_table=DEFAULT_USERS_TABLE):
4548
self.conn = conn
4649
self.sql = GET_USER_ROW_SQL.format(", ".join(USER_ROW_FIELDS), users_table, param_style)
4750

51+
def is_setup(self):
52+
return self.conn is not None
53+
4854
def __call__(self, username_clean):
4955
c = self.conn.cursor()
5056
c.execute(self.sql, [username_clean,])
@@ -53,3 +59,4 @@ def __call__(self, username_clean):
5359

5460
get_user_row = GetUserRow()
5561
setup = get_user_row.setup
62+
is_setup = get_user_row.is_setup

0 commit comments

Comments
 (0)