From c072aa771dea8586fd9019f3e76aebf6adf26d87 Mon Sep 17 00:00:00 2001 From: XD-DENG Date: Mon, 3 Jul 2017 22:34:58 +0800 Subject: [PATCH] For Private page, add feature 'take note' This makes this app much more meaningful. For this feature, a new database table is added. More complicated logics are also needed, for example, we use hash(user ID + timestamp + note contant) as the unique id of each note (it's necessary when we try to delete a note) --- app.py | 32 +++++++++++++++- database.py | 71 +++++++++++++++++++++++++++++++++--- database_file/notes.db | Bin 0 -> 12288 bytes database_file/users.db | Bin 12288 -> 12288 bytes static/img/private.jpg | Bin 78797 -> 0 bytes templates/admin.html | 20 ++++------ templates/page_403.html | 6 +++ templates/private_page.html | 42 ++++++++++++++++++++- 8 files changed, 150 insertions(+), 21 deletions(-) create mode 100644 database_file/notes.db delete mode 100644 static/img/private.jpg create mode 100644 templates/page_403.html diff --git a/app.py b/app.py index 6a7478b..87c59d5 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,6 @@ from flask import Flask, session, url_for, redirect, render_template, request, abort, flash from database import list_users, verify, delete_user_from_db, add_user +from database import read_note_from_db, write_note_into_db, delete_note_from_db, match_user_id_with_note_id app = Flask(__name__) app.config.from_object('config') @@ -10,6 +11,10 @@ app.config.from_object('config') def FUN_401(error): return render_template("page_401.html"), 401 +@app.errorhandler(403) +def FUN_403(error): + return render_template("page_403.html"), 403 + @app.errorhandler(404) def FUN_404(error): return render_template("page_404.html"), 404 @@ -33,7 +38,12 @@ def FUN_public(): @app.route("/private/") def FUN_private(): if "current_user" in session.keys(): - return render_template("private_page.html") + notes_list = read_note_from_db(session['current_user']) + notes_table = zip([x[0] for x in notes_list],\ + [x[1] for x in notes_list],\ + [x[2] for x in notes_list],\ + ["/delete_note/" + x[0] for x in notes_list]) + return render_template("private_page.html", notes = notes_table) else: return abort(401) @@ -53,6 +63,26 @@ def FUN_admin(): +@app.route("/write_note", methods = ["POST"]) +def FUN_write_note(): + text_to_write = request.form.get("text_note_to_take") + write_note_into_db(session['current_user'], text_to_write) + + return(redirect(url_for("FUN_private"))) + +@app.route("/delete_note/", methods = ["GET"]) +def FUN_delete_note(note_id): + if session.get("current_user", None) == match_user_id_with_note_id(note_id): # Ensure the current user is NOT operating on other users' note. + delete_note_from_db(note_id) + else: + return abort(401) + + return(redirect(url_for("FUN_private"))) + + + + + @app.route("/login", methods = ["POST"]) def FUN_login(): id_submitted = request.form.get("id").upper() diff --git a/database.py b/database.py index 55c50a4..c0966ef 100644 --- a/database.py +++ b/database.py @@ -1,10 +1,12 @@ import sqlite3 import hashlib +import datetime -db_file_location = "database_file/users.db" +user_db_file_location = "database_file/users.db" +note_db_file_location = "database_file/notes.db" def list_users(): - _conn = sqlite3.connect(db_file_location) + _conn = sqlite3.connect(user_db_file_location) _c = _conn.cursor() _c.execute("select id from users;") @@ -15,7 +17,7 @@ def list_users(): return result def verify(id, pw): - _conn = sqlite3.connect(db_file_location) + _conn = sqlite3.connect(user_db_file_location) _c = _conn.cursor() _c.execute("select pw from users where id = '" + id + "';") @@ -26,20 +28,75 @@ def verify(id, pw): return result def delete_user_from_db(id): - _conn = sqlite3.connect(db_file_location) + _conn = sqlite3.connect(user_db_file_location) _c = _conn.cursor() - _c.execute("delete from users where id = '" + id + "';") + _conn.commit() + _conn.close() + # when we delete a user from database USERS, we also need to delete all his or her notes data from database NOTES + _conn = sqlite3.connect(note_db_file_location) + _c = _conn.cursor() + _c.execute("delete from notes where user = '" + id + "';") _conn.commit() _conn.close() def add_user(id, pw): - _conn = sqlite3.connect(db_file_location) + _conn = sqlite3.connect(user_db_file_location) _c = _conn.cursor() command = "insert into users values('" + id.upper() + "', '" + hashlib.sha256(pw).hexdigest() + "');" _c.execute(command) + + _conn.commit() + _conn.close() + +def read_note_from_db(id): + _conn = sqlite3.connect(note_db_file_location) + _c = _conn.cursor() + + command = "select note_id, timestamp, note from notes where user = '" + id.upper() + "';" + _c.execute(command) + result = _c.fetchall() + + _conn.commit() + _conn.close() + + return result + +def match_user_id_with_note_id(note_id): + # Given the note id, confirm if the current user is the owner of the note which is being operated. + _conn = sqlite3.connect(note_db_file_location) + _c = _conn.cursor() + + command = "select user from notes where note_id = '" + note_id + "';" + _c.execute(command) + result = _c.fetchone()[0] + + _conn.commit() + _conn.close() + + return result + +def write_note_into_db(id, note_to_write): + _conn = sqlite3.connect(note_db_file_location) + _c = _conn.cursor() + + current_timestamp = str(datetime.datetime.now()) + command = "insert into notes values('" + id.upper() + "', '" + \ + current_timestamp + "', '" + note_to_write + \ + "', '" + hashlib.sha1(id.upper() + current_timestamp + note_to_write).hexdigest() + "');" + _c.execute(command) + + _conn.commit() + _conn.close() + +def delete_note_from_db(note_id): + _conn = sqlite3.connect(note_db_file_location) + _c = _conn.cursor() + + command = "delete from notes where note_id = '" + note_id + "';" + _c.execute(command) _conn.commit() _conn.close() @@ -47,5 +104,7 @@ def add_user(id, pw): + + if __name__ == "__main__": print list_users() \ No newline at end of file diff --git a/database_file/notes.db b/database_file/notes.db new file mode 100644 index 0000000000000000000000000000000000000000..4bd9ed2d02c3753a9a3857b3aa9641aea83b105a GIT binary patch literal 12288 zcmeI%J8#@J8~||1S36FSyX)03ZpaXhEszL&isVg|+D~pydi33}_&&W==e@euWX>0BUp2cX zb2LPw;^6TRHMh{GbuqN|FV_#ydNT9X+RT>kuIneRoc=Iz&DCe^&PB4-=_Q?B_vh|m zr`NgYT(qBFUGKiR`{qNHhkk(o2!H?xfB*=900@8p2>ky9zUprGir(450mVc<#BpPY z(gD^3Au=v=E!BJ>wUIVwxxv^H?-X{z>wu{jKDb=uB@1~O1drYGMR8qajAc|xmGjYf zQlYpRRBg)AS5??d<9w-FXDkE}G#4~y+EHOV%eingNY7M|R+o-qmM0jG&DgNq zmPBI4xDX+DX*t$T<%~(m6xN(+BD@bKR`+AEcU^S+S#Nv47@m!Wr=zQ((?RXcGKNWP z;2)o6UbzUUnR?cRGUAyjy|aoM?X-2)Ng*jS%o|Ds7BK`JN=o8C;d}k!)$pu1d~$s9 z@3x2<2$fM0`+ImeKC%|tjA`#^mB(MbF|p3&~y^~15_>0 zy3TyzQEBGr-1{Y(%$BRg^U3^K{aodz&wZ6iW|a*>#4(Oox>QsuCQ1=(&OImCDqUhv zboBbYC~t_AeZ3dS_OBshbii2_$53-s4-b)LVAPWM7Fu3nCN-vtF;)`7JaIS~#N1?mznS_@vlwx9+E>$0tX{H+Nc>*{$2He%gE?*ov|5JU#py2P`aQ literal 0 HcmV?d00001 diff --git a/database_file/users.db b/database_file/users.db index c5f84de9378858d22f9c624536779e007fd4b754..eecd029ea12463ef9f834f860a761c14a60c42e1 100644 GIT binary patch delta 259 zcmWlTJ5Iwu6h+6e6F!nXP7zUn6r>ciGk#;wn-1H23sOMnJwJEZL%ah}c90#QROx6D zOJD(Msi|;u%cG-nSIw$`kk=G0y5%+YGn?r896=I4!a8ZHrt;E4<8%LMA2Vy7gY5F{kvef4wL4 qm+lYSrk7vzY7~xxsv7p}s4S!7a1tEK;YoNFls8Y0^8q1bR7U^q??eay delta 186 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ÿR*(2tB8^~NVM+!(uXDMn@Q=})on4!DaxjHhU>tf1>V#5V9N8Oe z;)b%9Km3rIH^wqIrN{O(^e=BK zy0fv%A{``-Jhgr(k0t>olGg4gfr_$>uY7ViHIQjDXQ%%F7o^7|o@XV7Piz8q^x#w_ zIYxAuMF`3}LLC{|dgYY4EaOsTyxU`q=z53AY&cgQhdQ5Fzqk-ZHN!M=Y7U?P7y>bn z1vFx!t#%1Jbj)k1q={Lgc1A1#DshpF)fW3E)pTk6FDuJr_b$iBGP3I%91MC?GR1PT z*xRZj;%L$v8wZUPJdXOG8D`^?&07LnCz-o2Bay=C3~=1V&-56x{9%c4Zofp7*+IjHk%qWmKJ5SBEu z62)pfG?WE!4ZhcUc5H*vd85bP8+wqR;>!VGh^y^az2-vD%_1D z`%?5hB0ASqy<;4HISMft!hk}K065K0q}fK5qaxF&UE6$HWbn+uiB)&Q0tnwA>}lZ? z@!JI3QlPydokVOw&mT&LO>|Lo zYni52!rWW{7^wa$agVKNy9AcaOEd_vY0gN&$b3>*ycD6;cF6sMc+f6@qe`8H8}e#YB|g(i2Ob`A z?@fIYuE8J;9;V!d{t<8 diff --git a/templates/admin.html b/templates/admin.html index 55ec2a1..d16b335 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -5,16 +5,18 @@ {# only invoked when failed adding new ID due to duplication #} {% if id_to_add_is_duplicated %} -
- Warning! The account name already exists. -
+
+ + Warning! The account name already exists. +
{% endif %} {# only invoked when failed adding new ID due to invalid character #} {% if id_to_add_is_invalid %} -
- Warning! The account name is invalid. -
+
+ + Warning! The account name is invalid. +
{% endif %}
@@ -63,10 +65,4 @@
- - - - - - {% endblock %} diff --git a/templates/page_403.html b/templates/page_403.html new file mode 100644 index 0000000..2fecf7f --- /dev/null +++ b/templates/page_403.html @@ -0,0 +1,6 @@ +{% extends "layout.html" %} +{% block page_title %}Forbidden(403){% endblock %} +{% block body %} + {{ super() }} + This operation is forbidden. +{% endblock %} \ No newline at end of file diff --git a/templates/private_page.html b/templates/private_page.html index f1b71c0..7059c95 100644 --- a/templates/private_page.html +++ b/templates/private_page.html @@ -2,6 +2,44 @@ {% block page_title %}Private Page{% endblock %} {% block body %} {{ super() }} - Cinque Terre - Only logged-in users, like you, can access this page. + +

You can take notes here. Only yourself can access them. They will be removed when your account is removed.

+ +
+ +
+ +
+
+ + +
+
+
+ +
+ + {% if notes %} +

Your Notes

+ + + + + + + + + + {% for note_id, timestamp, note, act in notes %} + + + + + + + + {% endfor %} +
Note IDTimestampNoteAction
{{ note_id }} {{ timestamp }} {{ note }} Delete
+ {% endif %} + {% endblock %} \ No newline at end of file