Show More
@@ -5,7 +5,7 b' from pylons import request, response, se' | |||
|
5 | 5 | from pylons.controllers.util import abort, redirect |
|
6 | 6 | from pylons_app.lib.base import BaseController, render |
|
7 | 7 | from pylons_app.model import meta |
|
8 |
from pylons_app.model.db import UserLog |
|
|
8 | from pylons_app.model.db import UserLog | |
|
9 | 9 | from webhelpers.paginate import Page |
|
10 | 10 | from pylons_app.lib.auth import LoginRequired |
|
11 | 11 | |
@@ -23,8 +23,7 b' class AdminController(BaseController):' | |||
|
23 | 23 | def index(self): |
|
24 | 24 | sa = meta.Session |
|
25 | 25 | |
|
26 |
users_log = sa.query(UserLog |
|
|
27 | .order_by(UserLogs.action_date.desc()) | |
|
26 | users_log = sa.query(UserLog).order_by(UserLog.action_date.desc()) | |
|
28 | 27 | p = int(request.params.get('page', 1)) |
|
29 | 28 | c.users_log = Page(users_log, page=p, items_per_page=10) |
|
30 | 29 | c.log_data = render('admin/admin_log.html') |
@@ -5,7 +5,7 b' from pylons.controllers.util import abor' | |||
|
5 | 5 | |
|
6 | 6 | from pylons_app.lib.base import BaseController, render |
|
7 | 7 | from formencode import htmlfill |
|
8 |
from pylons_app.model.db import User |
|
|
8 | from pylons_app.model.db import User, UserLog | |
|
9 | 9 | import crypt |
|
10 | 10 | |
|
11 | 11 | log = logging.getLogger(__name__) |
@@ -25,7 +25,7 b' class UsersController(BaseController):' | |||
|
25 | 25 | """GET /users: All items in the collection""" |
|
26 | 26 | # url('users') |
|
27 | 27 | |
|
28 |
c.users_list = self.sa.query(User |
|
|
28 | c.users_list = self.sa.query(User).all() | |
|
29 | 29 | return render('admin/users/users.html') |
|
30 | 30 | |
|
31 | 31 | def create(self): |
@@ -34,7 +34,7 b' class UsersController(BaseController):' | |||
|
34 | 34 | params = dict(request.params) |
|
35 | 35 | |
|
36 | 36 | try: |
|
37 |
new_user = User |
|
|
37 | new_user = User() | |
|
38 | 38 | new_user.active = params.get('active', False) |
|
39 | 39 | new_user.username = params.get('username') |
|
40 | 40 | new_user.password = crypt.crypt(params.get('password'), '6a') |
@@ -63,7 +63,7 b' class UsersController(BaseController):' | |||
|
63 | 63 | params = dict(request.params) |
|
64 | 64 | |
|
65 | 65 | try: |
|
66 |
new_user = self.sa.query(User |
|
|
66 | new_user = self.sa.query(User).get(id) | |
|
67 | 67 | new_user.active = params.get('active', False) |
|
68 | 68 | new_user.username = params.get('username') |
|
69 | 69 | if params.get('new_password'): |
@@ -85,7 +85,7 b' class UsersController(BaseController):' | |||
|
85 | 85 | # method='delete') |
|
86 | 86 | # url('user', id=ID) |
|
87 | 87 | try: |
|
88 |
self.sa.delete(self.sa.query(User |
|
|
88 | self.sa.delete(self.sa.query(User).get(id)) | |
|
89 | 89 | self.sa.commit() |
|
90 | 90 | except: |
|
91 | 91 | self.sa.rollback() |
@@ -100,7 +100,7 b' class UsersController(BaseController):' | |||
|
100 | 100 | def edit(self, id, format='html'): |
|
101 | 101 | """GET /users/id/edit: Form to edit an existing item""" |
|
102 | 102 | # url('edit_user', id=ID) |
|
103 |
c.user = self.sa.query(User |
|
|
103 | c.user = self.sa.query(User).get(id) | |
|
104 | 104 | defaults = c.user.__dict__ |
|
105 | 105 | return htmlfill.render( |
|
106 | 106 | render('admin/users/user_edit.html'), |
@@ -2,7 +2,7 b' from functools import wraps' | |||
|
2 | 2 | from pylons import session, url |
|
3 | 3 | from pylons.controllers.util import abort, redirect |
|
4 | 4 | from pylons_app.model import meta |
|
5 |
from pylons_app.model.db import User |
|
|
5 | from pylons_app.model.db import User | |
|
6 | 6 | from sqlalchemy.exc import OperationalError |
|
7 | 7 | from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound |
|
8 | 8 | import crypt |
@@ -20,7 +20,7 b' def authfunc(environ, username, password' | |||
|
20 | 20 | sa = meta.Session |
|
21 | 21 | password_crypt = get_crypt_password(password) |
|
22 | 22 | try: |
|
23 |
user = sa.query(User |
|
|
23 | user = sa.query(User).filter(User.username == username).one() | |
|
24 | 24 | except (NoResultFound, MultipleResultsFound, OperationalError) as e: |
|
25 | 25 | log.error(e) |
|
26 | 26 | user = None |
@@ -1,12 +1,13 b'' | |||
|
1 | 1 | import logging |
|
2 | 2 | from os.path import dirname as dn |
|
3 | from os.path import join as jn | |
|
3 | 4 | from sqlalchemy.engine import create_engine |
|
4 | 5 | import os |
|
5 | 6 | import sys |
|
6 | 7 | ROOT = dn(dn(dn(os.path.realpath(__file__)))) |
|
7 | 8 | sys.path.append(ROOT) |
|
8 | 9 | |
|
9 |
from pylons_app.model.db import User |
|
|
10 | from pylons_app.model.db import User | |
|
10 | 11 | from pylons_app.model.meta import Session, Base |
|
11 | 12 | |
|
12 | 13 | from pylons_app.lib.auth import get_crypt_password |
@@ -22,14 +23,14 b' log.addHandler(console_handler)' | |||
|
22 | 23 | class DbManage(object): |
|
23 | 24 | def __init__(self, log_sql): |
|
24 | 25 | self.dbname = 'hg_app.db' |
|
25 |
dburi = 'sqlite:////%s' % |
|
|
26 | dburi = 'sqlite:////%s' % jn(ROOT, self.dbname) | |
|
26 | 27 | engine = create_engine(dburi, echo=log_sql) |
|
27 | 28 | init_model(engine) |
|
28 | 29 | self.sa = Session() |
|
29 | 30 | |
|
30 | 31 | def check_for_db(self, override): |
|
31 | 32 | log.info('checking for exisiting db') |
|
32 |
if os.path.isfile( |
|
|
33 | if os.path.isfile(jn(ROOT, self.dbname)): | |
|
33 | 34 | log.info('database exisist') |
|
34 | 35 | if not override: |
|
35 | 36 | raise Exception('database already exists') |
@@ -41,6 +42,7 b' class DbManage(object):' | |||
|
41 | 42 | self.check_for_db(override) |
|
42 | 43 | if override: |
|
43 | 44 | log.info("database exisist and it's going to be destroyed") |
|
45 | os.remove(jn(ROOT, self.dbname)) | |
|
44 | 46 | Base.metadata.create_all(checkfirst=override) |
|
45 | 47 | log.info('Created tables for %s', self.dbname) |
|
46 | 48 | |
@@ -53,7 +55,7 b' class DbManage(object):' | |||
|
53 | 55 | def create_user(self, username, password, admin=False): |
|
54 | 56 | log.info('creating administrator user %s', username) |
|
55 | 57 | |
|
56 |
new_user = User |
|
|
58 | new_user = User() | |
|
57 | 59 | new_user.username = username |
|
58 | 60 | new_user.password = get_crypt_password(password) |
|
59 | 61 | new_user.admin = admin |
@@ -18,7 +18,7 b' from paste.httpheaders import REMOTE_USE' | |||
|
18 | 18 | from pylons_app.lib.auth import authfunc |
|
19 | 19 | from pylons_app.lib.utils import is_mercurial, make_ui, invalidate_cache |
|
20 | 20 | from pylons_app.model import meta |
|
21 |
from pylons_app.model.db import UserLog |
|
|
21 | from pylons_app.model.db import UserLog, User | |
|
22 | 22 | from webob.exc import HTTPNotFound |
|
23 | 23 | import logging |
|
24 | 24 | import os |
@@ -102,9 +102,8 b' class SimpleHg(object):' | |||
|
102 | 102 | def __log_user_action(self, username, action, repo): |
|
103 | 103 | sa = meta.Session |
|
104 | 104 | try: |
|
105 |
user = sa.query(User |
|
|
106 | .filter(Users.username == username).one() | |
|
107 | user_log = UserLogs() | |
|
105 | user = sa.query(User).filter(User.username == username).one() | |
|
106 | user_log = UserLog() | |
|
108 | 107 | user_log.user_id = user.user_id |
|
109 | 108 | user_log.action = action |
|
110 | 109 | user_log.repository = repo.replace('/', '') |
@@ -2,7 +2,7 b' from pylons_app.model.meta import Base' | |||
|
2 | 2 | from sqlalchemy.orm import relation, backref |
|
3 | 3 | from sqlalchemy import * |
|
4 | 4 | |
|
5 |
class User |
|
|
5 | class User(Base): | |
|
6 | 6 | __tablename__ = 'users' |
|
7 | 7 | __table_args__ = {'useexisting':True} |
|
8 | 8 | user_id = Column("user_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=1) |
@@ -15,24 +15,27 b' class Users(Base):' | |||
|
15 | 15 | email = Column("email", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
|
16 | 16 | last_login = Column("last_login", DATETIME(timezone=False), nullable=True, unique=None, default=None) |
|
17 | 17 | |
|
18 |
user_log = relation('UserLog |
|
|
18 | user_log = relation('UserLog') | |
|
19 | 19 | |
|
20 | 20 | def __repr__(self): |
|
21 | 21 | return "<User('%s:%s')>" % (self.user_id, self.username) |
|
22 | 22 | |
|
23 |
class UserLog |
|
|
23 | class UserLog(Base): | |
|
24 | 24 | __tablename__ = 'user_logs' |
|
25 | 25 | __table_args__ = {'useexisting':True} |
|
26 | user_log_id = Column("id", INTEGER(), nullable=False, unique=True, default=None, primary_key=1) | |
|
26 | user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=1) | |
|
27 | 27 | user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=True, unique=None, default=None) |
|
28 | 28 | repository = Column("repository", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
|
29 | 29 | action = Column("action", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
|
30 | 30 | action_date = Column("action_date", DATETIME(timezone=False), nullable=True, unique=None, default=None) |
|
31 | 31 | |
|
32 |
user = relation('User |
|
|
32 | user = relation('User') | |
|
33 | 33 | |
|
34 | class Repository(Base): | |
|
35 | __tablename__ = 'repositories' | |
|
36 | repo_id = Column("repo_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=1) | |
|
34 | 37 | |
|
35 |
class Permission |
|
|
38 | class Permission(Base): | |
|
36 | 39 | __tablename__ = 'permissions' |
|
37 | 40 | __table_args__ = {'useexisting':True} |
|
38 | 41 | permission_id = Column("id", INTEGER(), nullable=False, unique=True, default=None, primary_key=1) |
@@ -24,7 +24,7 b' from pylons import session' | |||
|
24 | 24 | from pylons.i18n.translation import _ |
|
25 | 25 | from pylons_app.lib.auth import get_crypt_password |
|
26 | 26 | from pylons_app.model import meta |
|
27 |
from pylons_app.model.db import User |
|
|
27 | from pylons_app.model.db import User | |
|
28 | 28 | from sqlalchemy.exc import OperationalError |
|
29 | 29 | from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound |
|
30 | 30 | from webhelpers.pylonslib.secure_form import authentication_token |
@@ -66,7 +66,7 b' class ValidAuth(formencode.validators.Fa' | |||
|
66 | 66 | crypted_passwd = get_crypt_password(value['password']) |
|
67 | 67 | username = value['username'] |
|
68 | 68 | try: |
|
69 |
user = sa.query(User |
|
|
69 | user = sa.query(User).filter(User.username == username).one() | |
|
70 | 70 | except (NoResultFound, MultipleResultsFound, OperationalError) as e: |
|
71 | 71 | log.error(e) |
|
72 | 72 | user = None |
General Comments 0
You need to be logged in to leave comments.
Login now