Exemple #1
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))
Exemple #2
0
def dealer_registration_state_get(stateToken):
    logger.debug("dealer_registration_state_get()")
    user_id = stateToken
    okta_admin = OktaAdmin(session[SESSION_INSTANCE_SETTINGS_KEY])
    user_activate_response = okta_admin.activate_user(user_id, send_email=False)
    if "errorCode" in user_activate_response:
        return render_template(
            "{0}/registration-state.html".format(get_app_vertical()),
            templatename=get_app_vertical(), config=session[SESSION_INSTANCE_SETTINGS_KEY],
            error=user_activate_response)

    return render_template(
        "{0}/registration-state.html".format(get_app_vertical()),
        templatename=get_app_vertical(),
        config=session[SESSION_INSTANCE_SETTINGS_KEY], _scheme=session[SESSION_INSTANCE_SETTINGS_KEY]["app_scheme"])
Exemple #3
0
def activate(user_id, okta_session_id):
    print("activate(user_id, okta_session_id)")

    activation_response = {}
    auth_response = make_response(redirect("/"))

    okta_admin = OktaAdmin(session)

    user = okta_admin.get_user(user_id)

    if user:
        activation_response = okta_admin.activate_user(user_id,
                                                       send_email=False)
        print("activation_response: {0}".format(
            json.dumps(activation_response, indent=4, sort_keys=True)))

    if "okta_session_id":
        print("Clearing exsisting session")
        clear_session_response = okta_admin.close_session(okta_session_id)
        print("clear_session_response: {0}".format(
            json.dumps(clear_session_response, indent=4, sort_keys=True)))

    if "activationToken" in activation_response:
        okta_auth = OktaAuth(session)
        auth_response = okta_auth.authenticate_with_activation_token(
            activation_response["activationToken"])
        # print("auth_response: {0}".format(json.dumps(auth_response, indent=4, sort_keys=True)))
        if "sessionToken" in auth_response:
            auth_response = login_token(auth_response["sessionToken"])
            # status = MFA_ENROLL
            # status = PASSWORD_RESET
        elif "stateToken" in auth_response:
            if "MFA_ENROLL" == auth_response["status"]:
                auth_response = make_response(
                    redirect("/?stateToken={0}&showMFAEnroll=true".format(
                        auth_response["stateToken"])))
            elif "PASSWORD_RESET" == auth_response["status"]:
                auth_response = make_response(
                    redirect("/?stateToken={0}&showBDV=true".format(
                        auth_response["stateToken"])))
            else:
                auth_response = make_response(
                    redirect("/?stateToken={0}".format(
                        auth_response["stateToken"])))

    return auth_response