mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-31 03:20:28 -04:00
Rather than force us to write the decorators in a specific order let’s just have one decorator call the other. This should make fewer lines of code, and fewer annoying test failures. It also means that the same way of raising a `401` (through the `current_app` method) is used everywhere.
49 lines
1.6 KiB
Python
49 lines
1.6 KiB
Python
from flask import flash, redirect, render_template, request, url_for
|
|
from flask_login import current_user
|
|
|
|
from app import user_api_client
|
|
from app.event_handlers import create_archive_user_event
|
|
from app.main import main
|
|
from app.main.forms import SearchUsersByEmailForm
|
|
from app.models.user import User
|
|
from app.utils import user_is_platform_admin
|
|
|
|
|
|
@main.route("/find-users-by-email", methods=['GET', 'POST'])
|
|
@user_is_platform_admin
|
|
def find_users_by_email():
|
|
form = SearchUsersByEmailForm()
|
|
users_found = None
|
|
status = 200
|
|
if form.validate_on_submit():
|
|
users_found = user_api_client.find_users_by_full_or_partial_email(form.search.data)['data']
|
|
elif request.method == 'POST':
|
|
status = 400
|
|
return render_template(
|
|
'views/find-users/find-users-by-email.html',
|
|
form=form,
|
|
users_found=users_found
|
|
), status
|
|
|
|
|
|
@main.route("/users/<user_id>", methods=['GET'])
|
|
@user_is_platform_admin
|
|
def user_information(user_id):
|
|
return render_template(
|
|
'views/find-users/user-information.html',
|
|
user=User.from_id(user_id),
|
|
)
|
|
|
|
|
|
@main.route("/users/<uuid:user_id>/archive", methods=['GET', 'POST'])
|
|
@user_is_platform_admin
|
|
def archive_user(user_id):
|
|
if request.method == 'POST':
|
|
user_api_client.archive_user(user_id)
|
|
create_archive_user_event(str(user_id), current_user.id)
|
|
|
|
return redirect(url_for('.user_information', user_id=user_id))
|
|
else:
|
|
flash('There\'s no way to reverse this! Are you sure you want to archive this user?', 'delete')
|
|
return user_information(user_id)
|