Files
@ a886f5eba757
Branch filter:
Location: kallithea/pylons_app/lib/auth.py - annotation
a886f5eba757
3.7 KiB
text/x-python
implemented admin page login
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 | 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d d924b931b488 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d d924b931b488 71ffa932799d 71ffa932799d b2bc08f2974b b2bc08f2974b b2bc08f2974b b2bc08f2974b b2bc08f2974b b2bc08f2974b 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 71ffa932799d a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 a886f5eba757 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d d924b931b488 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d d924b931b488 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d 71ffa932799d d924b931b488 71ffa932799d 71ffa932799d | import sqlite3
import os
import logging
from os.path import dirname as dn
from datetime import datetime
import crypt
log = logging.getLogger(__name__)
ROOT = dn(dn(dn(os.path.realpath(__file__))))
def get_sqlite_conn_cur():
conn = sqlite3.connect(os.path.join(ROOT, 'auth.sqlite'))
cur = conn.cursor()
return conn, cur
def authfunc(environ, username, password):
conn, cur = get_sqlite_conn_cur()
password_crypt = crypt.crypt(password, '6a')
try:
cur.execute("SELECT * FROM users WHERE username=?", (username,))
data = cur.fetchone()
except sqlite3.OperationalError as e:
data = None
log.error(e)
if data:
if data[3]:
if data[1] == username and data[2] == password_crypt:
log.info('user %s authenticated correctly', username)
if environ:
http_accept = environ.get('HTTP_ACCEPT')
if http_accept.startswith('application/mercurial') or \
environ['PATH_INFO'].find('raw-file') != -1:
cmd = environ['PATH_INFO']
for qry in environ['QUERY_STRING'].split('&'):
if qry.startswith('cmd'):
cmd += "|" + qry
try:
cur.execute('''INSERT INTO
user_logs
VALUES(?,?,?,?)''',
(None, data[0], cmd, datetime.now()))
conn.commit()
except Exception as e:
conn.rollback()
log.error(e)
return True
else:
log.error('user %s is disabled', username)
return False
def create_user_table():
'''
Create a auth database
'''
conn, cur = get_sqlite_conn_cur()
try:
log.info('creating table %s', 'users')
cur.execute('''DROP TABLE IF EXISTS users ''')
cur.execute('''CREATE TABLE users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT,
password TEXT,
active INTEGER)''')
log.info('creating table %s', 'user_logs')
cur.execute('''DROP TABLE IF EXISTS user_logs ''')
cur.execute('''CREATE TABLE user_logs
(id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER,
last_action TEXT,
last_action_date DATETIME)''')
conn.commit()
except:
conn.rollback()
raise
cur.close()
def create_user(username, password):
conn, cur = get_sqlite_conn_cur()
password_crypt = crypt.crypt(password, '6a')
cur_date = datetime.now()
log.info('creating user %s', username)
try:
cur.execute('''INSERT INTO users values (?,?,?,?) ''',
(None, username, password_crypt, 1,))
conn.commit()
except:
conn.rollback()
raise
if __name__ == "__main__":
create_user_table()
create_user('marcink', 'qweqwe')
create_user('lukaszd', 'qweqwe')
create_user('adriand', 'qweqwe')
create_user('radek', 'qweqwe')
create_user('skrzeka', 'qweqwe')
create_user('bart', 'qweqwe')
create_user('maho', 'qweqwe')
create_user('michalg', 'qweqwe')
create_user('admin', 'qwe123qwe')
#authfunc('', 'marcink', 'qweqwe')
|