from flask import ( abort, redirect, render_template, send_from_directory, url_for ) from flask_login import current_user from app.models import User from . import bp @bp.route('') def users(): return redirect(url_for('main.social_area', _anchor='users')) @bp.route('/') def user(user_id): user = User.query.get_or_404(user_id) if not (user.is_public or user == current_user or current_user.is_administrator): abort(403) return render_template( 'users/user.html.j2', title=user.username, user=user ) @bp.route('//avatar') def user_avatar(user_id): user = User.query.get_or_404(user_id) if not (user.is_public or user == current_user or current_user.is_administrator): abort(403) if user.avatar is None: return redirect(url_for('static', filename='images/user_avatar.png')) return send_from_directory( user.avatar.path.parent, user.avatar.path.name, as_attachment=True, download_name=user.avatar.filename, mimetype=user.avatar.mimetype )