Mercurial > kraina_muminkow
changeset 4:cf786ee26a22
MOŻNA SIĘ LOGOWAĆ I WYLOGOWAĆ jestem wspaniały
author | michalr |
---|---|
date | Tue, 22 Feb 2011 20:38:51 +0000 |
parents | 79fc37fe85a6 |
children | 3ba60dfc1d64 |
files | frontend/config.ini frontend/mfrontend/db.py frontend/mfrontend/templates/hello.html frontend/mfrontend/views/frontend.py |
diffstat | 4 files changed, 40 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/frontend/config.ini Tue Feb 22 19:25:10 2011 +0000 +++ b/frontend/config.ini Tue Feb 22 20:38:51 2011 +0000 @@ -1,6 +1,6 @@ [Basic] # W przypadku sqlite, ścieżka do pliku bazy -Database = ../baza.sqlite +Database = baza.sqlite # Wygenerować losowy dla każdej instalacji bazy Secret_Key = TakBardzoTajne # Dla poważnej instalacji ustawić na 0
--- a/frontend/mfrontend/db.py Tue Feb 22 19:25:10 2011 +0000 +++ b/frontend/mfrontend/db.py Tue Feb 22 20:38:51 2011 +0000 @@ -4,6 +4,7 @@ import sqlite3 from flask import g import ConfigParser +from mfrontend import utils config = ConfigParser.SafeConfigParser() config.read('config.ini') @@ -24,3 +25,20 @@ rv = [dict((cur.description[idx][0], value) for idx, value in enumerate(row)) for row in cur.fetchall()] return (rv[0] if rv else None) if one else rv + +def user_can_login(username, password): + """Funkcja sprawdzająca, czy podany użytkownik może sie zalogować + po podaniu danego w argumencie hasła. + @param username Nazwa użytkownika + @param password Hasło + @return Prawda, jeśli podane dane są akceptowalne, w przeciwnym + razie fałsz. + """ + user = query_db('select * from users where username = ?', + [username], one=True) + if user is None: # Brak użytkownika o takiej nazwie + return False + if user['password'] == utils.hashPassword(password): + return True # Jeśli mamy takiego użytkownika, i hasło się zgadza + # Najwyraźniej jest taki użytkownik, ale hasło się nie zgadza + return False
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/frontend/mfrontend/templates/hello.html Tue Feb 22 20:38:51 2011 +0000 @@ -0,0 +1,5 @@ + {% extends "layout.html" %} +{% block body %} +<h2>WITAJ NA NASZEJ STRONIE</h2> +<p>Tutaj znajduje sie jakiś tekst.</p> +{% endblock %}
--- a/frontend/mfrontend/views/frontend.py Tue Feb 22 19:25:10 2011 +0000 +++ b/frontend/mfrontend/views/frontend.py Tue Feb 22 20:38:51 2011 +0000 @@ -1,21 +1,34 @@ #!/usr/bin/python # -*- coding: utf-8 -*- -from flask import Module, render_template, request, url_for +from flask import Module, render_template, request, url_for, escape, session, redirect, flash from mfrontend import db, utils frontend = Module(__name__) @frontend.route('/') def index(): - lol = db.query_db('select id, username, password from users') - return lol[0]['username'] + return render_template('hello.html') @frontend.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': + if db.user_can_login(request.form['username'], + request.form['password']) : + session['logged_in'] = True + session['logged_user'] = request.form['username'] + flash('Zalogowano') + return redirect(url_for('index')) return "Uname: {0}<br />Passwd: {1}<br />Hashpwd: {2}".format( request.form['username'], request.form['password'], utils.hashPassword(request.form['password'])) return render_template('login.html') +@frontend.route('/logout') +def logout(): + """Funkcja powoduje wyczyszczenie sesji użytkownika, + a w efekcie wylogowanie z systemu. + """ + session.clear() + flash('Wylogowano') + return redirect(url_for('index'))