Mercurial > public > src > rhodecode
comparison pylons_app/lib/auth.py @ 46:9db7782727b3
Static files for production fixed
Error handler for debug on, added
admin auth function authenticates only admins
changed creation of db
author | Marcin Kuzminski <marcin@python-blog.com> |
---|---|
date | Wed, 07 Apr 2010 19:39:31 +0200 |
parents | a886f5eba757 |
children | 8e250e86a670 |
comparison
equal
deleted
inserted
replaced
45:a886f5eba757 | 46:9db7782727b3 |
---|---|
10 | 10 |
11 def get_sqlite_conn_cur(): | 11 def get_sqlite_conn_cur(): |
12 conn = sqlite3.connect(os.path.join(ROOT, 'auth.sqlite')) | 12 conn = sqlite3.connect(os.path.join(ROOT, 'auth.sqlite')) |
13 cur = conn.cursor() | 13 cur = conn.cursor() |
14 return conn, cur | 14 return conn, cur |
15 | |
16 | |
17 def admin_auth(username, password): | |
18 conn, cur = get_sqlite_conn_cur() | |
19 password_crypt = crypt.crypt(password, '6a') | |
20 | |
21 try: | |
22 cur.execute("SELECT * FROM users WHERE username=?", (username,)) | |
23 data = cur.fetchone() | |
24 except sqlite3.OperationalError as e: | |
25 data = None | |
26 log.error(e) | |
27 | |
28 if data: | |
29 if data[3]: | |
30 if data[1] == username and data[2] == password_crypt and data[4]: | |
31 log.info('user %s authenticated correctly', username) | |
32 return True | |
33 else: | |
34 log.error('user %s is disabled', username) | |
35 | |
36 return False | |
15 | 37 |
16 def authfunc(environ, username, password): | 38 def authfunc(environ, username, password): |
17 conn, cur = get_sqlite_conn_cur() | 39 conn, cur = get_sqlite_conn_cur() |
18 password_crypt = crypt.crypt(password, '6a') | 40 password_crypt = crypt.crypt(password, '6a') |
19 | 41 |
63 cur.execute('''DROP TABLE IF EXISTS users ''') | 85 cur.execute('''DROP TABLE IF EXISTS users ''') |
64 cur.execute('''CREATE TABLE users | 86 cur.execute('''CREATE TABLE users |
65 (id INTEGER PRIMARY KEY AUTOINCREMENT, | 87 (id INTEGER PRIMARY KEY AUTOINCREMENT, |
66 username TEXT, | 88 username TEXT, |
67 password TEXT, | 89 password TEXT, |
68 active INTEGER)''') | 90 active INTEGER, |
91 admin INTEGER)''') | |
69 log.info('creating table %s', 'user_logs') | 92 log.info('creating table %s', 'user_logs') |
70 cur.execute('''DROP TABLE IF EXISTS user_logs ''') | 93 cur.execute('''DROP TABLE IF EXISTS user_logs ''') |
71 cur.execute('''CREATE TABLE user_logs | 94 cur.execute('''CREATE TABLE user_logs |
72 (id INTEGER PRIMARY KEY AUTOINCREMENT, | 95 (id INTEGER PRIMARY KEY AUTOINCREMENT, |
73 user_id INTEGER, | 96 user_id INTEGER, |
78 conn.rollback() | 101 conn.rollback() |
79 raise | 102 raise |
80 | 103 |
81 cur.close() | 104 cur.close() |
82 | 105 |
83 def create_user(username, password): | 106 def create_user(username, password, admin=False): |
84 conn, cur = get_sqlite_conn_cur() | 107 conn, cur = get_sqlite_conn_cur() |
85 password_crypt = crypt.crypt(password, '6a') | 108 password_crypt = crypt.crypt(password, '6a') |
86 cur_date = datetime.now() | |
87 log.info('creating user %s', username) | 109 log.info('creating user %s', username) |
88 try: | 110 try: |
89 cur.execute('''INSERT INTO users values (?,?,?,?) ''', | 111 cur.execute('''INSERT INTO users values (?,?,?,?,?) ''', |
90 (None, username, password_crypt, 1,)) | 112 (None, username, password_crypt, 1, admin)) |
91 conn.commit() | 113 conn.commit() |
92 except: | 114 except: |
93 conn.rollback() | 115 conn.rollback() |
94 raise | 116 raise |
95 | 117 |
96 if __name__ == "__main__": | 118 if __name__ == "__main__": |
97 create_user_table() | 119 create_user_table() |
98 create_user('marcink', 'qweqwe') | 120 create_user('marcink', 'qweqwe', True) |
99 create_user('lukaszd', 'qweqwe') | 121 create_user('lukaszd', 'qweqwe') |
100 create_user('adriand', 'qweqwe') | 122 create_user('adriand', 'qweqwe') |
101 create_user('radek', 'qweqwe') | 123 create_user('radek', 'qweqwe') |
102 create_user('skrzeka', 'qweqwe') | 124 create_user('skrzeka', 'qweqwe') |
103 create_user('bart', 'qweqwe') | 125 create_user('bart', 'qweqwe') |
104 create_user('maho', 'qweqwe') | 126 create_user('maho', 'qweqwe') |
105 create_user('michalg', 'qweqwe') | 127 create_user('michalg', 'qweqwe') |
106 create_user('admin', 'qwe123qwe') | |
107 | 128 |
108 #authfunc('', 'marcink', 'qweqwe') | 129 #authfunc('', 'marcink', 'qweqwe') |