This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
mandaye/mandaye/models.py

72 lines
2.0 KiB
Python

from sqlalchemy import Column, Integer, String
from sqlalchemy import ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
Base = declarative_base()
class Site(Base):
__tablename__ = 'sites'
id = Column(Integer, primary_key=True)
name = Column(String, unique=True, nullable=False)
def __init__(self, name):
self.name = name
def __repr__(self):
return "<Site('%s')>" % (self.name)
class LocalUser(Base):
""" Mandaye local user
"""
__tablename__ = 'local_users'
id = Column(Integer, primary_key=True)
login = Column(String(150), nullable=True, unique=True)
password = Column(String(25), nullable=True)
fullname = Column(String(150), nullable=True)
def __init__(self, login=None, password=None, fullname=None):
self.login = login
self.password = password
self.fullname = fullname
def __repr__(self):
if self.login:
return "<LocalUser('%s')>" % (self.login)
elif self.token:
return "<LocalUser('%s')>" % (self.token)
return "<LocalUser>"
class ExtUser(Base):
""" User of externals applications
"""
__tablename__ = 'ext_users'
id = Column(Integer, primary_key=True)
login = Column(String(80), nullable=True)
password = Column(String(25), nullable=True)
birthdate = Column(String(15), nullable=True)
local_user_id = Column(Integer, ForeignKey('local_users.id'))
site_id = Column(Integer, ForeignKey('sites.id'))
local_user = relationship("LocalUser", backref=backref('ext_users', order_by=id))
site = relationship("LocalUser", backref=backref('users'))
def __init__(self, login=None, password=None):
self.login = login
self.password = password
def __repr__(self):
if self.login:
return "<ExtUser('%s')>" % (self.login)
elif self.token:
return "<ExtUser('%s')>" % (self.token)
return "<ExtUser>"