Ejemplo n.º 1
0
    def emailAllMembersOfGroup(self, group_name, subject, message):
        logger.debug("emailAllMembersOfGroup()")
        okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])

        # Find the Admin Group
        group_list = okta_admin.get_groups_by_name(group_name)
        for group in group_list:
            if group["profile"]["name"] == group_name:
                group_id = group["id"]

        # Find All members that will be notified
        recipients = []
        user_list = okta_admin.get_user_list_by_group_id(group_id)
        for user in user_list:
            recipients.append({"address": user["profile"]["email"]})

        if recipients:
            email_send = Email.send_mail(subject=subject, message=message, recipients=recipients)
            return email_send
Ejemplo n.º 2
0
def gbac_user_suspend():
    logger.debug("gbac_user_suspend()")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_id = request.args.get('user_id')
    suspend_user = okta_admin.suspend_user(user_id)
    user_info2 = okta_admin.get_user(user_id)

    if not suspend_user:
        message = "User {0} {1} Suspended".format(
            user_info2['profile']['firstName'],
            user_info2['profile']['lastName'])
    else:
        message = "Error During Suspension"

    return redirect(
        url_for("gbac_manageusers_bp.gbac_users",
                _external="True",
                _scheme="https",
                message=message))
Ejemplo n.º 3
0
def gbac_user_resetpassword():
    logger.debug("gbac_user_resetpassword")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_id = request.args.get('user_id')
    reset_password = okta_admin.reset_password_for_user(user_id)
    user_info2 = okta_admin.get_user(user_id)

    if not reset_password:
        message = "Password Reset for User {0} {1}".format(
            user_info2['profile']['firstName'],
            user_info2['profile']['lastName'])
    else:
        message = "Error During Password Reset"

    return redirect(
        url_for("gbac_manageusers_bp.gbac_users",
                _external="True",
                _scheme="https",
                message=message))
Ejemplo n.º 4
0
def gbac_user_create():
    logger.debug("gbac_user_create")

    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    first_name = request.form.get('firstname')
    last_name = request.form.get('lastname')
    email = request.form.get('email')
    login = request.form.get('email')
    mobile_phone = request.form.get('phonenumber')
    user_data = {
        "profile": {
            "firstName": first_name,
            "lastName": last_name,
            "email": email,
            "login": login,
            "mobilePhone": mobile_phone
        }
    }

    group_id = request.form.get('group_id')
    user_create_response = okta_admin.create_user(user_data, True)
    if "errorCode" not in user_create_response:
        logging.debug(group_id)
        if group_id == "None":
            # do nothing
            message = "User {0} {1} was Created".format(first_name, last_name)
        else:
            user_group_response = okta_admin.assign_user_to_group(
                group_id, user_create_response['id'])
            if "errorCode" not in user_group_response:
                message = "User {0} {1} was Created".format(
                    first_name, last_name)
            else:
                message = "Error During Create - " + str(
                    user_group_response["errorCauses"][0]["errorSummary"])
    else:
        message = "Error During Create - " + str(
            user_create_response["errorCauses"][0]["errorSummary"])
    return redirect(
        url_for("gbac_manageusers_bp.gbac_users",
                _external="True",
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
                message=message))
Ejemplo n.º 5
0
def register_default():
    print("register_default()")
    user_form_data = request.get_json()

    register_default_response = {"success": False}
    id_token = request.cookies.get("id_token")
    user_id = get_claims_from_token(id_token)["sub"]
    okta_admin = OktaAdmin(session)

    user = {
        "profile": {
            "firstName": user_form_data["firstName"],
            "lastName": user_form_data["lastName"]
        }
    }

    app_user = {
        "profile": {
            "height": user_form_data["height"],
            "weight": user_form_data["weight"]
        }
    }

    updated_user = okta_admin.update_user(user_id, user)
    # print("updated_user: {0}".format(json.dumps(updated_user, indent=4, sort_keys=True)))
    updated_app_user = okta_admin.update_application_user_profile(
        user_id, app_user)

    if "errorSummary" in updated_user:
        register_default_response["errorMessage"] = updated_user[
            "errorSummary"]

        if "errorCauses" in updated_user:
            register_default_response["errorMessages"] = []
            for error_cause in updated_user["errorCauses"]:
                register_default_response["errorMessages"].append(
                    {"errorMessage": error_cause["errorSummary"]})
    else:
        register_default_response["success"] = True
        register_default_response["app_user"] = updated_app_user
        register_default_response["user"] = updated_user

    return json.dumps(register_default_response)
