Mercurial > kallithea
annotate pylons_app/lib/db_manage.py @ 195:7109d15c6813
cleared prints leftoovers, and changed current user fetching in login controller
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 22 May 2010 16:07:28 +0200 |
parents | 911dab498eb2 |
children | c6526b7531e9 |
rev | line source |
---|---|
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
1 import logging |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
2 import sqlite3 |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
3 |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
4 import os |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
5 import crypt |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
6 from os.path import dirname as dn |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
7 ROOT = dn(dn(dn(os.path.realpath(__file__)))) |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
8 logging.basicConfig(level=logging.DEBUG) |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
9 |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
10 def get_sqlite_conn_cur(): |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
11 conn = sqlite3.connect(os.path.join(ROOT, 'hg_app.db')) |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
12 cur = conn.cursor() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
13 return conn, cur |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
14 |
88
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
15 def check_for_db(override): |
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
16 if not override: |
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
17 if os.path.isfile(os.path.join(ROOT, 'hg_app.db')): |
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
18 raise Exception('database already exists') |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
19 |
88
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
20 def create_tables(override=False): |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
21 """ |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
22 Create a auth database |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
23 """ |
88
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
24 check_for_db(override) |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
25 conn, cur = get_sqlite_conn_cur() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
26 try: |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
27 logging.info('creating table %s', 'users') |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
28 cur.execute("""DROP TABLE IF EXISTS users """) |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
29 cur.execute("""CREATE TABLE users |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
30 (user_id INTEGER PRIMARY KEY AUTOINCREMENT, |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
31 username TEXT, |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
32 password TEXT, |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
33 active INTEGER, |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
34 admin INTEGER)""") |
67
ffd9ff6e2f33
fixed name bug in create db script
Marcin Kuzminski <marcin@python-blog.com>
parents:
66
diff
changeset
|
35 logging.info('creating table %s', 'user_logs') |
ffd9ff6e2f33
fixed name bug in create db script
Marcin Kuzminski <marcin@python-blog.com>
parents:
66
diff
changeset
|
36 cur.execute("""DROP TABLE IF EXISTS user_logs """) |
ffd9ff6e2f33
fixed name bug in create db script
Marcin Kuzminski <marcin@python-blog.com>
parents:
66
diff
changeset
|
37 cur.execute("""CREATE TABLE user_logs |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
38 (id INTEGER PRIMARY KEY AUTOINCREMENT, |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
39 user_id INTEGER, |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
40 repository TEXT, |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
41 action TEXT, |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
42 action_date DATETIME)""") |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
43 conn.commit() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
44 except: |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
45 conn.rollback() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
46 raise |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
47 |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
48 cur.close() |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
49 |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
50 def admin_prompt(): |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
51 import getpass |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
52 username = raw_input('give username:') |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
53 password = getpass.getpass('Specify admin password:') |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
54 create_user(username, password, True) |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
55 |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
56 def create_user(username, password, admin=False): |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
57 conn, cur = get_sqlite_conn_cur() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
58 password_crypt = crypt.crypt(password, '6a') |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
59 logging.info('creating user %s', username) |
59
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
60 try: |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
61 cur.execute("""INSERT INTO users values (?,?,?,?,?) """, |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
62 (None, username, password_crypt, 1, admin)) |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
63 conn.commit() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
64 except: |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
65 conn.rollback() |
736078908f37
added db_manage script
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff
changeset
|
66 raise |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
67 |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
68 if __name__ == '__main__': |
88
911dab498eb2
Updated db manage
Marcin Kuzminski <marcin@python-works.com>
parents:
67
diff
changeset
|
69 create_tables(True) |
66
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
70 admin_prompt() |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
71 |
163464441e0d
updated db manage script for creating interactive admin account and db
Marcin Kuzminski <marcin@python-blog.com>
parents:
59
diff
changeset
|
72 |