diff --git a/hiboo/profile/admin.py b/hiboo/profile/admin.py index d67d68de0380ccc84d3e0f94e251745421775936..fa465d2e433f526510534b6ad33ec1bbee6d6356 100644 --- a/hiboo/profile/admin.py +++ b/hiboo/profile/admin.py @@ -1,5 +1,6 @@ from hiboo.profile import blueprint from hiboo import security, models +from hiboo import user as hiboo_user from flask_babel import lazy_gettext as _ import flask @@ -56,3 +57,16 @@ def set_status(profile_uuid, status): models.db.session.commit() flask.flash(_("Profile status was successfully changed"), "success") return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid)) + + +@blueprint.route("/assign/<profile_uuid>", methods=["GET", "POST"]) +@security.admin_required() +def assign(profile_uuid): + profile = models.Profile.query.get(profile_uuid) or flask.abort(404) + assert profile.status == "unclaimed" + user = hiboo_user.get_user(intent="profile.assign", profile_uuid=profile_uuid) + profile.user_uuid = user.uuid + profile.status = "active" + models.db.session.commit() + flask.flash(_("Successfully assigned the profile"), "success") + return flask.redirect(flask.url_for(".details", profile_uuid=profile_uuid)) diff --git a/hiboo/profile/templates/profile_details.html b/hiboo/profile/templates/profile_details.html index e973ccbad21175a566389bbbee322d8b441bbd1a..1c446eb3a51877a9eb1373392bd9873eec4321d8 100644 --- a/hiboo/profile/templates/profile_details.html +++ b/hiboo/profile/templates/profile_details.html @@ -43,5 +43,7 @@ <a href="{{ url_for("profile.set_status", profile_uuid=profile.uuid, status="active") }}" class="btn btn-success">{% trans %}Unblock profile{% endtrans %}</a> {% elif profile.status == "request" %} <a href="{{ url_for("profile.set_status", profile_uuid=profile.uuid, status="active") }}" class="btn btn-success">{% trans %}Validate profile{% endtrans %}</a> +{% elif profile.status == "unclaimed" %} +<a href="{{ url_for("profile.assign", profile_uuid=profile.uuid) }}" class="btn btn-info">{% trans %}Validate profile{% endtrans %}</a> {% endif %} {% endblock %} diff --git a/hiboo/profile/templates/profile_list.html b/hiboo/profile/templates/profile_list.html index fc4990d5a195b0a90e9ed32d0d3ce723587da5b9..08b1e6f95eb9f315be662bc011bbeaa9b82cf688 100644 --- a/hiboo/profile/templates/profile_list.html +++ b/hiboo/profile/templates/profile_list.html @@ -49,6 +49,8 @@ <a href="{{ url_for("profile.set_status", profile_uuid=profile.uuid, status="active") }}">{% trans %}Unblock profile{% endtrans %}</a> {% elif profile.status == "request" %} <a href="{{ url_for("profile.set_status", profile_uuid=profile.uuid, status="active") }}">{% trans %}Validate profile{% endtrans %}</a> + {% elif profile.status == "unclaimed" %} + <a href="{{ url_for("profile.assign", profile_uuid=profile.uuid) }}">{% trans %}Assign profile{% endtrans %}</a> {% endif %} </td> </tr>