From 0c587d0eff2672b91cf064a0e1f352af8ce2b730 Mon Sep 17 00:00:00 2001 From: Andrei Date: Sun, 12 Mar 2023 17:53:17 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=D0=B0=D0=BC=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20=D0=BF=D1=80=D0=BE=D1=84=D0=B8=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 45 +++++++++++++++++++++++++++++++++++++++--- templates/admin.html | 2 +- templates/profile.html | 6 +++--- 3 files changed, 46 insertions(+), 7 deletions(-) diff --git a/main.py b/main.py index 447222e..d645b40 100644 --- a/main.py +++ b/main.py @@ -62,6 +62,45 @@ def base(): return redirect('/projects') +@app.route('/admin/user/', methods=['GET', 'POST']) +def admin_user(login_usr): + if current_user.is_authenticated: + if current_user.banned: + return redirect('/logout') + if current_user.role == 1: + data_session = db_session.create_session() + user = data_session.query(User).filter(User.login == login_usr).first() + if user and user.role != 1: + form = EditProfileForm( + CombinedMultiDict((request.files, request.form)), + email=user.email, + name=user.name, + surname=user.surname, + about=user.about, + birthday=user.birthday + ) + if form.del_photo.data: + os.remove(user.photo) + user.photo = 'static/images/none_logo.png' + data_session.commit() + if form.validate_on_submit(): + if form.photo.data: + with open(f'static/app_files/user_logo/{user.login}.png', 'wb') as file: + form.photo.data.save(file) + user.photo = f'static/app_files/user_logo/{user.login}.png' + user.name = form.name.data + user.surname = form.surname.data + user.about = form.about.data + user.birthday = form.birthday.data + user.email = form.email.data + data_session.commit() + return redirect(f'/admin/user/{str(login_usr)}') + return render_template('profile.html', title=user.login, form=form, message='', user=user) + else: + abort(403) + abort(404) + + @app.route('/admin', methods=['GET', 'POST']) def admin(): if current_user.is_authenticated: @@ -646,7 +685,7 @@ def profile(): user = data_session.query(User).filter(User.id == current_user.id).first() if not user: return render_template('profile.html', title='Профиль', form=form, - message='Ошибка, пользователь ненайден') + message='Ошибка, пользователь ненайден', user=current_user) os.remove(current_user.photo) user.photo = 'static/images/none_logo.png' data_session.commit() @@ -654,7 +693,7 @@ def profile(): user = data_session.query(User).filter(User.id == current_user.id).first() if not user: return render_template('profile.html', title='Профиль', form=form, - message='Ошибка, пользователь ненайден') + message='Ошибка, пользователь ненайден', user=current_user) if form.email.data != current_user.email: token = s.dumps(form.email.data) link_conf = url_for('confirmation', token=token, _external=True) @@ -672,7 +711,7 @@ def profile(): user.birthday = form.birthday.data data_session.commit() return redirect('/profile') - return render_template('profile.html', title='Профиль', form=form, message='') + return render_template('profile.html', title='Профиль', form=form, message='', user=current_user) else: return redirect('/login') diff --git a/templates/admin.html b/templates/admin.html index bbc5df8..0637e90 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -8,7 +8,7 @@
{% for user in users %}
- +

{{user.name}}

diff --git a/templates/profile.html b/templates/profile.html index 04475e1..38d4e9a 100644 --- a/templates/profile.html +++ b/templates/profile.html @@ -1,9 +1,9 @@ - + {% extends "base.html" %} {% block content %}
- +
{% endfor %}
- {% if 'none' in current_user.photo %} + {% if 'none' in user.photo %}
{{ form.photo(class="input_data dop_data", type="file") }} {% for