Ejemplo n.º 6
0
def healthcare_accept_terms():
    logger.debug("healthcare_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)
    logger.debug(user_update_response)

    return redirect(
        url_for("healthcare_views_bp.healthcare_profile",
                _external="True",
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
                user_id=user_id))
Ejemplo n.º 7
0
def gbac_trustedorigins_edit():
    logger.debug("gbac_trustedorigins_edit()")
    # user_info = get_userinfo()
    trustedoriginid = request.args.get('trustedoriginid')

    if trustedoriginid:
        okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
        trustedorigin = okta_admin.get_trusted_origin(id=trustedoriginid)

        return render_template("/managetrustedoriginscreateupdate.html",
                               templatename=get_app_vertical(),
                               user_info=get_userinfo(),
                               config=session[SESSION_INSTANCE_SETTINGS_KEY],
                               trustedorigin=trustedorigin)
    else:
        return redirect(
            url_for(
                "gbac_managetrustedorigins_bp.gbac_trustedorigins",
                _external=True,
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"]))
Ejemplo n.º 8
0
def gbac_apps_update():
    logger.debug("gbac_apps_update()")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])

    oidcclientid = request.args.get('oidcclientid')
    oidcloginredirecturi = request.args.get('oidcloginredirecturi')
    oidcapplabel = request.args.get('oidcapplabel')

    if oidcclientid != "" and oidcloginredirecturi != "" and oidcapplabel != "":
        okta_admin.update_web_application(app_label=oidcapplabel,
                                          redirect_uris=oidcloginredirecturi,
                                          app_id=oidcclientid)
        return redirect(
            url_for(
                gbac_app,
                _external=True,
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
                message="Application Updated"))
    else:
        return "", 500
Ejemplo n.º 9
0
def gbac_apps_edit():
    logger.debug("gbac_apps_edit()")
    app_id = request.args.get('appid')

    if app_id:
        okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
        appinfo = okta_admin.get_applications_by_id(app_id)

        return render_template("/manageappscreateupdate.html",
                               templatename=get_app_vertical(),
                               user_info=get_userinfo(),
                               config=session[SESSION_INSTANCE_SETTINGS_KEY],
                               appid=app_id,
                               appinfo=appinfo)
    else:
        return redirect(
            url_for(
                "gbac_manageapps_bp.gbac_apps",
                _external=True,
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"]))
Ejemplo n.º 10
0
def enroll_sms_voice():
    print("enroll_sms_voice()")

    body = request.get_json()
    factor_type = body["factor_type"]
    provider = body["provider"]
    phone_number = body["phone_number"]

    if "state_token" in body:
        okta_auth = OktaAuth(session)
        state_token = body["state_token"]
        response = okta_auth.enroll_sms_voice(state_token, factor_type,
                                              provider, phone_number)
    else:
        okta_admin = OktaAdmin(session)
        user_id = body["user_id"]
        response = okta_admin.enroll_sms_voice(user_id, factor_type, provider,
                                               phone_number)

    return json.dumps(response)
Ejemplo n.º 11
0
def gbac_saml_idps():
    logger.debug("gbac_saml_idps()")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    idp_list = okta_admin.get_idps("SAML2")

    # Grab the runtime details we care about and stuff them into a JSON object
    # for easy display.
    for idp in idp_list:
        detail = {
            "acs_url": idp['_links']['acs']['href'],
            "metadata_url": idp['_links']['metadata']['href']
        }
        idp["detailJSON"] = json.dumps(detail)

    logger.debug(idp_list)
    return render_template("/managesamlidps.html",
                           templatename=get_app_vertical(),
                           user_info=get_userinfo(),
                           idplist=idp_list,
                           config=session[SESSION_INSTANCE_SETTINGS_KEY])
Ejemplo n.º 12
0
def gbac_finduser_completion():
    logger.debug("gbac_finduser_completion()")

    firstName = request.form.get('firstname')
    lastName = request.form.get('lastname')
    primaryPhone = request.form.get('phone')

    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_response = ""
    message = ""
    email = ""
    login = ""
    if primaryPhone:
        logging.debug("checking primaryPhone")
        user_response = okta_admin.get_user_list_by_search(
            "profile.primaryPhone eq \"" + primaryPhone + "\"&limit=1")
        if not user_response:
            logging.debug("checking mobilePhone")
            user_response = okta_admin.get_user_list_by_search(
                "profile.mobilePhone eq \"" + primaryPhone + "\"&limit=1")
    else:
        user_response = okta_admin.get_user_list_by_search(
            "profile.firstName eq \"" + firstName +
            "\" and profile.lastName eq \"" + lastName + "\"&limit=1")

    if user_response:
        login = user_response[0]['profile']['login']
        recipients = []
        recipients.append({"address": user_response[0]["profile"]["email"]})
        emailLogin(recipients, login)
        message = "Your Username was found. An email is being sent to: " + user_response[
            0]["profile"]["email"]
    else:
        message = "Your Username was not found. Please try again."

    return redirect(
        url_for("gbac_findusername_bp.findusername_bp",
                _external="True",
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
                email=email,
                message=message))
Ejemplo n.º 13
0
def gbac_create_update_saml_idp_page():
    logger.debug("gbac_create_update_saml_idp_page()")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])

    idp_id = request.args.get('idpId')
    idp_info = okta_admin.get_idp(idp_id)

    if 'id' in idp_info:
        cert_info = okta_admin.get_idp_certificate(
            idp_info['protocol']['credentials']['trust']['kid'])
        cert_display_data = IDPUtil.getCertificateDisplayValues(
            cert_info['x5c'][0])
        idp_info['cert_expiry'] = cert_display_data.not_valid_after
        idp_info['cert_issuer'] = cert_display_data.issuer.rfc4514_string()

    logger.debug("Retrieved IDP: {0}".format(idp_info))
    return render_template("/managesamlidp.html",
                           templatename=get_app_vertical(),
                           user_info=get_userinfo(),
                           idp_info=idp_info,
                           config=session[SESSION_INSTANCE_SETTINGS_KEY])
Ejemplo n.º 14
0
def enroll_question():
    print("enroll_question()")

    body = request.get_json()
    factor_type = body["factor_type"]
    provider = body["provider"]
    question = body["question"]
    answer = body["answer"]

    if "state_token" in body:
        okta_auth = OktaAuth(session)
        state_token = body["state_token"]
        response = okta_auth.enroll_question(state_token, factor_type,
                                             provider, question, answer)
    else:
        okta_admin = OktaAdmin(session)
        user_id = body["user_id"]
        response = okta_admin.enroll_question(user_id, factor_type, provider,
                                              question, answer)

    return json.dumps(response)
Ejemplo n.º 15
0
def healthcare_schedule():
    logger.debug("healthcare_schedule")
    user_info = get_userinfo()
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user = okta_admin.get_user(user_info["sub"])
    dob = ""
    gender = ""
    if get_udp_ns_fieldname("dob") in user["profile"]:
        dob = user["profile"][get_udp_ns_fieldname("dob")]
    if get_udp_ns_fieldname("gender") in user["profile"]:
        gender = user["profile"][get_udp_ns_fieldname("gender")]

    return render_template(
        "healthcare/schedule.html",
        id_token=TokenUtil.get_id_token(request.cookies),
        access_token=TokenUtil.get_access_token(request.cookies),
        user_info=get_userinfo(),
        user_info2=user,
        config=session[SESSION_INSTANCE_SETTINGS_KEY],
        dob=dob,
        gender=gender)
Ejemplo n.º 16
0
def gbac_linkedobjects():
    logger.debug("gbac_linkedobjects()")
    user_info = get_userinfo()
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])

    try:
        schemas = okta_admin.get_user_schemas()
    except Exception:
        schemas = ""

    nfamily = ""
    logger.debug(schemas)
    if schemas:
        family = "["
        for schema in schemas:
            family = family + "{" + \
                "\"pname\":\"" + schema['primary']['name'] + "\"," + \
                "\"ptitle\":\"" + schema['primary']['title'] + "\"," + \
                "\"aname\":\"" + schema['associated']['name'] + "\"," + \
                "\"atitle\":\"" + schema['associated']['title'] + "\"," + \
                "\"users\": [ "

            users = okta_admin.get_linked_users(user_info['sub'],
                                                schema['associated']['name'])

            for user in users:
                userid = user['_links']['self']['href'].rsplit('/', 1)[-1]
                associateduser = okta_admin.get_user(userid)
                family = family + json.dumps(associateduser) + ","

            family = family[:-1] + "]},"

        family = family[:-1] + "]"
        nfamily = json.loads(family)

    return render_template("/managelinkedobjects.html",
                           templatename=get_app_vertical(),
                           user_info=get_userinfo(),
                           config=session[SESSION_INSTANCE_SETTINGS_KEY],
                           nfamily=nfamily)
