commit 388f4d4b2e00c3cf99f048d23d3a61de32f3b109
parent 66818cc5d47bbed0cd23965d6a8b7f06aa885484
Author: Friedel Schön <[email protected]>
Date: Sun, 17 Apr 2022 15:27:24 +0200
edited readme
Diffstat:
5 files changed, 58 insertions(+), 40 deletions(-)
diff --git a/pgmles/__init__.py b/pgmles/__init__.py
@@ -1 +0,0 @@
-# deze bestand moet er zijn, anders zou Python's leuke module-system klagen );
-\ No newline at end of file
diff --git a/pgmles/routes.py b/pgmles/routes.py
@@ -153,7 +153,8 @@ def course(course_id):
@login_required
def course_overview():
if current_user.type not in [ "admin", "teacher" ]:
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
courses = [ (c, User.query.filter_by(id=c.id).first() ) for c in Course.query.all() ]
return render_template('course_overview.html', calendar=make_calendar(), legend='Lesoverzicht', courses=courses)
@@ -162,7 +163,8 @@ def course_overview():
@login_required
def new_course():
if current_user.type not in [ "admin", "teacher" ]:
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
form = NewCourseForm()
form.teacher_id.choices = [ (g.id, g.username) for g in User.query.filter_by(type='teacher') ]
if form.validate_on_submit():
@@ -178,7 +180,8 @@ def new_course():
@login_required
def update_course(course_id):
if current_user.type not in [ "admin", "teacher" ]:
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
form = NewCourseForm()
form.teacher_id.choices = [ (g.id, g.username) for g in User.query.filter_by(type='teacher') ]
course = Course.query.get_or_404(course_id)
@@ -208,7 +211,8 @@ def update_course(course_id):
@login_required
def delete_course(course_id):
if current_user.type not in [ "admin", "teacher" ]:
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
course = Course.query.get_or_404(course_id)
db.session.delete(course)
db.session.commit()
@@ -219,7 +223,8 @@ def delete_course(course_id):
@login_required
def admin():
if current_user.type != "admin":
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
form = SearchForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
@@ -235,7 +240,8 @@ def admin():
@login_required
def admin_user(user_id):
if current_user.type != "admin":
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
form = AdminForm()
user = User.query.filter_by(id=user_id).first()
image_file = url_for('static', filename='profile_pics/' + user.image_file)
@@ -253,7 +259,8 @@ def admin_user(user_id):
@login_required
def delete_user(user_id):
if current_user.type != "admin":
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
user = User.query.get_or_404(user_id)
db.session.delete(user)
db.session.commit()
@@ -265,9 +272,16 @@ def delete_user(user_id):
@login_required
def reset_user(user_id):
if current_user.type != "admin":
- abort(403)
+ flash('U mag deze website niet bereiken', 'error')
+ return redirect('/')
user = User.query.get_or_404(user_id)
user.password = bcrypt.generate_password_hash(user.email).decode('utf-8')
db.session.commit()
flash(f'{user.username}\'s is nu zijn/haar e-mail', 'success')
return redirect(url_for('admin'))
+
+""" 404 not found handler """
[email protected](404)
+def not_found(error):
+ flash(f"Deze pagina werd niet gevonden", 'danger')
+ return index() # geen redirect om de '/bla' te houden
diff --git a/pgmles/templates/about.html b/pgmles/templates/about.html
@@ -10,14 +10,12 @@
</p>
<p>
Samen met <i>Groningen-Drenthe Systems (GDS)</i> ontwikkelden wij deze pagina om ook ouderen mogelijk te
- maken
- in hun vrije tijd iets nieuws te leren.
+ maken in hun vrije tijd iets nieuws te leren.
</p>
<p>
Vele pensioenaten waren vroeger BASIC-programmeurs, COBOL of Assembly op hun Commandore 64. Wij proberen dit
- op te pakken en te vernieuwen met
- moderne talen zoals Python, Java of JavaScript. Natuurlijk bieden wij ook verschillende lessen voor
- beginners aan.
+ op te pakken en te vernieuwen met moderne talen zoals Python, Java of JavaScript. Natuurlijk bieden wij ook
+ verschillende lessen voor beginners aan.
</p>
<p>
U bent hartelijk welkom en wij hopen u in ons lessen te kunnen zien!<br>
diff --git a/pgmles/templates/course_overview.html b/pgmles/templates/course_overview.html
@@ -25,7 +25,6 @@
</div>
</div>
</article>
-<!-- Modal -->
<div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
diff --git a/readme.md b/readme.md
@@ -4,7 +4,7 @@
Dit is een dev-server, dus run je met `debug=True`-flag!
-*Als onze website zo goed is, om het in production te runnen, verwijder het `debug=True` 🍻*
+*Als onze website zo goed is, om het in production te runnen, verwijder het `debug=True` :beers:*
**Alle afhankelijkheden installeren:**
```
@@ -18,31 +18,40 @@ $ python run.py
## Uitleg
-| route | bestand | beschrikbaar als<sup>1</sup> | beschrijving |
-|-----------------------------|----------------------|------------------------------|----------------------------------------------------------|
-| / | index.html | gast | home-pagina |
-| /about | about.html | gast | over ons |
-| /register | register.html | gast | registeren van een gebruiker<sup>2</sup> |
-| /login | login.html | gast | inloggen van een gebruiker<sup>2,3</sup> |
-| /logout | *redirect: /* | klant | uitloggen van een gebruiker |
-| /courses | course_overview.html | docent | lessen bewerken/verwijderen |
-| /course/new | new_course.html | docent | nieuwe les aanmaken |
-| /course/`:course_id` | course.html | klant | les informatie |
-| /course/`:course_id`/update | new_course.html | docent | les instellingen |
-| /course/`:course_id`/delete | *redirect: /courses* | docent | les verwijderen |
-| /users | admin.html | admin | gebruiker overzicht<sup>4</sup> |
-| /user/self | account.html | klant | profiel instellingen |
-| /user/`:user_id` | admin_user.html | admin | gebruiker instellingen |
-| /user/`:user_id`/delete | *redirect: /users* | admin | gebruiker verwijderen |
-| /user/`:user_id`/reset | *redirect: /users* | admin | gebruikers wachtwoord terugzetten<sup>5</sup> |
-|-----------------------------|----------------------|------------------------------|----------------------------------------------------------|
-| | layout.html | | de basis layout voor alle routen |
-| | static/main.css | | de basis stylesheet voor alle routen |
-| | static/profile_pics | | map met alle profielfoto's inclusief default profielfoto |
+### Routes
+
+| route | bestand | beschrikbaar als<sup>1</sup> | beschrijving |
+| --------------------------- | -------------------- | ---------------------------- | ------------------------------------------------------ |
+| / | index.html | gast | home-pagina |
+| /about | about.html | gast | over ons |
+| /register | register.html | gast | registeren van een gebruiker<sup>2</sup> |
+| /login | login.html | gast | inloggen van een gebruiker<sup>2,3</sup> |
+| /logout | *redirect: /* | klant | uitloggen van een gebruiker |
+| /courses | course_overview.html | docent | lessen bewerken/verwijderen |
+| /course/new | new_course.html | docent | nieuwe les aanmaken |
+| /course/`:course_id` | course.html | klant | les informatie |
+| /course/`:course_id`/update | new_course.html | docent | les instellingen |
+| /course/`:course_id`/delete | *redirect: /courses* | docent | les verwijderen |
+| /users | admin.html | admin | gebruiker overzicht<sup>4</sup> |
+| /user/self | account.html | klant | profiel instellingen |
+| /user/`:user_id` | admin_user.html | admin | gebruiker instellingen |
+| /user/`:user_id`/delete | *redirect: /users* | admin | gebruiker verwijderen |
+| /user/`:user_id`/reset | *redirect: /users* | admin | gebruikers wachtwoord terugzetten<sup>5</sup> |
+| *not found* | index.html | | 404 page not found handler |
+| **overige bestanden** | --- | --- | --- |
+| | forms.py | | alle forms voor de websites |
+| | models.py | | alle database structs, om alle tabellen te beschrijven |
+| | routes.py | | alle routen en endpoints |
+| | server.py | | de server initialatie, database etc. |
+| | site.db | | hoofd-database voor users, courses etc. |
+| | .gitignore | | om git te stoppen, \__pycache__ mee up te laden |
+| | run.py | | om de server te runnen |
+| | layout.html | | de basis layout voor alle routen |
+| | static/main.css | | de basis stylesheet voor alle routen |
+| | static/profile_pics | | map met alle profielfoto's |
> <sup>1</sup> de hierachie is: gast (niet ingelogd), klant, docent, admin<br>
-> dus kan een gast het minste bereiken, een klant ook kan alles bereiken wat gast mag etc.<br>
-> probeert bijvoorbeeld de klant een admin-pagina te bereiken wordt een 403-error gegooid
+> dus kan een gast het minste bereiken, een klant ook kan alles bereiken wat gast mag etc.
> <sup>2</sup> als hij al ingelogd is, wordt weer naar `/` redirect