Files
@ 298546182b41
Branch filter:
Location: kallithea/pylons_app/model/db.py - annotation
298546182b41
7.2 KiB
text/x-python
more test suites on login, fixed strange detached instance bug found during in tests.
on __repr__ function
fixed timerproxy query formatting
on __repr__ function
fixed timerproxy query formatting
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | b2c38dee135a d66a7fa7689b 3ada2f409c1c d66a7fa7689b 0e5455fda8fd d66a7fa7689b d66a7fa7689b d66a7fa7689b 3ada2f409c1c 1ef52a70f3b7 1ef52a70f3b7 55377fdc1fc6 1ef52a70f3b7 55377fdc1fc6 55377fdc1fc6 1ef52a70f3b7 1ef52a70f3b7 1ef52a70f3b7 1ef52a70f3b7 1ef52a70f3b7 1ef52a70f3b7 1ef52a70f3b7 1ef52a70f3b7 b27d32cb3157 b27d32cb3157 b27d32cb3157 a0116e944da1 3ada2f409c1c 7c978511c951 0e5455fda8fd b2c38dee135a b2c38dee135a b2c38dee135a 3a66e7421a99 c6526b7531e9 c6526b7531e9 c6526b7531e9 c6526b7531e9 c6526b7531e9 a0116e944da1 3ed2d46a2ca7 37a832dc4a82 0e5455fda8fd 0e5455fda8fd 0e5455fda8fd 0e5455fda8fd 37a832dc4a82 3ed2d46a2ca7 d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b d66a7fa7689b 298546182b41 d66a7fa7689b d66a7fa7689b d66a7fa7689b 1b6d7662d6e2 a0116e944da1 3ada2f409c1c 3ada2f409c1c 29370bb76fa6 0e5455fda8fd 29370bb76fa6 29370bb76fa6 b2c38dee135a b2c38dee135a c6526b7531e9 a0116e944da1 29370bb76fa6 a0116e944da1 a0116e944da1 a26f48ad7a8a a26f48ad7a8a a26f48ad7a8a 0e5455fda8fd 5da4ef115006 0e5455fda8fd 29370bb76fa6 5da4ef115006 f5c1eec9f376 5da4ef115006 3ed2d46a2ca7 3ed2d46a2ca7 3ed2d46a2ca7 a0116e944da1 c6526b7531e9 c6526b7531e9 29370bb76fa6 c6526b7531e9 b18f89d6d17f b18f89d6d17f 37a832dc4a82 37a832dc4a82 29370bb76fa6 f5c1eec9f376 29370bb76fa6 a26f48ad7a8a f5c1eec9f376 29370bb76fa6 29370bb76fa6 a26f48ad7a8a 29370bb76fa6 29370bb76fa6 29370bb76fa6 a26f48ad7a8a f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 27f801e03489 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 f5c1eec9f376 | from pylons_app.model.meta import Base
from sqlalchemy import *
from sqlalchemy.orm import relation, backref
from sqlalchemy.orm.session import Session
from vcs.utils.lazy import LazyProperty
import logging
log = logging.getLogger(__name__)
class HgAppSettings(Base):
__tablename__ = 'hg_app_settings'
__table_args__ = (UniqueConstraint('app_settings_name'), {'useexisting':True})
app_settings_id = Column("app_settings_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
app_settings_name = Column("app_settings_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
app_settings_value = Column("app_settings_value", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
class HgAppUi(Base):
__tablename__ = 'hg_app_ui'
__table_args__ = {'useexisting':True}
ui_id = Column("ui_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
ui_section = Column("ui_section", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
ui_key = Column("ui_key", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
ui_value = Column("ui_value", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
ui_active = Column("ui_active", BOOLEAN(), nullable=True, unique=None, default=True)
class User(Base):
__tablename__ = 'users'
__table_args__ = (UniqueConstraint('username'), {'useexisting':True})
user_id = Column("user_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
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)
admin = Column("admin", BOOLEAN(), nullable=True, unique=None, default=False)
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)
user_log = relation('UserLog')
user_perms = relation('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id")
@LazyProperty
def full_contact(self):
return '%s %s <%s>' % (self.name, self.lastname, self.email)
def __repr__(self):
return "<User('id:%s:%s')>" % (self.user_id, self.username)
def update_lastlogin(self):
"""Update user lastlogin"""
import datetime
try:
session = Session.object_session(self)
self.last_login = datetime.datetime.now()
session.add(self)
session.commit()
log.debug('updated user %s lastlogin',self.username)
except Exception:
session.rollback()
class UserLog(Base):
__tablename__ = 'user_logs'
__table_args__ = {'useexisting':True}
user_log_id = Column("user_log_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)
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)
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)
user = relation('User')
class Repository(Base):
__tablename__ = 'repositories'
__table_args__ = (UniqueConstraint('repo_name'), {'useexisting':True},)
repo_id = Column("repo_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
repo_name = Column("repo_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
private = Column("private", BOOLEAN(), nullable=True, unique=None, default=None)
description = Column("description", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
user = relation('User')
repo_to_perm = relation('RepoToPerm', cascade='all')
def __repr__(self):
return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
class Permission(Base):
__tablename__ = 'permissions'
__table_args__ = {'useexisting':True}
permission_id = Column("permission_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
permission_name = Column("permission_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
permission_longname = Column("permission_longname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
def __repr__(self):
return "<Permission('%s:%s')>" % (self.permission_id, self.permission_name)
class RepoToPerm(Base):
__tablename__ = 'repo_to_perm'
__table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'useexisting':True})
repo_to_perm_id = Column("repo_to_perm_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_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
user = relation('User')
permission = relation('Permission')
repository = relation('Repository')
class UserToPerm(Base):
__tablename__ = 'user_to_perm'
__table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'useexisting':True})
user_to_perm_id = Column("user_to_perm_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)
user = relation('User')
permission = relation('Permission')
|