Added author->Course relationship in model, Fix require role decorator

manzilcheck
Casu Al Snek 6 months ago
parent dd5ceda5ac
commit 6d2bebe4b0
  1. 17
      backend/blueprints/profile/__init__.py
  2. 3
      backend/db/model.py
  3. 3
      backend/utils/auth.py

@ -98,3 +98,20 @@ def register():
except Exception as e: except Exception as e:
db.session.rollback() db.session.rollback()
return jsonify({"error": "Registration failed, please try again later."}), 500 return jsonify({"error": "Registration failed, please try again later."}), 500
# TODO: Implement laters
@profile.route('/update', methhods=['UPDATE', 'DELETE'])
def update():
if request.method == 'DELETE':
pass
if request.method == 'UPDATE':
pass
@profile.route('/me')
def my_profile():
pass
@profile.route('/info/<str:uuid>')
def profile_info(user_uuid):
return user_uuid

@ -29,6 +29,7 @@ class User(db.Model):
chats: Mapped[List["Chat"]] = relationship(back_populates="user", cascade="all, delete-orphan") chats: Mapped[List["Chat"]] = relationship(back_populates="user", cascade="all, delete-orphan")
notifications: Mapped[List["Notification"]] = relationship(back_populates="user", cascade="all, delete-orphan") notifications: Mapped[List["Notification"]] = relationship(back_populates="user", cascade="all, delete-orphan")
user_badges: Mapped[List["UserBadge"]] = relationship(back_populates="user", cascade="all, delete-orphan") user_badges: Mapped[List["UserBadge"]] = relationship(back_populates="user", cascade="all, delete-orphan")
publications: Mapped[List["Course"]] = relationship(back_populates="author", cascade="all, delete-orphan")
dob: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=datetime.fromisocalendar(2002, 1, 1)) dob: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=datetime.fromisocalendar(2002, 1, 1))
pfpFilename: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_PROFILE_FILE) pfpFilename: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_PROFILE_FILE)
joinedDate: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=func.now()) joinedDate: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=func.now())
@ -75,6 +76,8 @@ class Course(db.Model):
creationDate: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=func.now()) creationDate: Mapped[datetime] = mapped_column(DateTime, nullable=False, default=func.now())
coverImage: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_COURSE_COVER) coverImage: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_COURSE_COVER)
serverFilename: Mapped[str] = mapped_column(String(256), nullable=False, default='') serverFilename: Mapped[str] = mapped_column(String(256), nullable=False, default='')
authorID: Mapped[uuid.UUID] = mapped_column(ForeignKey("user.id"))
author: Mapped["User"] = relationship(back_populates="publications")
class Enrollment(db.Model): class Enrollment(db.Model):

@ -3,9 +3,8 @@ from flask import request, jsonify
from sqlalchemy import select, and_ from sqlalchemy import select, and_
from ..db.model import User, Session, db from ..db.model import User, Session, db
from ..constants import UserRole from ..constants import UserRole
from typing import Union
def requires_role(roles: Union[None, UserRole] = None): def requires_role(roles=None):
if roles is None: if roles is None:
roles = [UserRole.USER] roles = [UserRole.USER]
roles = [int(r) for r in roles] roles = [int(r) for r in roles]

Loading…
Cancel
Save