diff --git a/Project design/Database design/concept.drawio b/Project design/Database design/concept.drawio index 3a0d362..df659f3 100644 --- a/Project design/Database design/concept.drawio +++ b/Project design/Database design/concept.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/Project design/Database design/concept.png b/Project design/Database design/concept.png index b8bb676..37c47ef 100644 Binary files a/Project design/Database design/concept.png and b/Project design/Database design/concept.png differ diff --git a/Project design/Database design/database.sql b/Project design/Database design/database.sql index 242d34c..d00bd23 100644 --- a/Project design/Database design/database.sql +++ b/Project design/Database design/database.sql @@ -7,7 +7,9 @@ CREATE TABLE moderators( moderatorid serial PRIMARY KEY, naam varchar(64) NOT NULL, hash varchar(255), + maylogin boolean NOT NULL, lastseen timestamp + ); CREATE TABLE twitterberichten( @@ -23,12 +25,10 @@ CREATE TABLE statuses( CREATE TABLE berichten( berichtid serial PRIMARY KEY, bericht varchar(140) NOT NULL, - datumontvangen date NOT NULL, - tijdontvangen time NOT NULL, + datumontvangen timestamp NOT NULL, naamposter varchar(32), moderatorid int, - datumgekeurd date, - tijdgekeurd time, + datumgekeurd timestamp, statusid int NOT NULL, locatieid int NOT NULL, twitterid bigint, @@ -39,7 +39,7 @@ CREATE TABLE berichten( ); -- administrator:password -INSERT INTO moderators(naam, hash) VALUES ('administrator', 'a3eec2461d6637164d836db2c9f19795357c80c1420ccc13386839ae1104b53a'); +INSERT INTO moderators(naam, hash, maylogin) VALUES ('administrator', 'a3eec2461d6637164d836db2c9f19795357c80c1420ccc13386839ae1104b53a', true); INSERT INTO locaties(locatieid, naam) VALUES ('1', 'Utrecht Centraal'); INSERT INTO locaties(locatieid, naam) VALUES ('2', 'Amsterdam Centraal'); INSERT INTO locaties(locatieid, naam) VALUES ('3', 'Rotterdam Centraal'); diff --git a/Project design/Database design/fysiek.drawio b/Project design/Database design/fysiek.drawio index 905fc66..8afd6e6 100644 --- a/Project design/Database design/fysiek.drawio +++ b/Project design/Database design/fysiek.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/Project design/Database design/fysiek.png b/Project design/Database design/fysiek.png index ebbdd95..374edf5 100644 Binary files a/Project design/Database design/fysiek.png and b/Project design/Database design/fysiek.png differ diff --git a/Project design/Database design/logisch.drawio b/Project design/Database design/logisch.drawio index 158140d..a4d4a53 100644 --- a/Project design/Database design/logisch.drawio +++ b/Project design/Database design/logisch.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/Project design/Database design/logisch.png b/Project design/Database design/logisch.png index 770197b..172891f 100644 Binary files a/Project design/Database design/logisch.png and b/Project design/Database design/logisch.png differ diff --git a/customer_input.py b/customer_input.py index f54a4cd..d76fb28 100644 --- a/customer_input.py +++ b/customer_input.py @@ -10,12 +10,11 @@ locatieid = 1 def insertdatabase(bericht, naamposter): - time = datetime.datetime.utcnow().strftime("%H:%M:%S") - date = datetime.datetime.utcnow().strftime("%Y-%m-%d") + date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") try: - QUERY = 'INSERT INTO berichten(bericht, datumontvangen, tijdontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s, %s)' - DATA = (bericht, date, time, locatieid, naamposter, '1') + QUERY = 'INSERT INTO berichten(bericht, datumontvangen, locatieid, naamposter, statusid) VALUES (%s, %s, %s, %s, %s)' + DATA = (bericht, date, locatieid, naamposter, '1') cur.execute(QUERY, DATA) conn.commit() return True diff --git a/moderator.py b/moderator.py index f8bc22d..e1f7bc5 100644 --- a/moderator.py +++ b/moderator.py @@ -55,7 +55,7 @@ def newaccount(): """ hashedpass = hashlib.sha256(password1.encode('UTF-8') + 'saltandpepper'.encode('UTF-8')).hexdigest() try: - cur.execute("INSERT INTO moderators(naam, hash) VALUES (%s, %s)", (username, hashedpass)) + cur.execute("INSERT INTO moderators(naam, hash, maylogin) VALUES (%s, %s, %s)", (username, hashedpass, 'true')) conn.commit() print('Account aangemaakt!') return True @@ -113,9 +113,9 @@ def getmessage(moderatorid): """ vraagt de outste bericht op en zet het bericht gelijk op moderator lock(2) returnt een tuple met de oudste bericht met de status 1(pending moderation) - de tuple ziet er alsvolgt uit: (berichtid int, berichtinhoud str, datum date, tijd time, naam str) + de tuple ziet er alsvolgt uit: (berichtid int, berichtinhoud str, datum date, naam str) """ - cur.execute("SELECT berichtid, bericht, datumontvangen, tijdontvangen, naamposter FROM berichten WHERE statusid = 1 ORDER BY datumontvangen, tijdontvangen LIMIT 1") + cur.execute("SELECT berichtid, bericht, datumontvangen, naamposter FROM berichten WHERE statusid = 1 ORDER BY datumontvangen LIMIT 1") gottuple = cur.fetchone() @@ -133,22 +133,20 @@ def unlockmessage(berichtid): def acceptmessage(berichtid, moderatorid): - time = datetime.datetime.utcnow().strftime("%H:%M:%S") - date = datetime.datetime.utcnow().strftime("%Y-%m-%d") + date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") - QUERY = "UPDATE berichten SET statusid = 4, datumgekeurd = (%s), tijdgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)" - DATA = (date, time, moderatorid, berichtid) + QUERY = "UPDATE berichten SET statusid = 4, datumgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)" + DATA = (date, moderatorid, berichtid) cur.execute(QUERY, DATA) conn.commit() return True def rejectmessage(berichtid, moderatorid): - time = datetime.datetime.utcnow().strftime("%H:%M:%S") - date = datetime.datetime.utcnow().strftime("%Y-%m-%d") + date = datetime.datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S") - QUERY = "UPDATE berichten SET statusid = 3, datumgekeurd = (%s), tijdgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)" - DATA = (date, time, moderatorid, berichtid) + QUERY = "UPDATE berichten SET statusid = 3, datumgekeurd = (%s), moderatorid = (%s) WHERE berichtid = (%s)" + DATA = (date, moderatorid, berichtid) cur.execute(QUERY, DATA) conn.commit() return True @@ -174,7 +172,7 @@ def moderateloop(moderatorid): print('Er zijn geen berichten meer om te weergeven, probeer het later opnieuw') return True - print("Op " + str(bericht[2]) + " " + str(bericht[3]) + " heeft " + str(bericht[4]) + " een bericht achtergelaten") + print("Op " + str(bericht[2]) + " heeft " + str(bericht[3]) + " een bericht achtergelaten") print(str(bericht[0]) + " " + str(bericht[1])) while exitvar != True: @@ -295,6 +293,9 @@ def login(): elif hashedpass != sqlreturn[2]: print('Wachtwoord onjuist') return False + elif sqlreturn[3] != True: + print('account mag niet inloggen') + return False menu(sqlreturn[0], sqlreturn[1]) diff --git a/moderator_gui.py b/moderator_gui.py index 39ef947..1f9ecea 100644 --- a/moderator_gui.py +++ b/moderator_gui.py @@ -20,6 +20,9 @@ def func_check_login(uname, pword): elif hashedpass != sqlreturn[2]: flash('Uw wachtwoord is fout') return False + elif sqlreturn[3] != True: + flash('Dit account mag niet meer inloggen') + return False else: return True @@ -30,7 +33,6 @@ def func_listmoderators(limit, page): countmoderators = cur.fetchone() return (allmoderators, countmoderators) - def func_addmoderator(uname, pword, pword2): username = uname.lower() password = pword @@ -55,7 +57,7 @@ def func_addmoderator(uname, pword, pword2): if sqlreturn == None: hashedpass = hashlib.sha256(password.encode('UTF-8') + 'saltandpepper'.encode('UTF-8')).hexdigest() - cur.execute("INSERT INTO moderators(naam, hash) VALUES (%s, %s)", (username, hashedpass)) + cur.execute("INSERT INTO moderators(naam, hash, maylogin) VALUES (%s, %s, 'true')", (username, hashedpass)) conn.commit() flash('Account voor ' + username + ' aangemaakt!') return True @@ -71,12 +73,47 @@ def func_removemoderator(moderatorid): return True except: conn.rollback() - flash('Probleem met het verwijderen van account! Heeft de account berichten gemodereerd?') - return False + try: + cur.execute('UPDATE moderators SET maylogin = false WHERE moderatorid = (%s)', [moderatorid]) + conn.commit() + flash('Account kan niet verwijdert worden, account mag niet meer inloggen') + return True + except: + conn.rollback() + flash('Probleem opgetreden bij het aanpassen van moderator account') + return False -def publish_twitter(berichtid): + +def func_listberichten(limit, page): + cur.execute('SELECT berichten.berichtid, berichten.bericht, berichten.datumontvangen, berichten.naamposter, ' + 'berichten.datumgekeurd, locaties.naam, moderators.naam, statuses.status, berichten.twitterid ' + 'FROM berichten ' + 'LEFT OUTER JOIN statuses ON berichten.statusid = statuses.statusid ' + 'LEFT OUTER JOIN locaties ON berichten.locatieid = locaties.locatieid ' + 'LEFT OUTER JOIN moderators ON berichten.moderatorid = moderators.moderatorid ' + 'ORDER BY datumontvangen DESC LIMIT (%s) OFFSET (%s)', (limit, page)) + allberichten = cur.fetchall() + cur.execute('SELECT COUNT(*) FROM berichten') + countberichten = cur.fetchone() + return (allberichten, countberichten) + +def func_querybericht(berichtid): + cur.execute('SELECT berichten.berichtid, berichten.bericht, berichten.datumontvangen, berichten.naamposter, ' + 'berichten.datumgekeurd, locaties.naam, moderators.naam, statuses.status, berichten.twitterid ' + 'FROM berichten ' + 'LEFT OUTER JOIN statuses ON berichten.statusid = statuses.statusid ' + 'LEFT OUTER JOIN locaties ON berichten.locatieid = locaties.locatieid ' + 'LEFT OUTER JOIN moderators ON berichten.moderatorid = moderators.moderatorid ' + 'WHERE berichtid = (%s)', [berichtid]) + return cur.fetchone() + +def func_lockbericht(berichtid, moderatorid): + cur.execute('UPDATE berichten SET statusid = 2, moderatorid = (%s) WHERE berichtid = (%s)', (moderatorid, berichtid)) + conn.commit() return True + + @app.route('/') def root(): return render_template('root.html') @@ -88,7 +125,6 @@ def login(): session['username'] = request.form['uname'] return redirect(url_for('home')) else: - flash('Er is een probleem bij het inloggen') return render_template('login.html') else: if 'username' in session: @@ -118,9 +154,11 @@ def moderators(): page = maxitems * pagenum - moderators = func_listmoderators(maxitems, page)[0] + listreturn = func_listmoderators(maxitems, page) + moderators = listreturn[0] + moderatorcount = listreturn[1][0] - return render_template('moderators.html', moderators=moderators) + return render_template('moderators.html', moderators=moderators, moderatorcount=moderatorcount) else: flash('You are not logged in!') return redirect(url_for('login')) @@ -147,5 +185,39 @@ def listmoderators(): flash('You are not logged in!') return redirect(url_for('login')) +@app.route('/berichten') +def berichten(): + if 'username' in session: + if request.args.get('maxitems'): + maxitems = int(request.args.get('maxitems')) + else: + maxitems = 10 + if request.args.get('pagenum'): + pagenum = int(request.args.get('pagenum')) - 1 + else: + pagenum = 0 + + page = maxitems * pagenum + + listreturn = func_listberichten(maxitems, page) + berichten = listreturn[0] + berichtcount = listreturn[1][0] + + return render_template('berichten.html', berichten=berichten, berichtcount=berichtcount) + else: + flash('You are not logged in!') + return redirect(url_for('login')) + +@app.route('/bericht/') +def bericht(berichtid): + if 'username' in session: + bericht = func_querybericht(berichtid) + return render_template('bericht.html', bericht=bericht) + else: + flash('You are not logged in!') + return redirect(url_for('login')) + + + if __name__ == "__main__": app.run('0.0.0.0', debug=True) \ No newline at end of file diff --git a/templates/bericht.html b/templates/bericht.html new file mode 100644 index 0000000..6bb0876 --- /dev/null +++ b/templates/bericht.html @@ -0,0 +1,36 @@ + + + + + Home + + + + {% include 'navbar_template.html' %} + {% include 'flash_template.html' %} +