Ejemplo n.º 17
0
def signupcreateuser():
    print("Signup Create User()")

    okta_admin = OktaAdmin(default_settings)
    first_name = request.form.get('firstname')
    last_name = request.form.get('lastname')
    email = request.form.get('email')
    login = request.form.get('login')
    mobile_phone = request.form.get('phonenumber')
    password = request.form.get('password')
    group_name =  request.form.get('groupname')

    if not login:
        login = email

    user_data = {
            "profile": {
                "firstName": first_name,
                "lastName": last_name,
                "email": email,
                "login": login,
                "mobilePhone": mobile_phone,
                "travelAgencyGroup": group_name
            },
             "credentials": {
                "password" : { "value": password }
              }
        }

    user_create_response = okta_admin.create_user(user_data)
    if "errorCode" in user_create_response:
        print(user_create_response)
        message = "<p>Error During Registration</p>" + user_create_response['errorCauses'][0]['errorSummary']
        return redirect(url_for("signup", _external="True", _scheme="https",message=message))
    else:
        print(user_create_response)
        print("User " + first_name + " "+  last_name + " was Created")
        return redirect(url_for("login", _external="True", _scheme="https"))

    return redirect(url_for("signup", _external="True", _scheme="https",message=message))
Ejemplo n.º 18
0
def gbac_registration_completion():
    logger.debug("gbac_registration_completion()")

    user_data = {
        "profile": {
            "firstName": request.form.get('firstname'),
            "lastName": request.form.get('lastname'),
            "email": request.form.get('email'),
            "login": request.form.get('email'),
            "primaryPhone": request.form.get('phone'),
            "mobilePhone": request.form.get('phone')
        }
    }
    logger.debug(user_data)
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_create_response = okta_admin.create_user(user=user_data,
                                                  activate_user='******')
    logger.debug(user_create_response)

    activation_link = ""
    if request.form.get('noemail').lower() == 'true':
        logger.debug("no email will be sent")
        activation_link = url_for(
            "gbac_registration_bp.gbac_registration_state_get",
            stateToken=user_create_response["id"],
            _external=True,
            _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"])
    else:
        logger.debug("email sent")
        emailRegistration(recipient={"address": request.form.get('email')},
                          token=user_create_response["id"])

    return render_template(
        "/registration-completion.html",
        email=request.form.get('email'),
        activationlink=activation_link,
        noemail=request.form.get('noemail').lower(),
        templatename=get_app_vertical(),
        config=session[SESSION_INSTANCE_SETTINGS_KEY],
        _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"])
Ejemplo n.º 19
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"])
Ejemplo n.º 20
0
def gbac_registration_state_post(user_id):
    logger.debug("gbac_registration_state_post()")
    logger.debug(request.form.get('password'))
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_data = okta_admin.get_user(user_id)

    if "errorCode" in user_data:
        logger.error("user_data: {0}".format(user_data))
        return render_template("/registration-state.html",
                               userid=user_id,
                               templatename=get_app_vertical(),
                               config=session[SESSION_INSTANCE_SETTINGS_KEY],
                               error=user_data['errorSummary'])

    user_data["credentials"] = {
        "password": {
            "value": request.form.get('password')
        },
        "recovery_question": {
            "question": "Company Name, its Okta.",
            "answer": "Okta"
        }
    }

    logger.debug(user_data)
    user_update_response = okta_admin.update_user(user_id=user_data["id"],
                                                  user=user_data)

    logger.debug(user_update_response)

    if "errorCode" in user_update_response:
        return render_template(
            "/registration-state.html",
            userid=user_data["id"],
            templatename=get_app_vertical(),
            config=session[SESSION_INSTANCE_SETTINGS_KEY],
            error=user_update_response['errorCauses'][0]['errorSummary'])

    nresponse = okta_admin.activate_user(user_data["id"], send_email=False)
    logger.debug(nresponse)
    group_info = okta_admin.get_application_groups(
        session[SESSION_INSTANCE_SETTINGS_KEY]["client_id"])
    group_id = group_info[0]["id"]
    okta_admin.assign_user_to_group(group_id, user_data["id"])
    message = "Registration Complete! Please Login Now!"
    return redirect(
        url_for("gbac_bp.gbac_login",
                _external="True",
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
                message=message))
Ejemplo n.º 21
0
def ecommerce_clear_consent(userid):
    logger.debug("ecommerce_clear_consent")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])

    user_data = {"profile": {
        get_udp_ns_fieldname("consent"): "",
    }}

    user_update_response = okta_admin.update_user(userid, user_data)

    if "error" in user_update_response:
        message = "Error During Update: " + user_update_response
    else:
        message = ""

    return redirect(
        url_for(
            "ecommerce_views_bp.ecommerce_profile",
            _external="True",
            _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
            user_id=userid,
            message=message))
