diff --git a/app/main/views/organisations.py b/app/main/views/organisations.py index 570ab806b..ea73c6eb3 100644 --- a/app/main/views/organisations.py +++ b/app/main/views/organisations.py @@ -17,7 +17,7 @@ from app.main.forms import ( RenameOrganisationForm, SearchUsersForm, ) -from app.utils import user_is_platform_admin +from app.utils import user_has_permissions, user_is_platform_admin @main.route("/organisations", methods=['GET']) @@ -53,7 +53,7 @@ def add_organisation(): @main.route("/organisations/", methods=['GET']) @login_required -@user_is_platform_admin +@user_has_permissions() def organisation_dashboard(org_id): organisation_services = organisations_client.get_organisation_services(org_id) @@ -63,9 +63,34 @@ def organisation_dashboard(org_id): ) +@main.route("/organisations//edit", methods=['GET', 'POST']) +@login_required +@user_has_permissions() +def update_organisation(org_id): + org = organisations_client.get_organisation(org_id) + + form = CreateOrUpdateOrganisation() + + if form.validate_on_submit(): + organisations_client.update_organisation( + org_id=org_id, + name=form.name.data + ) + + return redirect(url_for('.organisations')) + + form.name.data = org['name'] + + return render_template( + 'views/organisations/organisation/update-organisation.html', + form=form, + organisation=org + ) + + @main.route("/organisations//users", methods=['GET']) @login_required -@user_is_platform_admin +@user_has_permissions() def manage_org_users(org_id): users = sorted( user_api_client.get_users_for_organisation(org_id=org_id) + [ @@ -85,7 +110,7 @@ def manage_org_users(org_id): @main.route("/organisations//users/invite", methods=['GET', 'POST']) @login_required -@user_is_platform_admin +@user_has_permissions() def invite_org_user(org_id): form = InviteOrgUserForm( invalid_email_address=current_user.email_address @@ -109,7 +134,7 @@ def invite_org_user(org_id): @main.route("/organisations//users/", methods=['GET', 'POST']) @login_required -@user_is_platform_admin +@user_has_permissions() def edit_user_org_permissions(org_id, user_id): user = user_api_client.get_user(user_id) @@ -121,7 +146,7 @@ def edit_user_org_permissions(org_id, user_id): @main.route("/organisations//users//delete", methods=['GET', 'POST']) @login_required -@user_is_platform_admin +@user_has_permissions() def remove_user_from_organisation(org_id, user_id): user = user_api_client.get_user(user_id) if request.method == 'POST': @@ -151,7 +176,7 @@ def remove_user_from_organisation(org_id, user_id): @main.route("/organisations//cancel-invited-user/", methods=['GET']) @login_required -@user_is_platform_admin +@user_has_permissions() def cancel_invited_org_user(org_id, invited_user_id): org_invite_api_client.cancel_invited_user(org_id=org_id, invited_user_id=invited_user_id)