Код: Выделить всё
2025-01-24 14:02:25,740 - INFO - 127.0.0.1 - - [24/Jan/2025 14:02:25] "GET /get_class_codes HTTP/1.1" 403 -
< /code>
У меня определен следующий маршрут: < /p>
@main.route('/get_class_codes', methods=['GET'])
@login_required
def get_class_codes():
if current_user.role == 'teacher':
class_codes = ClassCode.query.filter_by(creator_id=current_user.id).all()
elif current_user.role == 'student':
class_codes = (
db.session.query(StudentClassCode, ClassCode)
.join(ClassCode, StudentClassCode.class_code_id == ClassCode.id)
.filter(StudentClassCode.student_id == current_user.id)
.all()
)
class_codes = [c[1] for c in class_codes]
else:
return jsonify({'message': f'Unauthorized role: {current_user.role}'}), 403
if not class_codes:
return jsonify({'message': 'No class codes available'}), 404
result = [{'code': c.code, 'description': c.description} for c in class_codes]
return jsonify({'class_codes': result}), 200
< /code>
Кроме того, я следовал роли пользователя по определению маршрута: < /p>
@main.route('/dashboard', methods=['GET', 'POST'])
@login_required
def dashboard():
if current_user.role == 'student':
return render_template('student_dashboard.html', user=current_user)
elif current_user.role == 'teacher':
return render_template('teacher_dashboard.html', user=current_user)
elif current_user.role == 'employee':
form = EmployeeForm() # Create an instance of the form
# Retrieve class codes created by the employee
class_codes = ClassCode.query.filter_by(creator_id=current_user.id).all()
return render_template('employee_dashboard.html',
user=current_user,
form=form,
class_codes=class_codes) # Pass class codes to the template
elif current_user.role == 'parent':
return render_template('parent_dashboard.html', user=current_user)
else:
flash('Unauthorized role!', 'danger')
return redirect(url_for('main.index'))
Вот некоторые подробности. о настройке:
- Я использую Flask-Login для управления пользователями.
- Текущий_user.role настроен правильно, так как я могу распечатать роль пользователя в других частях приложения.
- Пользователь правильно вошел в систему при попытке доступа к этому маршруту, и токен CSRF не является проблемой, поскольку другие маршруты работают должным образом.
Заранее благодарим вас за помощь!< /п>
Подробнее здесь: https://stackoverflow.com/questions/793 ... odes-route
Мобильная версия