##// END OF EJS Templates
extended user logs to create/delete/fork repositories for auditing...
extended user logs to create/delete/fork repositories for auditing some spelling corrections

File last commit:

r537:48be9538 default
r537:48be9538 default
Show More
db.py
139 lines | 8.5 KiB | text/x-python | PythonLexer
Model update for sqlalchemy 0.6.0
r89 from pylons_app.model.meta import Base
moved loged in user propagation out of forms,...
r442 from sqlalchemy import *
Marcin Kuzminski
Added sqlalchemy support...
r49 from sqlalchemy.orm import relation, backref
moved loged in user propagation out of forms,...
r442 from sqlalchemy.orm.session import Session
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 from vcs.utils.lazy import LazyProperty
moved loged in user propagation out of forms,...
r442 import logging
log = logging.getLogger(__name__)
Marcin Kuzminski
Added sqlalchemy support...
r49
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
r341 class HgAppSettings(Base):
__tablename__ = 'hg_app_settings'
cleared global application settings....
r381 __table_args__ = (UniqueConstraint('app_settings_name'), {'useexisting':True})
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
r341 app_settings_id = Column("app_settings_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
cleared global application settings....
r381 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)
Made config file free configuration based on database and capable of beeing manage via application settings + some code cleanups
r341
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)
Implemented hooks system,...
r392 ui_active = Column("ui_active", BOOLEAN(), nullable=True, unique=None, default=True)
changed naming convention for db modules.
r234 class User(Base):
Marcin Kuzminski
Added sqlalchemy support...
r49 __tablename__ = 'users'
Improved testing scenarios. Made test env creator...
r473 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'useexisting':True})
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 user_id = Column("user_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
Model update for sqlalchemy 0.6.0
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)
db model fix, added repo instance to cached repos list
r303 admin = Column("admin", BOOLEAN(), nullable=True, unique=None, default=False)
rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
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)
changed naming convention for db modules.
r234 user_log = relation('UserLog')
permission refactoring,...
r417 user_perms = relation('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id")
some beaker cache changes, and added repr to models
r232
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 @LazyProperty
def full_contact(self):
return '%s %s <%s>' % (self.name, self.lastname, self.email)
some beaker cache changes, and added repr to models
r232 def __repr__(self):
permission refactoring,...
r417 return "<User('id:%s:%s')>" % (self.user_id, self.username)
moved loged in user propagation out of forms,...
r442
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()
Improved testing scenarios. Made test env creator...
r473 log.debug('updated user %s lastlogin', self.username)
moved loged in user propagation out of forms,...
r442 except Exception:
session.rollback()
Marcin Kuzminski
Updated database model, with FK and Booleans
r61
changed naming convention for db modules.
r234 class UserLog(Base):
Marcin Kuzminski
Added sqlalchemy support...
r49 __tablename__ = 'user_logs'
__table_args__ = {'useexisting':True}
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296 user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
extended user logs to create/delete/fork repositories for auditing...
r537 repository_id = Column("repository_id", INTEGER(length=None, convert_unicode=False, assert_unicode=None), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
repository_name = Column("repository_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296 user_ip = Column("user_ip", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
Model update for sqlalchemy 0.6.0
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)
Added user action mapper to map push to changeset....
r503 revision = Column('revision', TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
made action logger more global, to be used in other places to log other actions....
r536
changed naming convention for db modules.
r234 user = relation('User')
made action logger more global, to be used in other places to log other actions....
r536 repository = relation('Repository')
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296
changed naming convention for db modules.
r234 class Repository(Base):
__tablename__ = 'repositories'
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems....
r367 __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)
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
Added lastlogin to user after login, model db update
r242 private = Column("private", BOOLEAN(), nullable=True, unique=None, default=None)
Implemented basic repository managment. Implemented repo2db mappings, model, helpers updates and code cleanups
r265 description = Column("description", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
Implemented server side forks...
r530 fork_id = Column("fork_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None)
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296
Added lastlogin to user after login, model db update
r242 user = relation('User')
Implemented server side forks...
r530 fork = relation('Repository', remote_side=repo_id)
rename repo2perm into repo_to_perm...
r399 repo_to_perm = relation('RepoToPerm', cascade='all')
Added lastlogin to user after login, model db update
r242
permission refactoring,...
r417 def __repr__(self):
return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
changed naming convention for db modules.
r234 class Permission(Base):
rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
r226 __tablename__ = 'permissions'
__table_args__ = {'useexisting':True}
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296 permission_id = Column("permission_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
rewritten db manage script to use sqlalchemy. Fixed sqlalchemy models to more generic.
r226 permission_name = Column("permission_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
r239 permission_longname = Column("permission_longname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
some beaker cache changes, and added repr to models
r232 def __repr__(self):
return "<Permission('%s:%s')>" % (self.permission_id, self.permission_name)
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296
rename repo2perm into repo_to_perm...
r399 class RepoToPerm(Base):
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296 __tablename__ = 'repo_to_perm'
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems....
r367 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'useexisting':True})
rename repo2perm into repo_to_perm...
r399 repo_to_perm_id = Column("repo_to_perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296 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)
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems....
r367 repository_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
first permissions commit: added permission managment on repository edit. Changed db rmissions, validators.
r296
user = relation('User')
permission = relation('Permission')
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems....
r367 repository = relation('Repository')
rename repo2perm into repo_to_perm...
r399
class UserToPerm(Base):
__tablename__ = 'user_to_perm'
fixed escaping for new webhelpers and added perm2user constraint
r414 __table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'useexisting':True})
rename repo2perm into repo_to_perm...
r399 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')
implemented basic autoupdating statistics fetched from database
r493 class Statistics(Base):
__tablename__ = 'statistics'
__table_args__ = (UniqueConstraint('repository_id'), {'useexisting':True})
stat_id = Column("stat_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
repository_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=True, default=None)
stat_on_revision = Column("stat_on_revision", INTEGER(), nullable=False)
commit_activity = Column("commit_activity", BLOB(), nullable=False)#JSON data
commit_activity_combined = Column("commit_activity_combined", BLOB(), nullable=False)#JSON data
languages = Column("languages", BLOB(), nullable=False)#JSON data
repository = relation('Repository')
rename repo2perm into repo_to_perm...
r399