From 2eaab16e4edde1e00fd91cd9cb1f5a108f1ea807 Mon Sep 17 00:00:00 2001 From: SirGankalot <73303677+SirGankalot@users.noreply.github.com> Date: Wed, 1 May 2024 20:34:41 +0200 Subject: [PATCH] Changed it so Groups are accessable for authorized users only --- .../website/templates/group_page.html | 23 +++++++++++++++++++ .../website/templates/groups.html | 7 +----- service/src/FlaskWebsite/website/views.py | 19 ++++++++++++--- 3 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 service/src/FlaskWebsite/website/templates/group_page.html diff --git a/service/src/FlaskWebsite/website/templates/group_page.html b/service/src/FlaskWebsite/website/templates/group_page.html new file mode 100644 index 0000000..b7ab410 --- /dev/null +++ b/service/src/FlaskWebsite/website/templates/group_page.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} {% block title %}Home{% endblock %} {% block content + %} +

Note Groups

+ +
+ +
+
+ +
+
+ {% endblock %} \ No newline at end of file diff --git a/service/src/FlaskWebsite/website/templates/groups.html b/service/src/FlaskWebsite/website/templates/groups.html index 7b0354a..8a27f95 100644 --- a/service/src/FlaskWebsite/website/templates/groups.html +++ b/service/src/FlaskWebsite/website/templates/groups.html @@ -4,12 +4,7 @@

Groups

diff --git a/service/src/FlaskWebsite/website/views.py b/service/src/FlaskWebsite/website/views.py index 548482d..651b714 100644 --- a/service/src/FlaskWebsite/website/views.py +++ b/service/src/FlaskWebsite/website/views.py @@ -1,4 +1,4 @@ -from flask import Blueprint, render_template, request, flash, jsonify +from flask import Blueprint, render_template, request, flash, jsonify, redirect, url_for from flask_login import login_required, current_user from .models import Note from .models import NoteGroup @@ -6,6 +6,7 @@ import json + views = Blueprint('views', __name__) @@ -42,12 +43,24 @@ def creategroup(): print("here") # Retrieve all rows from the NoteGroup table note_groups = db.session.query(NoteGroup).all() - print(note_groups) # Prepare a list of dictionaries where each dictionary represents a row with column names as keys and values as values groups = [{column.name: getattr(note_group, column.name) for column in NoteGroup.columns} for note_group in note_groups] - print(groups) return render_template("groups.html", user=current_user, groups=groups) +@views.route('/creategroup/', methods=['GET', 'POST']) +@login_required +def group_page(group_id): + group_allusers = db.session.query(NoteGroup).filter_by(id=group_id).all() + if group_allusers: + if any(one_user.UserId == current_user.id for one_user in group_allusers): + # Retrieve all notes associated with the group + notes = db.session.query(Note).filter_by(owner_id=current_user.id).all() + return render_template("group_page.html", user=current_user, group=group_allusers, notes=notes) + else: + flash('You are not authorized to access this group.', category='error') + else: + flash('Group not found.', category='error') + return redirect(url_for('views.home')) @views.route('/delete-note', methods=['POST']) def delete_note():