def streamingservice_mydevices(): logger.debug("streamingservice_mydevices()") user_info = get_userinfo() user_id = user_info["sub"] okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) client_id = session[SESSION_INSTANCE_SETTINGS_KEY]["settings"]["app_deviceflow_clientid"] user_app_profile = okta_admin.get_user_application_by_client_id(user_id=user_id, client_id=client_id) devices = [] if get_udp_ns_fieldname("authorized_devices") in user_app_profile["profile"]: devices = user_app_profile["profile"][get_udp_ns_fieldname("authorized_devices")] if devices is None: devices = [] else: devices = [] logger.debug(devices) return render_template( "streamingservice/mydevices.html", user_info=get_userinfo(), devices=devices, config=session[SESSION_INSTANCE_SETTINGS_KEY])
def ecommerce_order(): logger.debug("ecommerce_order()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) return render_template("ecommerce/order.html", user=user, user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme="https")
def profile_bp(): logger.debug("profile_bp_profile()") if request.args.get('refreshtoken') == 'true': okta_auth = OktaAuth(session[SESSION_INSTANCE_SETTINGS_KEY]) auth_options = { "response_mode": "form_post", "prompt": "none", "scope": "openid profile email" } session["oidc_state"] = str(uuid.uuid4()) session[FROM_URI_KEY] = request.url.replace( "http://", "{0}://".format(session[SESSION_INSTANCE_SETTINGS_KEY] ["app_scheme"])) + "profile" oauth_authorize_url = okta_auth.create_oauth_authorize_url( response_type="code", state=session["oidc_state"], auth_options=auth_options) return redirect(oauth_authorize_url) else: user_info = get_userinfo() factors = get_enrolled_factors(user_info["sub"]) return render_template( "/profile.html", templatename=get_app_vertical(), id_token=TokenUtil.get_id_token(request.cookies), factors=factors, access_token=TokenUtil.get_access_token(request.cookies), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY])
def gbac_userapps_mfa(): logger.debug("gbac_userapps_mfa()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) app_info = okta_admin.get_applications_by_user_id(user["id"]) return render_template("/userapps.html", user_info=get_userinfo(), templatename=get_app_vertical(), config=session[SESSION_INSTANCE_SETTINGS_KEY], applist=app_info)
def credit_mycredit(): logger.debug("credit_mycredit()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) app_all_info = okta_admin.get_applications_all() app_info = okta_admin.get_applications_by_user_id(user["id"]) return render_template( "credit/mycredit.html", user_info=get_userinfo(), templatename=get_app_vertical(), config=session[SESSION_INSTANCE_SETTINGS_KEY], applist=app_info, applistall=app_all_info, _scheme="https")
def b2b_profile(): logger.debug("b2b_profile()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) app_info = okta_admin.get_applications_by_user_id(user["id"]) return render_template("{0}/profile.html".format(get_app_vertical()), templatename=get_app_vertical(), id_token=TokenUtil.get_id_token(request.cookies), access_token=TokenUtil.get_access_token( request.cookies), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], applist=app_info)
def ecommerce_order(): logger.debug("ecommerce_order()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) storefront = StorefrontFactory.getStorefrontProvider( session[SESSION_INSTANCE_SETTINGS_KEY]['settings'], user_info, TokenUtil.get_access_token(request.cookies), None) user = okta_admin.get_user(user_info["sub"]) orders = storefront.getOrders() return render_template("ecommerce/order.html", user=user, user_info=get_userinfo(), orders=orders, config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme="https")
def ecommerce_requests_post(): logger.debug("workflow_requests_post()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) user_id = user["id"] if get_udp_ns_fieldname("access_requests") in user["profile"]: pendingRequest = user["profile"][get_udp_ns_fieldname( "access_requests")] else: pendingRequest = [] if request.form.get("request_access"): group_id = request.form.get("request_access") if group_id not in pendingRequest: pendingRequest.append(group_id) # Remove user attribute organization ( as the request has been rejected) # organization": "[ '{id}' ]".format(id=request.form.get('location')) user_data = { "profile": { get_udp_ns_fieldname("access_requests"): pendingRequest } } test = okta_admin.update_user(user_id=user_id, user=user_data) print(test) ecommerce_emailWorkFlowRequest(group_id) return redirect( url_for("ecommerce_views_bp.ecommerce_requests_get", _external=True, _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"]))
def gbac_main(): logger.debug("gbac_main()") return render_template( "{0}/index.html".format(get_app_vertical()), templatename=get_app_vertical(), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], state=str(uuid.uuid4()))
def ecommerce_updateuser(): logger.debug("ecommerce_updateuser()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) logger.debug(request) firstname = request.args["firstName"] lastname = request.args["lastName"] email = request.args["email"] primaryPhone = request.args["phone"] mobilePhone = request.args["phone"] streetAddress = request.args["streetAddress"] city = request.args["city"] state = request.args["state"] zipCode = request.args["zipCode"] countryCode = request.args["countryCode"] user_data = { "profile": { "firstName": firstname, "lastName": lastname, "email": email, "primaryPhone": primaryPhone, "mobilePhone": mobilePhone, "streetAddress": streetAddress, "city": city, "state": state, "zipCode": zipCode, "countryCode": countryCode } } logger.debug(user_data) response = okta_admin.update_user(user_id=user_info["sub"], user=user_data) logger.debug(response) return response
def ecommerce_accept_terms(): logger.debug("ecommerce_accept_terms()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) user_id = user["id"] now = datetime.datetime.now() # dd/mm/YY H:M:S consent = now.strftime("%d/%m/%Y %H:%M:%S") user_data = {"profile": {get_udp_ns_fieldname("consent"): consent}} user_update_response = okta_admin.update_user(user_id, user_data) if user_update_response: message = "Thank you for completing the Consent Form." else: message = "Error During consent" return redirect( url_for( "ecommerce_views_bp.ecommerce_profile", _external="True", _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"], user_id=user_id, message=message))
def streamingservice_devicepage(): logger.debug("streamingservice_devicepage()") client_id = session[SESSION_INSTANCE_SETTINGS_KEY]["settings"][ "app_deviceflow_clientid"] appname = session[SESSION_INSTANCE_SETTINGS_KEY]["settings"][ "app_deviceflow_appname"] if request.method == 'POST': logging.debug("POSTBACK") id_token = request.form['id_token'] access_token = request.form['access_token'] refresh_token = request.form['refresh_token'] reset_tokens = "true" else: id_token = "" access_token = "" refresh_token = "" reset_tokens = "false" return render_template("streamingservice/devicepage.html", user_info=get_userinfo(), id_token=id_token, access_token=access_token, refresh_token=refresh_token, reset_tokens=reset_tokens, client_id=client_id, appname=appname, config=session[SESSION_INSTANCE_SETTINGS_KEY])
def gbac_idverification_isverified(): logger.debug("gbac_idverification_isverified") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) verified_date = user["profile"][get_udp_ns_fieldname("last_verified_date")] return verified_date
def developer_manage_api(): logger.debug("developer_manage_apps()") return render_template("/developer/manage_apps.html", templatename=get_app_vertical(), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY])
def credit_account(): logger.debug("credit_account()") return render_template( "credit/account.html", user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"])
def travelagency_profile(): return render_template("travelagency/profile.html", id_token=TokenUtil.get_id_token(request.cookies), access_token=TokenUtil.get_access_token( request.cookies), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY])
def gbac_idverification_getverificationcode(): logger.debug("gbac_idverification_bp") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) evidenttoken = "" basicauth = OktaUtil.get_encoded_auth("okta", "Ry4EZf8SyxKyStLK6BqxBBLXEW4SrIo6hc0m2rR3PoI") headers = { "Accept": "application/json", "Content-Type": "application/json", "Authorization": "Basic {0}".format(basicauth) } my_str = user["profile"]["email"] idx = my_str.index("@") email = my_str[:idx] + str(time.time()) + my_str[idx:] body = { "email": email, "templateId": "1ce55f4e-7bb2-4907-9643-dc61f1f04f4d" } response = RestUtil.execute_post(" https://verify.api.demo.evidentid.com/api/v1/verify/requests", headers=headers, body=body) evidenttoken = response["userIdentityToken"] user_data = {"profile": {get_udp_ns_fieldname("evident_id"): response["id"]}} okta_admin.update_user(user["id"], user_data) return evidenttoken
def dealer_myapps_get(): logger.debug("dealer_myapps_get()") CONFIG_GROUP_LOCATION_STARTSWITH = "{0}_".format(get_udp_ns_fieldname(CONFIG_LOCATION)) user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) user_id = user["id"] location = "" # Find the groups the user belongs to and find the description of the _LOC_* group get_user_groups_response = okta_admin.get_user_groups(user_id=user_id) for item in get_user_groups_response: if item["profile"]["name"].startswith(CONFIG_GROUP_LOCATION_STARTSWITH): location = item["profile"]["description"] get_apps_response = okta_admin.get_applications_by_user_id(user_id) return render_template( "{0}/myapps.html".format(get_app_vertical()), templatename=get_app_vertical(), user_info=user_info, config=session[SESSION_INSTANCE_SETTINGS_KEY], location=location, apps=get_apps_response, _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"])
def gbac_apps_createAPI(): logger.debug("gbac_apps_createAPI()") return render_template("/manageapiscreateupdate.html", templatename=get_app_vertical(), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY])
def ecommerce_order_summary(orderid): logger.debug("ecommerce_order_summary()") active_order = None user_info = get_userinfo() okta_auth = OktaAuth(session[SESSION_INSTANCE_SETTINGS_KEY]) storefront_system_token = okta_auth.get_oauth_system_token( session[SESSION_INSTANCE_SETTINGS_KEY]['settings'] ['storefront_system_client_id'], session[SESSION_INSTANCE_SETTINGS_KEY] ['settings']['storefront_system_client_secret'], session[SESSION_INSTANCE_SETTINGS_KEY]['settings'] ['storefront_system_client_scopes']) storefront = StorefrontFactory.getStorefrontProvider( session[SESSION_INSTANCE_SETTINGS_KEY]['settings'], user_info, TokenUtil.get_access_token(request.cookies), storefront_system_token['access_token']) if orderid is None: active_order = session["just_submitted_order_id"] del session["just_submitted_order_id"] else: active_order = orderid order = storefront.getOrder(active_order) return render_template("ecommerce/ordersummary.html", order=order, config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme="https")
def ecommerce_approvals_get(): logger.debug("workflow_approvals()") workflow_list = [] user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user = okta_admin.get_user(user_info["sub"]) user_groups = okta_admin.get_user_groups(user["id"]) user_get_response = okta_admin.get_user_list_by_search( 'profile.{0} pr '.format(get_udp_ns_fieldname("access_requests"))) for list in user_get_response: for grp in list["profile"][get_udp_ns_fieldname("access_requests")]: group_get_response = okta_admin.get_group(id=grp) logging.debug(group_get_response) var = { "requestor": list["profile"]["login"], "request": group_get_response["profile"]["description"], "usr_grp": { "user_id": list["id"], "group_id": grp } } for clist in user_groups: if grp == clist['id']: workflow_list.append(var) return render_template( "{0}/workflow-approvals.html".format(get_app_vertical()), templatename=get_app_vertical(), workflow_list=workflow_list, user_info=user_info, config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"])
def ecommerce_profile(): logger.debug("ecommerce_profile()") okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) user_info = get_userinfo() user_info2 = okta_admin.get_user(user_info["sub"]) factors = get_enrolled_factors(user_info["sub"]) if get_udp_ns_fieldname("consent") in user_info2["profile"]: consent = user_info2["profile"][get_udp_ns_fieldname("consent")] if consent.strip() == "": consent = '' session['appointment'] = "No Appointments Currently Set." else: consent = '' crediturl = '' app_info = okta_admin.get_applications_by_user_id(user_info["sub"]) for item in app_info: if "credit Demo (Generated by UDP)" in item["label"]: domain = urlparse( item["settings"]["oauthClient"]["initiate_login_uri"]).netloc crediturl = "https://" + domain return render_template("ecommerce/profile.html", id_token=TokenUtil.get_id_token(request.cookies), access_token=TokenUtil.get_access_token( request.cookies), user_info=user_info, user_info2=user_info2, consent=consent, factors=factors, config=session[SESSION_INSTANCE_SETTINGS_KEY], crediturl=crediturl)
def ecommerce_credit(): logger.debug("ecommerce_credit()") return render_template("ecommerce/credit.html", templatename=get_app_vertical(), config=session[SESSION_INSTANCE_SETTINGS_KEY], user_info=get_userinfo(), _scheme="https")
def ecommerce_add_cart(): logger.debug("ecommerce_add_cart()") user_info = get_userinfo() storefront = StorefrontFactory.getStorefrontProvider( session[SESSION_INSTANCE_SETTINGS_KEY]['settings'], user_info, TokenUtil.get_access_token(request.cookies), None) productCode = request.form.get("product_code") logger.debug("product code sent in: {product_code}".format( product_code=request.form.get("product_code"))) result = None if user_info: if "customer_cart_id" not in session: logger.debug("No Cart found. Creating a customer cart first.") cartData = storefront.createCustomerCart() logger.debug(cartData) session["customer_cart_id"] = cartData.cartId logger.debug(session["customer_cart_id"]) result = storefront.addItemCart(session["customer_cart_id"], productCode) else: if "guest_cart_id" not in session: logger.debug("No Cart found. Creating an anonymous cart first.") cartData = storefront.createAnonymousCart() logger.debug(cartData) session["guest_cart_id"] = cartData.cartId logger.debug(session["guest_cart_id"]) result = storefront.addItemCart(session['guest_cart_id'], productCode) return result
def gbac_apis(): logger.debug("gbac_apps()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) applist = okta_admin.get_applications_by_user_id(user_info["sub"]) myapplist = [] for app in applist: if ("profile" in app) and ("createdby" in app["profile"]) and ( user_info["email"] in app["profile"]["createdby"]): myapplist.append(app) return render_template("/manageapis.html", templatename=get_app_vertical(), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], applist=myapplist)
def credit_profile(): logger.debug("credit_profile()") return render_template("credit/profile.html", id_token=TokenUtil.get_id_token(request.cookies), access_token=TokenUtil.get_access_token( request.cookies), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY])
def gbac_apps_create_cc(): logger.debug("gbac_apps_create_cc()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) app_name = request.args.get('appname') create_app = okta_admin.create_clientcredential_application(app_name) okta_admin.assign_user_to_application(user_info["sub"], user_info["email"], create_app["id"]) return create_app
def gbac_trustedorigins(): logger.debug("gbac_trustedorigins()") user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) trustedorigins = okta_admin.get_trusted_origin() trustedoriginslist = [] for trustedorigin in trustedorigins: if user_info["sub"] in trustedorigin["name"]: trustedoriginslist.append(trustedorigin) return render_template("/managetrustedorigins.html", templatename=get_app_vertical(), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], trustedorigins=trustedoriginslist)
def sample_profile(): logger.debug("sample_profile()") return render_template("{0}/profile.html".format(get_app_vertical()), templatename=get_app_vertical(), id_token=TokenUtil.get_id_token(request.cookies), access_token=TokenUtil.get_access_token( request.cookies), user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY])
def ecommerce_order_post(): user_info = get_userinfo() okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY]) okta_auth = OktaAuth(session[SESSION_INSTANCE_SETTINGS_KEY]) storefront_system_token = okta_auth.get_oauth_system_token( session[SESSION_INSTANCE_SETTINGS_KEY]['settings'] ['storefront_system_client_id'], session[SESSION_INSTANCE_SETTINGS_KEY] ['settings']['storefront_system_client_secret'], session[SESSION_INSTANCE_SETTINGS_KEY]['settings'] ['storefront_system_client_scopes']) storefront = StorefrontFactory.getStorefrontProvider( session[SESSION_INSTANCE_SETTINGS_KEY]['settings'], user_info, TokenUtil.get_access_token(request.cookies), storefront_system_token['access_token']) cartId = None userId = None logger.debug("ecommerce_order_post()") logger.debug(request.form) if not user_info: cartId = session['guest_cart_id'] userId = request.form.get("email") else: cartId = session['customer_cart_id'] userId = user_info['email'] orderAddress = OrderShipAddress(request.form.get("firstName"), request.form.get("lastName"), request.form.get("address"), request.form.get("city"), request.form.get("state"), request.form.get("country"), request.form.get("zip")) orderBilling = OrderBillingInfo(request.form.get("cc-name"), request.form.get("cc-number"), 'visa', request.form.get("cc-expiration-month"), request.form.get("cc-expiration-year"), '1234') order = Order(None, None, orderAddress, orderBilling, None, None, None) #Post the order orderResponse = storefront.order(cartId, userId, order) session["just_submitted_order_id"] = orderResponse["orderId"] if "customer_cart_id" in session: del session['customer_cart_id'] if "guest_cart_id" in session: del session['guest_cart_id'] return redirect( url_for("ecommerce_views_bp.ecommerce_order_summary", _external="True", _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"], message="Order Complete", orderid=orderResponse["orderId"]))