68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import MySQLdb.cursors
|
|
|
|
class User(object):
|
|
|
|
def __init__(self, dbconn, user_id=None):
|
|
self.conn = dbconn
|
|
self.cur = dbconn.cursor(MySQLdb.cursors.DictCursor)
|
|
if user_id:
|
|
self.user_id = int(user_id)
|
|
self.load()
|
|
else:
|
|
self.login = None
|
|
self.displayname = None
|
|
self.language = 'en'
|
|
self.role = 'undef'
|
|
self.flags = ''
|
|
|
|
def load(self):
|
|
sql = (
|
|
"SELECT login, displayname, language, role, flags "
|
|
"FROM user "
|
|
"WHERE user_id=%s")
|
|
self.cur.execute(sql, (self.user_id, ))
|
|
row = self.cur.fetchone()
|
|
if row:
|
|
self.data = row
|
|
self.login = row['login']
|
|
self.displayname = row['displayname']
|
|
self.language = row['language']
|
|
self.role = row['role']
|
|
self.flags = row['flags']
|
|
else:
|
|
self.data = None
|
|
|
|
def save(self):
|
|
"""
|
|
Speichern eines Benutzers ist momentan nicht vorgesehen
|
|
"""
|
|
pass
|
|
|
|
""" unused at the moment
|
|
def mark_login(self):
|
|
sql = "UPDATE user SET last_login=NOW() WHERE username=%s"
|
|
self.cur.execute(sql, (self.username, ))
|
|
self.conn.commit()
|
|
|
|
def mark_logout(self):
|
|
sql = "UPDATE user SET last_logout=NOW() WHERE username=%s"
|
|
self.cur.execute(sql, (self.username, ))
|
|
self.conn.commit()
|
|
"""
|
|
|
|
def __repr__(self):
|
|
# Unique description
|
|
out = "User(%d)" % self.user_id
|
|
return out
|
|
|
|
def __str__(self):
|
|
# Prettyprint
|
|
out = "User(%d) - %s\n" % (self.user_id, self.displayname)
|
|
out += " F: %s\n" % self.flags
|
|
out += " R: %s\n" % self.role
|
|
out += " L: %s\n" % self.language
|
|
return out
|
|
|