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