summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-08-05 14:42:25 +0200
committerChristian Grothoff <christian@grothoff.org>2020-08-05 14:42:25 +0200
commit9a4259c0fc83d690dfc1dbb4840feeae6d4288fd (patch)
treeb57944fd700e26f82d5e2216907f2cbea217e864
parentab73d4320c79633c4015232a8d8f0b27c405b968 (diff)
downloadwoocommerce-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.php26
-rw-r--r--reclaim-notes.txt13
-rwxr-xr-x[-rw-r--r--]server-build/QEMU-autobuild/buildReclaim.sh13
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";}