db.py
71 lines
| 4.5 KiB
| text/x-python
|
PythonLexer
r89 | from pylons_app.model.meta import Base | |||
Marcin Kuzminski
|
r49 | from sqlalchemy.orm import relation, backref | ||
r226 | from sqlalchemy import * | |||
r265 | from vcs.utils.lazy import LazyProperty | |||
Marcin Kuzminski
|
r49 | |||
r234 | class User(Base): | |||
Marcin Kuzminski
|
r49 | __tablename__ = 'users' | ||
__table_args__ = {'useexisting':True} | ||||
r265 | user_id = Column("user_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True) | |||
r89 | username = Column("username", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
password = Column("password", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | ||||
active = Column("active", BOOLEAN(), nullable=True, unique=None, default=None) | ||||
r303 | admin = Column("admin", BOOLEAN(), nullable=True, unique=None, default=False) | |||
r226 | name = Column("name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
lastname = Column("lastname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | ||||
email = Column("email", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | ||||
last_login = Column("last_login", DATETIME(timezone=False), nullable=True, unique=None, default=None) | ||||
r234 | user_log = relation('UserLog') | |||
r232 | ||||
r265 | @LazyProperty | |||
def full_contact(self): | ||||
return '%s %s <%s>' % (self.name, self.lastname, self.email) | ||||
r232 | def __repr__(self): | |||
return "<User('%s:%s')>" % (self.user_id, self.username) | ||||
Marcin Kuzminski
|
r61 | |||
r234 | class UserLog(Base): | |||
Marcin Kuzminski
|
r49 | __tablename__ = 'user_logs' | ||
__table_args__ = {'useexisting':True} | ||||
r296 | user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True) | |||
r265 | user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None) | |||
r296 | user_ip = Column("user_ip", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
repository = Column("repository", TEXT(length=None, convert_unicode=False, assert_unicode=None), ForeignKey(u'repositories.repo_name'), nullable=False, unique=None, default=None) | ||||
r89 | action = Column("action", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
action_date = Column("action_date", DATETIME(timezone=False), nullable=True, unique=None, default=None) | ||||
r226 | ||||
r234 | user = relation('User') | |||
r296 | ||||
r234 | class Repository(Base): | |||
__tablename__ = 'repositories' | ||||
r296 | __table_args__ = {'useexisting':True} | |||
r265 | repo_name = Column("repo_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None, primary_key=True) | |||
user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None) | ||||
r242 | private = Column("private", BOOLEAN(), nullable=True, unique=None, default=None) | |||
r265 | description = Column("description", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
r296 | ||||
r242 | user = relation('User') | |||
r296 | repo2perm = relation('Repo2Perm', cascade='all') | |||
r242 | ||||
r234 | class Permission(Base): | |||
r226 | __tablename__ = 'permissions' | |||
__table_args__ = {'useexisting':True} | ||||
r296 | permission_id = Column("permission_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True) | |||
r226 | permission_name = Column("permission_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
r239 | permission_longname = Column("permission_longname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | |||
r232 | def __repr__(self): | |||
return "<Permission('%s:%s')>" % (self.permission_id, self.permission_name) | ||||
r296 | ||||
class Repo2Perm(Base): | ||||
__tablename__ = 'repo_to_perm' | ||||
r328 | __table_args__ = (UniqueConstraint('user_id', 'repository'), {'useexisting':True}) | |||
r296 | repo2perm_id = Column("repo2perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True) | |||
user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None) | ||||
permission_id = Column("permission_id", INTEGER(), ForeignKey(u'permissions.permission_id'), nullable=False, unique=None, default=None) | ||||
repository = Column("repository", TEXT(length=None, convert_unicode=False, assert_unicode=None), ForeignKey(u'repositories.repo_name'), nullable=False, unique=None, default=None) | ||||
user = relation('User') | ||||
permission = relation('Permission') | ||||