Skip to content
Snippets Groups Projects
Verified Commit 304af3ea authored by ornanovitch's avatar ornanovitch
Browse files

enh: PoC

parent fd3b7048
No related branches found
No related tags found
1 merge request!72Draft: Resolve "Améliorer le dialogue de confirmation"
......@@ -28,3 +28,7 @@ class ClaimForm(flask_wtf.FlaskForm):
username = fields.StringField(_('Username'), [validators.DataRequired()])
password = fields.PasswordField(_('Password'), [validators.DataRequired()])
submit = fields.SubmitField(_('Claim profile'))
class ConfirmationForm(flask_wtf.FlaskForm):
submit = fields.SubmitField(_('Confirm'))
......@@ -179,29 +179,38 @@ def action(profile_uuid, action):
@blueprint.route("/transition/<profile_uuid>/<transition_id>", methods=["GET", "POST"])
@security.confirmation_required("change the profile status")
# @security.confirmation_required("change the profile status")
def start_transition(profile_uuid, transition_id):
profile = models.Profile.query.get(profile_uuid) or flask.abort(404)
transition = profile.TRANSITIONS.get(transition_id) or flask.abort(404)
transition.authorized(profile)
profile.transition = transition_id
profile.transition_step = models.Profile.INIT
profile.transition_time = datetime.datetime.now() + datetime.timedelta(seconds=transition.delay)
models.log(
category=models.History.TRANSITION,
value=transition_id,
user=profile.user,
service=profile.service,
profile=profile,
actor=flask_login.current_user,
public=True
action = "change the profile status"
context = transition_id
target = profile.username
form = forms.ConfirmationForm()
if form.validate_on_submit():
transition.authorized(profile)
profile.transition = transition_id
profile.transition_step = models.Profile.INIT
profile.transition_time = datetime.datetime.now() + datetime.timedelta(seconds=transition.delay)
models.log(
category=models.History.TRANSITION,
value=transition_id,
user=profile.user,
service=profile.service,
profile=profile,
actor=flask_login.current_user,
public=True
)
models.db.session.commit()
flask.flash(_("Profile status change was requested"), "success")
if transition_id == "delete" and flask_login.current_user.is_admin == False or transition_id == "purge" and not flask_login.current_user.is_admin:
return flask.redirect(flask.url_for("account.home"))
else:
return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid))
return flask.render_template(
"confirm.html", action=action, context=context, target=target, form=form
)
models.db.session.commit()
flask.flash(_("Profile status change was requested"), "success")
if transition_id == "delete" and flask_login.current_user.is_admin == False or transition_id == "purge" and not flask_login.current_user.is_admin:
return flask.redirect(flask.url_for("account.home"))
else:
return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid))
@blueprint.route("/transition/<profile_uuid>/cancel", methods=["GET", "POST"])
......
......@@ -5,7 +5,13 @@
{% block content %}
<p>
{% trans action %}Your are about to {{ action }}. Do you wish to confirm that action?{% endtrans %}
{% trans action %}Your are about to {{ action }}:{% endtrans %}
</p>
<pre>
{{ context }}: {{ target }}
</pre>
<p>
{% trans action %}Do you wish to confirm that action?{% endtrans %}
</p>
{{ macros.form(form) }}
{% endblock %}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment