Changeset 3094861
- Timestamp:
- 05/29/2024 11:34:58 PM (22 months ago)
- Location:
- ider-login
- Files:
-
- 106 added
- 9 edited
-
tags/2.1 (added)
-
tags/2.1/LICENSE.md (added)
-
tags/2.1/assets (added)
-
tags/2.1/assets/css (added)
-
tags/2.1/assets/css/admin.css (added)
-
tags/2.1/assets/css/general.css (added)
-
tags/2.1/assets/images (added)
-
tags/2.1/assets/images/ider_logo_white_128.png (added)
-
tags/2.1/assets/images/ider_logo_white_32.png (added)
-
tags/2.1/assets/images/ider_logo_white_old_128.png (added)
-
tags/2.1/assets/images/ider_logo_white_old_32.png (added)
-
tags/2.1/assets/images/logo_ider.png (added)
-
tags/2.1/assets/images/logo_ider_big.png (added)
-
tags/2.1/assets/js (added)
-
tags/2.1/assets/js/admin.js (added)
-
tags/2.1/composer.json (added)
-
tags/2.1/composer.lock (added)
-
tags/2.1/includes (added)
-
tags/2.1/includes/IDER_Admin.php (added)
-
tags/2.1/includes/IDER_Callback.php (added)
-
tags/2.1/includes/IDER_Helpers.php (added)
-
tags/2.1/includes/IDER_Rewrites.php (added)
-
tags/2.1/includes/IDER_Server.php (added)
-
tags/2.1/includes/IDER_Shortcodes.php (added)
-
tags/2.1/includes/IDER_UserInfoManager.php (added)
-
tags/2.1/includes/IDER_Widget.php (added)
-
tags/2.1/includes/IDER_WooPage.php (added)
-
tags/2.1/log (added)
-
tags/2.1/log/index.php (added)
-
tags/2.1/readme.md (added)
-
tags/2.1/vendor (added)
-
tags/2.1/vendor/autoload.php (added)
-
tags/2.1/vendor/bin (added)
-
tags/2.1/vendor/composer (added)
-
tags/2.1/vendor/composer/ClassLoader.php (added)
-
tags/2.1/vendor/composer/InstalledVersions.php (added)
-
tags/2.1/vendor/composer/LICENSE (added)
-
tags/2.1/vendor/composer/autoload_classmap.php (added)
-
tags/2.1/vendor/composer/autoload_files.php (added)
-
tags/2.1/vendor/composer/autoload_namespaces.php (added)
-
tags/2.1/vendor/composer/autoload_psr4.php (added)
-
tags/2.1/vendor/composer/autoload_real.php (added)
-
tags/2.1/vendor/composer/autoload_static.php (added)
-
tags/2.1/vendor/composer/installed.json (added)
-
tags/2.1/vendor/composer/installed.php (added)
-
tags/2.1/vendor/composer/platform_check.php (added)
-
tags/2.1/vendor/jlmsrl (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/.gitignore (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/LICENSE.md (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/README.md (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/composer.json (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/composer.lock (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/example.php (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/log (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/log/logdir.txt (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/src (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/src/IDERHelpers.php (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/src/IDEROpenIDClient.php (added)
-
tags/2.1/vendor/jlmsrl/ider-openid-client-php/src/OpenIDConnectClientException.php (added)
-
tags/2.1/vendor/phpseclib (added)
-
tags/2.1/vendor/phpseclib/phpseclib (added)
-
tags/2.1/vendor/phpseclib/phpseclib/AUTHORS (added)
-
tags/2.1/vendor/phpseclib/phpseclib/BACKERS.md (added)
-
tags/2.1/vendor/phpseclib/phpseclib/LICENSE (added)
-
tags/2.1/vendor/phpseclib/phpseclib/README.md (added)
-
tags/2.1/vendor/phpseclib/phpseclib/appveyor.yml (added)
-
tags/2.1/vendor/phpseclib/phpseclib/composer.json (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/AES.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/DES.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC2.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/RC4.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/RSA.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/Random.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/File (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/File/ANSI.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/File/ASN1 (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/File/X509.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Math (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net/SCP.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net/SSH1.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/System (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/System/SSH (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php (added)
-
tags/2.1/vendor/phpseclib/phpseclib/phpseclib/openssl.cnf (added)
-
tags/2.1/wp-ider-login-client.php (added)
-
trunk/composer.lock (modified) (2 diffs)
-
trunk/includes/IDER_Helpers.php (modified) (1 diff)
-
trunk/includes/IDER_UserInfoManager.php (modified) (3 diffs)
-
trunk/readme.md (modified) (1 diff)
-
trunk/vendor/bin (added)
-
trunk/vendor/composer/installed.json (modified) (3 diffs)
-
trunk/vendor/composer/installed.php (modified) (3 diffs)
-
trunk/vendor/jlmsrl/ider-openid-client-php/composer.json (modified) (1 diff)
-
trunk/vendor/jlmsrl/ider-openid-client-php/src/IDERHelpers.php (modified) (1 diff)
-
trunk/wp-ider-login-client.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
ider-login/trunk/composer.lock
r3092775 r3094861 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " dfb71de64d041af8650a961adc2497f6",7 "content-hash": "5805eb0b1c391a5c0754fc62eae66df2", 8 8 "packages": [ 9 9 { 10 10 "name": "jlmsrl/ider-openid-client-php", 11 "version": "1.1. 3",11 "version": "1.1.4", 12 12 "source": { 13 13 "type": "git", 14 "url": "https://github.com/iD UCKsrl/ider-openid-client-php.git",15 "reference": " 208b926e77c4ccc200da5acbd5e1bfc8bebc361b"14 "url": "https://github.com/iDuckSRL/ider-openid-client-php.git", 15 "reference": "a7c1603c1084b83f87cc0d94f5194621e4950f53" 16 16 }, 17 17 "dist": { 18 18 "type": "zip", 19 "url": "https://api.github.com/repos/iD UCKsrl/ider-openid-client-php/zipball/208b926e77c4ccc200da5acbd5e1bfc8bebc361b",20 "reference": " 208b926e77c4ccc200da5acbd5e1bfc8bebc361b",19 "url": "https://api.github.com/repos/iDuckSRL/ider-openid-client-php/zipball/a7c1603c1084b83f87cc0d94f5194621e4950f53", 20 "reference": "a7c1603c1084b83f87cc0d94f5194621e4950f53", 21 21 "shasum": "" 22 22 }, … … 46 46 "description": "IDER OpenID Generic Client for PHP", 47 47 "support": { 48 "issues": "https://github.com/iD UCKsrl/ider-openid-client-php/issues",49 "source": "https://github.com/iD UCKsrl/ider-openid-client-php/tree/v1.1.3"48 "issues": "https://github.com/iDuckSRL/ider-openid-client-php/issues", 49 "source": "https://github.com/iDuckSRL/ider-openid-client-php/tree/v1.1.4" 50 50 }, 51 "time": "2024-05- 12T03:59:48+00:00"51 "time": "2024-05-29T23:09:00+00:00" 52 52 }, 53 53 { -
ider-login/trunk/includes/IDER_Helpers.php
r3092775 r3094861 57 57 fclose($handle); 58 58 } 59 60 61 static function isJSON($string){62 return is_string($string) && is_array(json_decode($string, true)) && (json_last_error() == JSON_ERROR_NONE) ? true : false;63 }64 59 } -
ider-login/trunk/includes/IDER_UserInfoManager.php
r3092775 r3094861 1 1 <?php 2 3 use IDERConnect\IDERHelpers; 2 4 3 5 /** … … 10 12 * 11 13 */ 12 13 14 class IDER_UserInfoManager 14 15 { 15 16 17 16 static function normalize($user_info) 18 17 { 19 $user_info = (array)$user_info; 18 $user_info = IDERHelpers::toArray($user_info); 19 $user_info = IDERHelpers::remapFields($user_info); 20 20 21 21 // explode json packed claims 22 $user_info = self::_ checkJsonfields($user_info);22 $user_info = self::_flattenFields($user_info); 23 23 24 24 // remap openID fields into local fields 25 25 $user_info = self::_fieldsMap($user_info); 26 26 27 $user_info = (object) $user_info;27 $user_info = (object) $user_info; 28 28 29 29 return $user_info; 30 30 } 31 32 31 33 32 private static function _fieldsMap($userdata) … … 47 46 } 48 47 48 private static function _flattenFields($userdata) 49 { 50 $result = []; 49 51 50 private static function _checkJsonfields($userdata) 51 { 52 53 foreach ($userdata as $key => $claim) { 54 if (IDER_Helpers::isJSON($claim)) { 55 $subclaims = json_decode($claim); 56 57 // break down the claim 58 foreach ($subclaims as $subkey => $subclaim) { 59 $userdata[$key . '.' . $subkey] = $subclaim; 52 $flatten = function ($data, $parentKey = '') use (&$flatten, &$result) { 53 foreach ($data as $key => $value) { 54 $newKey = $parentKey === '' ? $key : $parentKey . '.' . $key; 55 if (is_array($value) || is_object($value)) { 56 $flatten((array)$value, $newKey); 57 } else { 58 $result[$newKey] = $value; 60 59 } 61 62 // delete the original claim63 unset($userdata[$key]);64 60 } 65 } 66 67 return $userdata; 61 }; 62 63 $flatten($userdata); 64 65 return $result; 68 66 } 69 70 71 67 } -
ider-login/trunk/readme.md
r3092775 r3094861 3 3 Requires at least: 4.6 4 4 Tested up to: 6.5.3 5 Stable tag: 2. 05 Stable tag: 2.1 6 6 License: Apache License, Version 2.0 or later 7 7 License URI: http://directory.fsf.org/wiki/License:Apache2.0 -
ider-login/trunk/vendor/composer/installed.json
r3092775 r3094861 3 3 { 4 4 "name": "jlmsrl/ider-openid-client-php", 5 "version": "1.1. 3",6 "version_normalized": "1.1. 3.0",5 "version": "1.1.4", 6 "version_normalized": "1.1.4.0", 7 7 "source": { 8 8 "type": "git", 9 "url": "https://github.com/iD UCKsrl/ider-openid-client-php.git",10 "reference": " 208b926e77c4ccc200da5acbd5e1bfc8bebc361b"9 "url": "https://github.com/iDuckSRL/ider-openid-client-php.git", 10 "reference": "a7c1603c1084b83f87cc0d94f5194621e4950f53" 11 11 }, 12 12 "dist": { 13 13 "type": "zip", 14 "url": "https://api.github.com/repos/iD UCKsrl/ider-openid-client-php/zipball/208b926e77c4ccc200da5acbd5e1bfc8bebc361b",15 "reference": " 208b926e77c4ccc200da5acbd5e1bfc8bebc361b",14 "url": "https://api.github.com/repos/iDuckSRL/ider-openid-client-php/zipball/a7c1603c1084b83f87cc0d94f5194621e4950f53", 15 "reference": "a7c1603c1084b83f87cc0d94f5194621e4950f53", 16 16 "shasum": "" 17 17 }, … … 22 22 "phpseclib/phpseclib": "^2.0.47" 23 23 }, 24 "time": "2024-05- 12T03:59:48+00:00",24 "time": "2024-05-29T23:09:00+00:00", 25 25 "type": "library", 26 26 "installation-source": "dist", … … 43 43 "description": "IDER OpenID Generic Client for PHP", 44 44 "support": { 45 "issues": "https://github.com/iD UCKsrl/ider-openid-client-php/issues",46 "source": "https://github.com/iD UCKsrl/ider-openid-client-php/tree/v1.1.3"45 "issues": "https://github.com/iDuckSRL/ider-openid-client-php/issues", 46 "source": "https://github.com/iDuckSRL/ider-openid-client-php/tree/v1.1.4" 47 47 }, 48 48 "install-path": "../jlmsrl/ider-openid-client-php" -
ider-login/trunk/vendor/composer/installed.php
r3092775 r3094861 4 4 'pretty_version' => 'dev-master', 5 5 'version' => 'dev-master', 6 'reference' => ' 1351ab3c6721dcd1c9cdde602f92ba33e4d21de5',6 'reference' => 'bf4c8ef431ca828518887822c464fdfb835eb3c6', 7 7 'type' => 'project', 8 8 'install_path' => __DIR__ . '/../../', … … 14 14 'pretty_version' => 'dev-master', 15 15 'version' => 'dev-master', 16 'reference' => ' 1351ab3c6721dcd1c9cdde602f92ba33e4d21de5',16 'reference' => 'bf4c8ef431ca828518887822c464fdfb835eb3c6', 17 17 'type' => 'project', 18 18 'install_path' => __DIR__ . '/../../', … … 21 21 ), 22 22 'jlmsrl/ider-openid-client-php' => array( 23 'pretty_version' => '1.1. 3',24 'version' => '1.1. 3.0',25 'reference' => ' 208b926e77c4ccc200da5acbd5e1bfc8bebc361b',23 'pretty_version' => '1.1.4', 24 'version' => '1.1.4.0', 25 'reference' => 'a7c1603c1084b83f87cc0d94f5194621e4950f53', 26 26 'type' => 'library', 27 27 'install_path' => __DIR__ . '/../jlmsrl/ider-openid-client-php', -
ider-login/trunk/vendor/jlmsrl/ider-openid-client-php/composer.json
r3092775 r3094861 3 3 "description": "IDER OpenID Generic Client for PHP", 4 4 "type": "library", 5 "version": "1.1. 3",5 "version": "1.1.4", 6 6 "license": "Apache-2.0", 7 7 "authors": [ -
ider-login/trunk/vendor/jlmsrl/ider-openid-client-php/src/IDERHelpers.php
r3092775 r3094861 85 85 return strtr($base64url, '-_', '+/'); 86 86 } 87 88 /** 89 * Remap fields for user information. 90 * 91 * This function is called by every integration. It checks if the user information contains an address, 92 * and if the address is in the US, it maps the postal code to the corresponding state. 93 * 94 * @param array $userinfo The user information array containing address details. 95 * @return array The updated user information with the state mapped from the postal code if the address is in the US. 96 */ 97 static function remapFields($userinfo) 98 { 99 // this function will be called by every integration 100 if ( 101 key_exists('address', $userinfo) 102 ) { 103 104 // US remap 105 if ( 106 $userinfo['address'] && 107 key_exists('country', $userinfo['address']) && $userinfo['address']['country'] === 'US' && 108 key_exists('postal_code', $userinfo['address']) && $userinfo['address']['postal_code'] 109 ) { 110 $user_zip_code = intval($userinfo['address']['postal_code']); 111 112 $us_zip_ranges = [ 113 'AL' => [[35000, 36999]], 114 'AK' => [[99500, 99999]], 115 'AZ' => [[85000, 86999]], 116 'AR' => [[71600, 72999], [75502, 75502]], 117 'CA' => [[90000, 96199]], 118 'CO' => [[80000, 81699]], 119 'CT' => [[6000, 6999]], 120 'DE' => [[19700, 19999]], 121 'FL' => [[32000, 34999]], 122 'GA' => [[30000, 31999], [39800, 39999]], 123 'HI' => [[96700, 96999]], 124 'ID' => [[83200, 83999]], 125 'IL' => [[60000, 62999]], 126 'IN' => [[46000, 47999]], 127 'IA' => [[50000, 52999]], 128 'KS' => [[66000, 67999]], 129 'KY' => [[40000, 42999]], 130 'LA' => [[70000, 71599]], 131 'ME' => [[3900, 4999]], 132 'MD' => [[20600, 21999]], 133 'MA' => [[1000, 2799], [5500, 5599]], 134 'MI' => [[48000, 49999]], 135 'MN' => [[55000, 56999]], 136 'MS' => [[38600, 39999]], 137 'MO' => [[63000, 65999]], 138 'MT' => [[59000, 59999]], 139 'NE' => [[68000, 69999]], 140 'NV' => [[88900, 89999]], 141 'NH' => [[3000, 3899]], 142 'NJ' => [[7000, 8999]], 143 'NM' => [[87000, 88499]], 144 'NY' => [[10000, 14999]], 145 'NC' => [[27000, 28999]], 146 'ND' => [[58000, 58999]], 147 'OH' => [[43000, 45999]], 148 'OK' => [[73000, 74999]], 149 'OR' => [[97000, 97999]], 150 'PA' => [[15000, 19699]], 151 'RI' => [[2800, 2999]], 152 'SC' => [[29000, 29999]], 153 'SD' => [[57000, 57999]], 154 'TN' => [[37000, 38599]], 155 'TX' => [[75000, 79999], [88500, 88599]], 156 'UT' => [[84000, 84999]], 157 'VT' => [[5000, 5999]], 158 'VA' => [[20100, 20199], [22000, 24699]], 159 'WA' => [[98000, 99499]], 160 'WV' => [[24700, 26899]], 161 'WI' => [[53000, 54999]], 162 'WY' => [[82000, 83199]], 163 'DC' => [[20000, 20099]], 164 'AS' => [[96799, 96799]], 165 'GU' => [[96910, 96932]], 166 'MP' => [[96950, 96952]], 167 'PR' => [[600, 799], [900, 999]], 168 'VI' => [[800, 899]], 169 ]; 170 171 foreach ($us_zip_ranges as $us_state => $us_ranges) { 172 foreach ($us_ranges as $us_range) { 173 if ($user_zip_code >= $us_range[0] && $user_zip_code <= $us_range[1]) { 174 // improper, but it will do it 175 $userinfo['address']['state'] = $us_state; 176 } 177 } 178 } 179 } else { 180 if (key_exists('region', $userinfo['address'])) { 181 $userinfo['address']['state'] = $userinfo['address']['region']; 182 } 183 } 184 185 return $userinfo; 186 } 187 } 188 189 /** 190 * Convert object to array. 191 */ 192 static function toArray($data) 193 { 194 if (is_object($data)) { 195 $data = get_object_vars($data); 196 } 197 198 if (is_array($data)) { 199 foreach ($data as $key => $value) { 200 if (is_string($value) && self::isJSON($value)) { 201 $data[$key] = json_decode($value, true); 202 } else { 203 $data[$key] = self::toArray($value); 204 } 205 } 206 } 207 208 return $data; 209 } 210 211 /** 212 * Check if a string is a JSON. 213 */ 214 static function isJSON($string){ 215 return is_string($string) && is_array(json_decode($string, true)) && (json_last_error() == JSON_ERROR_NONE) ? true : false; 216 } 87 217 } -
ider-login/trunk/wp-ider-login-client.php
r3092775 r3094861 4 4 * Plugin Name: IDer Login 5 5 * Plugin URI: https://www.ider.com 6 * Version: 2. 06 * Version: 2.1 7 7 * Description: Provides Single Sign On via IDer Identity Server 8 8 * Author: iDuck SRL
Note: See TracChangeset
for help on using the changeset viewer.