1
|
1 #!/usr/bin/python
|
|
2 # -*- coding: utf-8 -*-
|
|
3
|
|
4 import sqlite3
|
|
5 from flask import g
|
|
6 import ConfigParser
|
4
|
7 from mfrontend import utils
|
1
|
8
|
|
9 config = ConfigParser.SafeConfigParser()
|
|
10 config.read('config.ini')
|
|
11
|
|
12 def connect_db():
|
|
13 """Funkcja łącząca się z bazą danych."""
|
|
14 g.db = sqlite3.connect(config.get('Basic','Database'))
|
|
15
|
|
16 def disconnect_db():
|
|
17 """Funkcja zamykająca połączenie z bazą danych"""
|
|
18 g.db.close()
|
|
19
|
|
20 def query_db(query, args=(), one=False):
|
|
21 """Funkcja ułatwiająca odpytywanie bazy danych, źródło:
|
|
22 http://flask.pocoo.org/docs/patterns/sqlite3/
|
|
23 """
|
|
24 cur = g.db.execute(query, args)
|
|
25 rv = [dict((cur.description[idx][0], value)
|
|
26 for idx, value in enumerate(row)) for row in cur.fetchall()]
|
|
27 return (rv[0] if rv else None) if one else rv
|
4
|
28
|
|
29 def user_can_login(username, password):
|
|
30 """Funkcja sprawdzająca, czy podany użytkownik może sie zalogować
|
|
31 po podaniu danego w argumencie hasła.
|
|
32 @param username Nazwa użytkownika
|
|
33 @param password Hasło
|
|
34 @return Prawda, jeśli podane dane są akceptowalne, w przeciwnym
|
|
35 razie fałsz.
|
|
36 """
|
|
37 user = query_db('select * from users where username = ?',
|
|
38 [username], one=True)
|
|
39 if user is None: # Brak użytkownika o takiej nazwie
|
|
40 return False
|
|
41 if user['password'] == utils.hashPassword(password):
|
|
42 return True # Jeśli mamy takiego użytkownika, i hasło się zgadza
|
|
43 # Najwyraźniej jest taki użytkownik, ale hasło się nie zgadza
|
|
44 return False
|