Ejemplo n.º 22
0
Archivo: view.py Proyecto: bhanchand/pp
def get_modal_options(okta_user_id):
    print("get_modal_options(okta_user_id)")
    # print("okta_user_id: {0}".format(okta_user_id))
    okta_admin = OktaAdmin(session)
    user = okta_admin.get_user(okta_user_id)
    # print("user: {0}".format(json.dumps(user, indent=4, sort_keys=True)))
    curent_application = okta_admin.get_user_application_by_current_client_id(
        okta_user_id)
    # print("curent_application: {0}".format(json.dumps(curent_application, indent=4, sort_keys=True)))
    # print("user: {0}".format(json.dumps(user, indent=4, sort_keys=True)))
    #  Apply Rules based on user and app combo

    modal_options = {
        "showConsent":
        show_user_consent(curent_application),
        "showRegistrationDefault":
        show_user_reg_form_default(user, curent_application),
        "showRegistrationAlt1":
        show_user_reg_form_alt1(user, curent_application)
    }

    return modal_options
Ejemplo n.º 23
0
def ecommerce_order_post():
    logger.debug("ecommerce_order_post()")
    user_info = get_userinfo()
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])

    logger.debug(request)
    firstname = request.form.get("firstName")
    lastname = request.form.get("lastName")
    email = request.form.get("email")
    streetAddress = request.form.get("address")
    city = request.form.get("city")
    state = request.form.get("state")
    zipCode = request.form.get("zip")
    countryCode = request.form.get("country")

    user_data = {
        "profile": {
            "firstName": firstname,
            "lastName": lastname,
            "email": email,
            "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)

    # /ecommerce/order?message=Order Complete
    # return render_template("ecommerce/order.html", user=user, user_info=get_userinfo(), config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme="https")
    return redirect(
        url_for(
            "ecommerce_views_bp.ecommerce_order",
            _external="True",
            _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
            message="Order Complete"))
Ejemplo n.º 24
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
Ejemplo n.º 25
0
def verify_dob():
    print("verify_dob()")
    json_data = request.get_json()
    # print(json_data)

    verify_dob_response = {"success": False}

    okta_auth = OktaAuth(session)
    token_state = okta_auth.get_transaction_state(json_data["stateToken"])
    # print("token_state: {0}".format(json.dumps(token_state, indent=4, sort_keys=True)))

    if "errorSummary" in token_state:
        verify_dob_response["errorMessage"] = token_state["errorSummary"]
    else:
        okta_admin = OktaAdmin(session)
        user = okta_admin.get_user(token_state["_embedded"]["user"]["id"])
        app_user = okta_admin.get_user_application_by_current_client_id(
            user["id"])
        # print("user: {0}".format(json.dumps(user, indent=4, sort_keys=True)))
        # print("app_user: {0}".format(json.dumps(app_user, indent=4, sort_keys=True)))

        if "errorSummary" in user:
            verify_dob_response["errorMessage"] = user["errorSummary"]
            if "errorCauses" in user:
                verify_dob_response["errorMessages"] = []
                for error_cause in user["errorCauses"]:
                    verify_dob_response["errorMessages"].append(
                        {"errorMessage": user["errorSummary"]})
        else:
            if app_user["profile"]["dob"] == json_data["dob"]:
                verify_dob_response["user"] = user
                verify_dob_response["app_user"] = user
                verify_dob_response["success"] = True,
            else:
                verify_dob_response[
                    "errorMessage"] = "Your date of birth does not match our records"

    return json.dumps(verify_dob_response)
Ejemplo n.º 26
0
def gbac_createschemas():
    logger.debug("gbac_linkedobjects()")

    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    ptitle = request.form.get('primarytitle')
    pname = request.form.get('primaryfieldname')
    pdesc = request.form.get('primarydescription')
    atitle = request.form.get('associatedtitle')
    aname = request.form.get('associatedfieldname')
    adesc = request.form.get('associateddescription')

    try:
        okta_admin.create_schema(pname.lower(), ptitle, pdesc, aname.lower(),
                                 atitle, adesc)
        message = "Schema Created"
    except Exception:
        message = "Cannot Create Schemas. Please contact your adminstrator."

    return redirect(
        url_for("gbac_lo_bp.gbac_schemas",
                _external=True,
                _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"],
                message=message))
Ejemplo n.º 27
0
def accept_consent():
    print("accept_consent()")
    concent_accept_response = {"success": False}

    id_token = request.cookies.get("id_token")
    okta_admin = OktaAdmin(session)

    user_id = get_claims_from_token(id_token)["sub"]
    app = okta_admin.get_user_application_by_current_client_id(user_id)
    app_id = session["client_id"]

    app["profile"]["userConsentDate"] = datetime.today().strftime('%Y-%m-%d')
    app["profile"]["userConsentToS"] = "1.0"

    update_response = okta_admin.update_application_user_profile(user_id, app)

    if "errorSummary" in update_response:
        concent_accept_response["errorMessage"] = update_response[
            "errorSummary"]
    else:
        concent_accept_response["success"] = True

    return json.dumps(concent_accept_response)
Ejemplo n.º 28
0
def gbac_users():
    logger.debug("gbac_users()")
    user_info = get_userinfo()
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    group_id = request.args.get('group_id')

    if group_id:
        selectedgroup_id = group_id
        user_group = okta_admin.get_group(selectedgroup_id)
    else:
        user_group = gbac_get_group_by_name("everyone")
        selectedgroup_id = user_group["id"]

    group_user_list = okta_admin.get_user_list_by_group_id(selectedgroup_id)
    group_list = okta_admin.get_user_groups(user_info["sub"])

    return render_template("/manageusers.html",
                           templatename=get_app_vertical(),
                           user_info=get_userinfo(),
                           userlist=group_user_list,
                           config=session[SESSION_INSTANCE_SETTINGS_KEY],
                           group_list=group_list,
                           user_group=user_group)
Ejemplo n.º 29
0
def ecommerce_user_update():
    logger.debug("ecommerce_user_update")
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_id = request.form.get('user_id')
    logging.debug(request.form.to_dict())

    first_name = safe_get_dict(request.form, 'firstname')
    last_name = safe_get_dict(request.form, 'lastname')
    email = safe_get_dict(request.form, 'email')
    mobile_phone = safe_get_dict(request.form, 'mobilePhone')
    consent = safe_get_dict(request.form, 'nconsent')

    user_data = {
        "profile": {
            "firstName": first_name,
            "lastName": last_name,
            "email": email,
            "mobilePhone": mobile_phone,
            get_udp_ns_fieldname("consent"): consent,
        }
    }

    logging.debug(user_data)
    user_update_response = okta_admin.update_user(user_id, user_data)
    logging.debug(user_update_response)

    if "error" in user_update_response:
        message = "Error During Update: " + user_update_response
    else:
        message = "User Updated!"

    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))
Ejemplo n.º 30
0
def admincreateuser():
    print("Admin Create User()")

    okta_admin = OktaAdmin(default_settings)
    first_name = request.form.get('firstname')
    last_name = request.form.get('lastname')
    email = request.form.get('email')
    login = request.form.get('login')
    mobile_phone = request.form.get('phonenumber')

    if not login:
        login = email

    #  Group and find a Travel Agency
    token = oidc.get_access_token()
    group_name = TokenUtil.get_single_claim_from_token(token,"tagrp")


    user_data = {
                "profile": {
                    "firstName": first_name,
                    "lastName": last_name,
                    "email": email,
                    "login": login,
                    "mobilePhone": mobile_phone,
                    "travelAgencyGroup": group_name
                }
            }

    user_create_response = okta_admin.create_user(user_data)
    if user_create_response:
        message = "User " + first_name + " "+  last_name+ " was Created"
    else:
        message = "Error During Create"


    return redirect(url_for("users", _external="True", _scheme="https",message=message))