|
| 1 | +"""Example 009: Delete user product permission profiles using an email address. """ |
| 2 | + |
| 3 | +import json |
| 4 | + |
| 5 | +from docusign_admin.client.api_exception import ApiException |
| 6 | +from flask import Blueprint, render_template, current_app, session |
| 7 | + |
| 8 | +from app.docusign import authenticate |
| 9 | +from app.error_handlers import process_error |
| 10 | +from ..examples.eg009_delete_user_product_permission_profile import Eg009DeleteUserProductPermissionProfileController |
| 11 | +from ...ds_config import DS_CONFIG |
| 12 | +from ..utils import check_user_exists_by_email |
| 13 | + |
| 14 | +eg = "eg009" # Reference (and URL) for this example |
| 15 | +eg009 = Blueprint(eg, __name__) |
| 16 | + |
| 17 | +@eg009.route(f"/{eg}", methods=["POST"]) |
| 18 | +@authenticate(eg=eg) |
| 19 | +def create_active_clm_esign_user(): |
| 20 | + """ |
| 21 | + 1. Get required arguments |
| 22 | + 2. Call the worker method |
| 23 | + 3. Render the response |
| 24 | + """ |
| 25 | + |
| 26 | + if "clm_email" in session and check_user_exists_by_email(session["clm_email"]): |
| 27 | + controller = Eg009DeleteUserProductPermissionProfileController() |
| 28 | + |
| 29 | + # 1. Get required arguments |
| 30 | + args = Eg009DeleteUserProductPermissionProfileController.get_args() |
| 31 | + try: |
| 32 | + # 2. Call the worker method |
| 33 | + results = Eg009DeleteUserProductPermissionProfileController.worker(controller, args) |
| 34 | + except ApiException as err: |
| 35 | + return process_error(err) |
| 36 | + |
| 37 | + template = render_template( |
| 38 | + "example_done.html", |
| 39 | + title="Delete user product permission profiles using an email address", |
| 40 | + h1="Delete user product permission profiles using an email address", |
| 41 | + message="Results from MultiProductUserManagement:removeUserProductPermission method:", |
| 42 | + json=json.dumps(json.dumps(results, default=str)) |
| 43 | + ) |
| 44 | + else: |
| 45 | + template = render_template( |
| 46 | + f"{eg}_delete_user_product_permission_profile.html", |
| 47 | + title="Delete user product permission profiles using an email address", |
| 48 | + source_file=f"{eg}_delete_user_product_permission_profile.py", |
| 49 | + source_url=DS_CONFIG["admin_github_url"] + f"{eg}_delete_user_product_permission_profile.py", |
| 50 | + documentation=DS_CONFIG["documentation"] + eg |
| 51 | + ) |
| 52 | + |
| 53 | + return template |
| 54 | + |
| 55 | +@eg009.route(f"/{eg}", methods=["GET"]) |
| 56 | +@authenticate(eg=eg) |
| 57 | +def get_view(): |
| 58 | + """ Responds with the form for the example""" |
| 59 | + |
| 60 | + if "clm_email" in session and check_user_exists_by_email(session["clm_email"]): |
| 61 | + try: |
| 62 | + profiles = Eg009DeleteUserProductPermissionProfileController.get_permission_profiles_by_email() |
| 63 | + permission_profile_list = [] |
| 64 | + clm_product_id = None |
| 65 | + clm_permission_profile_name = None |
| 66 | + esign_product_id = None |
| 67 | + esign_permission_profile_name = None |
| 68 | + for profile in profiles: |
| 69 | + permission_profiles = profile["permission_profiles"] |
| 70 | + for permission_profile in permission_profiles: |
| 71 | + if profile["product_name"] == "CLM": |
| 72 | + clm_permission_profile_name = permission_profile["permission_profile_name"] |
| 73 | + clm_product_id = profile["product_id"] |
| 74 | + else: |
| 75 | + esign_permission_profile_name = permission_profile["permission_profile_name"] |
| 76 | + esign_product_id = profile["product_id"] |
| 77 | + |
| 78 | + if clm_product_id is not None: |
| 79 | + permission_profile_list.append({"product_id": clm_product_id, "permission_name": f"CLM - {clm_permission_profile_name}"}) |
| 80 | + |
| 81 | + if esign_product_id is not None: |
| 82 | + permission_profile_list.append({"product_id": esign_product_id, "permission_name": f"eSignature - {esign_permission_profile_name}"}) |
| 83 | + |
| 84 | + except ApiException as err: |
| 85 | + return process_error(err) |
| 86 | + |
| 87 | + template = render_template( |
| 88 | + f"{eg}_delete_user_product_permission_profile.html", |
| 89 | + title="Delete user product permission profiles using an email address", |
| 90 | + email_ok="clm_email" in session, |
| 91 | + source_file=f"{eg}_delete_user_product_permission_profile.py", |
| 92 | + source_url=DS_CONFIG["admin_github_url"] + f"{eg}_delete_user_product_permission_profile.py", |
| 93 | + documentation=DS_CONFIG["documentation"] + eg, |
| 94 | + email=session["clm_email"], |
| 95 | + permission_profile_list=permission_profile_list |
| 96 | + ) |
| 97 | + else: |
| 98 | + template = render_template( |
| 99 | + f"{eg}_delete_user_product_permission_profile.html", |
| 100 | + title="Delete user product permission profiles using an email address", |
| 101 | + source_file=f"{eg}_delete_user_product_permission_profile.py", |
| 102 | + source_url=DS_CONFIG["admin_github_url"] + f"{eg}_delete_user_product_permission_profile.py", |
| 103 | + documentation=DS_CONFIG["documentation"] + eg |
| 104 | + ) |
| 105 | + |
| 106 | + return template |
0 commit comments