Bericht ID {{ berichtid }}

+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/berichten.html b/templates/berichten.html new file mode 100644 index 0000000..c6e35b8 --- /dev/null +++ b/templates/berichten.html @@ -0,0 +1,59 @@ + + + + + Berichten + + + + {% include 'navbar_template.html' %} + {% include 'flash_template.html' %} +

List of berichten

+

Er zijn momenteel {{ berichtcount }} berichten in het systeem

+
Bericht IDNaamBericht inhoudGeplaatst inOntvangen opStatus berichtGekeurd opModeratorTwitter ID
{{ bericht[0] }}{{ bericht[3] }}{{ bericht[1] }}{{ bericht[5] }}{{ bericht[2] }}{{ bericht[7] }}{{ bericht[4] }}{{ bericht[6] }}{{ bericht[8] }}
+ + + + + + + + + + + + {% for row in berichten %} + + + + + + + + + + + + {% endfor %} +
Bericht IDNaamBericht inhoudGeplaatst inOntvangen opStatus berichtGekeurd opModeratorTwitter ID
{{ row[0] }}{{ row[3] }}{{ row[1] }}{{ row[5] }}{{ row[2] }}{{ row[7] }}{{ row[4] }}{{ row[6] }}{{ row[8] }}
+ +
+ + + + + +
+ + + \ No newline at end of file diff --git a/templates/home.html b/templates/home.html index 3ca3a99..2ef5968 100644 --- a/templates/home.html +++ b/templates/home.html @@ -3,11 +3,11 @@ Home + + {% include 'navbar_template.html' %} {% include 'flash_template.html' %}

