예제 #1
0
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])
예제 #2
0
파일: views.py 프로젝트: udplabs/zartan
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")
예제 #3
0
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])
예제 #4
0
파일: userapps.py 프로젝트: vrohilla/zartan
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)
예제 #5
0
파일: views.py 프로젝트: johnnyz257/zartan
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")
예제 #6
0
파일: views.py 프로젝트: bhanchand/zartan
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)
예제 #7
0
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")
예제 #8
0
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"]))
예제 #9
0
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()))
예제 #10
0
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
예제 #11
0
파일: views.py 프로젝트: udplabs/zartan
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))
예제 #12
0
파일: views.py 프로젝트: bhanchand/zartan
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])
예제 #13
0
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
예제 #14
0
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])
예제 #15
0
파일: views.py 프로젝트: udplabs/zartan
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"])
예제 #16
0
파일: views.py 프로젝트: udplabs/zartan
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])
예제 #17
0
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
예제 #18
0
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"])
예제 #19
0
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])
예제 #20
0
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")
예제 #21
0
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"])
예제 #22
0
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)
예제 #23
0
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")
예제 #24
0
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
예제 #25
0
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)
예제 #26
0
파일: views.py 프로젝트: udplabs/zartan
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])
예제 #27
0
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
예제 #28
0
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)
예제 #29
0
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])
예제 #30
0
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"]))