diff options
author | Christian Grothoff <christian@grothoff.org> | 2020-08-05 14:42:25 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2020-08-05 14:42:25 +0200 |
commit | 9a4259c0fc83d690dfc1dbb4840feeae6d4288fd (patch) | |
tree | b57944fd700e26f82d5e2216907f2cbea217e864 | |
parent | ab73d4320c79633c4015232a8d8f0b27c405b968 (diff) | |
download | woocommerce-taler-9a4259c0fc83d690dfc1dbb4840feeae6d4288fd.tar.gz woocommerce-taler-9a4259c0fc83d690dfc1dbb4840feeae6d4288fd.tar.bz2 woocommerce-taler-9a4259c0fc83d690dfc1dbb4840feeae6d4288fd.zip |
adjust settings
-rw-r--r-- | plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php | 26 | ||||
-rw-r--r-- | reclaim-notes.txt | 13 | ||||
-rwxr-xr-x[-rw-r--r--] | server-build/QEMU-autobuild/buildReclaim.sh | 13 |
3 files changed, 42 insertions, 10 deletions
diff --git a/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php b/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php index 6e2d9a9..9143f37 100644 --- a/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php +++ b/plugin/GNU-Taler-Payment-Gateway/class-wc-gnutaler-gateway.php @@ -207,6 +207,32 @@ function gnutaler_init_gateway_class() // This action hook saves the settings add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) ); + + + // Modify OIDC connect button text for Reclaim:ID + // (Note: this probably doesn't belong here!) + add_filter('openid-connect-generic-login-button-text', function( $text ) { + $text = __('Login with Re:ClaimID'); + return $text; + }); + + // make sure OIDC 'login' goes to WooCommerce + // (Note: this probably doesn't belong here, but maybe into the + // OIDC button hook for WC!?) + + add_action('openid-connect-generic-redirect-user-back', + function( $redirect_url, $user ) { + // Take over the redirection complete. Send users somewhere special based on their capabilities. + global $woocommerce; + // FIXME: check if WC is actually running first? + $checkout_url = $woocommerce->cart->wc_get_checkout_url (); + wp_redirect( $checkout_url); // or admin_url( $checkout_url) )?; + exit(); + } + }, 10, 2); + $user = wp_get_current_user (); + $token_response = $user->get('openid-connect-generic-last-token-response'); + } diff --git a/reclaim-notes.txt b/reclaim-notes.txt index 7df9c0a..ee54f09 100644 --- a/reclaim-notes.txt +++ b/reclaim-notes.txt @@ -149,3 +149,16 @@ add_filter('openid-connect-generic-login-button-text', function( $text ) { * `openid-connect-generic-last-id-token-claim` - The user's most recent `id_token` claim, decoded and stored as an array. => here is the data we want from the user (to put into the woocommerce form) + + + + + +Required fields in billing form: +NOTE: if 'email' is available, it is already used, seems I may not even need the hook! + + +{"billing":{"billing_first_name":{"label":"First name","required":true,"class":["form-row-first"],"autocomplete":"given-name","priority":10},"billing_last_name":{"label":"Last name","required":true,"class":["form-row-last"],"autocomplete":"family-name","priority":20},"billing_company":{"label":"Company name","class":["form-row-wide"],"autocomplete":"organization","priority":30,"required":false},"billing_country":{"type":"country","label":"Country \/ Region","required":true,"class":["form-row-wide","address-field","update_totals_on_change"],"autocomplete":"country","priority":40},"billing_address_1":{"label":"Street address","placeholder":"House number and street name","required":true,"class":["form-row-wide","address-field"],"autocomplete":"address-line1","priority":50},"billing_address_2":{"placeholder":"Apartment, suite, unit, etc. (optional)","class":["form-row-wide","address-field"],"autocomplete":"address-line2","priority":60,"required":false},"billing_city":{"label":"Town \/ City","required":true,"class":["form-row-wide","address-field"],"autocomplete":"address-level2","priority":70},"billing_state":{"type":"state","label":"State \/ County","required":false,"class":["form-row-wide","address-field"],"validate":["state"],"autocomplete":"address-level1","priority":80,"country_field":"billing_country","country":"AF"},"billing_postcode":{"label":"Postcode \/ ZIP","required":true,"class":["form-row-wide","address-field"],"validate":["postcode"],"autocomplete":"postal-code","priority":90},"billing_phone":{"label":"Phone","required":true,"type":"tel","class":["form-row-wide"],"validate":["phone"],"autocomplete":"tel","priority":100},"billing_email":{"label":"Email address","required":true,"type":"email","class":["form-row-wide"],"validate":["email"],"autocomplete":"email","priority":110}},"shipping":{"shipping_first_name":{"label":"First name","required":true,"class":["form-row-first"],"autocomplete":"given-name","priority":10},"shipping_last_name":{"label":"Last name","required":true,"class":["form-row-last"],"autocomplete":"family-name","priority":20},"shipping_company":{"label":"Company name","class":["form-row-wide"],"autocomplete":"organization","priority":30,"required":false},"shipping_country":{"type":"country","label":"Country \/ Region","required":true,"class":["form-row-wide","address-field","update_totals_on_change"],"autocomplete":"country","priority":40},"shipping_address_1":{"label":"Street address","placeholder":"House number and street name","required":true,"class":["form-row-wide","address-field"],"autocomplete":"address-line1","priority":50},"shipping_address_2":{"placeholder":"Apartment, suite, unit, etc. (optional)","class":["form-row-wide","address-field"],"autocomplete":"address-line2","priority":60,"required":false},"shipping_city":{"label":"Town \/ City","required":true,"class":["form-row-wide","address-field"],"autocomplete":"address-level2","priority":70},"shipping_state":{"type":"state","label":"State \/ County","required":false,"class":["form-row-wide","address-field"],"validate":["state"],"autocomplete":"address-level1","priority":80,"country_field":"shipping_country","country":"AF"},"shipping_postcode":{"label":"Postcode \/ ZIP","required":true,"class":["form-row-wide","address-field"],"validate":["postcode"],"autocomplete":"postal-code","priority":90}},"account":{"account_username":{"type":"text","label":"Account username","required":true,"placeholder":"Username"},"account_password":{"type":"password","label":"Create account password","required":true,"placeholder":"Password"}},"order":{"order_comments":{"type":"textarea","class":["notes"],"label":"Order notes","placeholder":"Notes about your order, e.g. special notes for delivery."}}} + +=> new scope: +openid profile email full_name given-name family-name organization country address-line1 address-line2 address-level2 address-level1 postal-code tel diff --git a/server-build/QEMU-autobuild/buildReclaim.sh b/server-build/QEMU-autobuild/buildReclaim.sh index 625d899..82a879f 100644..100755 --- a/server-build/QEMU-autobuild/buildReclaim.sh +++ b/server-build/QEMU-autobuild/buildReclaim.sh @@ -13,7 +13,7 @@ SHOP_NAME="WooTaler Shop" SHOP_ZONE=wootaler-shop # Which attributes does WooCommerce want from the IdP? -OIDC_SCOPE="openid profile email full_name" +OIDC_SCOPE="openid given_name family_name email address phone" # URL where GNUnet REST service is listening for requests GNUNET_REST="http://localhost:7776/openid/" @@ -50,14 +50,7 @@ sudo -u www-data wp --user=admin option patch update openid_connect_generic_sett sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings endpoint_end_session "" sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings identity_key "sub" sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings no_sslverify "1" -sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings nickname_key "full_name" -sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings displayname_format "{full_name}" +sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings nickname_key "sub" +sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings displayname_format "{given_name} {full_name}" sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings identify_with_username "1" sudo -u www-data wp --user=admin option patch update openid_connect_generic_settings enable_logging "1" - - -sudo -u www-data wp --user=admin option -openid_connect_generic_settings -a:24:{s:10:"login_type";s:6:"button";s:9:"client_id";s:52:"50BMJB6S9MV22BTG541G6XPQVNT7BNT7DZ3ZCCEZXFZPKV3915N0";s:13:"client_secret";s:6:"secret";s:5:"scope";s:30:"openid -profile email -full_name";s:14:"endpoint_login";s:36:"https://api.reclaim/openid/authorize";s:17:"endpoint_userinfo";s:43:"http://localhost:7776/openid/token/userinfo";s:14:"endpoint_token";s:34:"http://localhost:7776/openid/token";s:20:"endpoint_end_session";s:33:"https://example.com/oauth2/logout";s:12:"identity_key";s:3:"sub";s:12:"no_sslverify";s:1:"1";s:20:"http_request_timeout";s:1:"5";s:15:"enforce_privacy";s:1:"0";s:22:"alternate_redirect_uri";s:1:"0";s:12:"nickname_key";s:9:"full_name";s:12:"email_format";s:7:"{email}";s:18:"displayname_format";s:11:"{full_name}";s:22:"identify_with_username";s:1:"1";s:16:"state_time_limit";s:0:"";s:19:"link_existing_users";s:1:"0";s:24:"create_if_does_not_exist";s:1:"1";s:18:"redirect_user_back";s:1:"0";s:18:"redirect_on_logout";s:1:"1";s:14:"enable_logging";s:1:"1";s:9:"log_limit";s:4:"1000";} |