Hello {{ username }}

-

Click here to logout

-

Click here to edit moderators in the system

\ No newline at end of file diff --git a/templates/login.html b/templates/login.html index 0377694..fd224a1 100644 --- a/templates/login.html +++ b/templates/login.html @@ -3,8 +3,10 @@ Login + + {% include 'navbar_template.html' %} {% include 'flash_template.html' %}

Please login to access home page

diff --git a/templates/moderators.html b/templates/moderators.html index 70e01ed..0627dfd 100644 --- a/templates/moderators.html +++ b/templates/moderators.html @@ -9,11 +9,13 @@ {% include 'navbar_template.html' %} {% include 'flash_template.html' %}

List of moderators

- +

Er zijn momenteel {{ moderatorcount }} moderators in het systeem

+
+ {% for row in moderators %} @@ -22,6 +24,7 @@ +
Moderator ID Username Hashed PasswordMay login Last seen
{{ row[1] }} {{ row[2] }} {{ row[3] }}{{ row[4] }} diff --git a/templates/navbar_template.html b/templates/navbar_template.html index 7765b4a..75814a8 100644 --- a/templates/navbar_template.html +++ b/templates/navbar_template.html @@ -1,5 +1,7 @@ -
    + \ No newline at end of file diff --git a/templates/root.html b/templates/root.html index 80a8b83..0194af1 100644 --- a/templates/root.html +++ b/templates/root.html @@ -3,10 +3,11 @@ Root + + {% include 'navbar_template.html' %} + {% include 'flash_template.html' %}

    Welcome to the index page!

    -

    Click here for the login page

    -

    Click here for the home page

    \ No newline at end of file