resolve conflicts

manzilcheck
Kushal Dotel 6 months ago
commit acbd835324
  1. 19
      backend/blueprints/profile/__init__.py
  2. 3
      backend/db/model.py
  3. 12
      backend/utils/auth.py

@ -149,4 +149,21 @@ def login():
}), 200
except Exception as e:
db.session.rollback()
return jsonify({"error": "Login failed, please try again later."}), 500
return jsonify({"error": "Login failed, please try again later."}), 500
#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")
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")
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))
pfpFilename: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_PROFILE_FILE)
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())
coverImage: Mapped[str] = mapped_column(String(256), nullable=False, default=DEFAULT_COURSE_COVER)
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):

@ -1,13 +1,12 @@
from functools import wraps
from flask import request, jsonify
from flask import request, jsonify, g
from sqlalchemy import select, and_
from ..db.model import User, Session, db
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:
roles = [UserRole.USER]
roles = [UserRole.USER, UserRole.ADMIN]
roles = [int(r) for r in roles]
def decorator(f):
@wraps(f)
@ -24,9 +23,12 @@ def requires_role(roles: Union[None, UserRole] = None):
).scalar()
if not session:
return jsonify({'error': 'Invalid or expired session'}), 401
user = session.user
user: User = session.user
if not user:
return jsonify({'error': 'User not found for the Access token'}), 401
g.current_session = session
g.current_user = user
# If no roles specified, allow access
if not roles:
return f(*args, **kwargs)

Loading…
Cancel
Save