aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php')
-rw-r--r--src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php b/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
index 6d4129e8..1c866f17 100644
--- a/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
+++ b/src/Wallabag/CoreBundle/GuzzleSiteAuthenticator/GrabySiteConfigBuilder.php
@@ -54,7 +54,7 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
54 'loginUri' => $config->login_uri ?: null, 54 'loginUri' => $config->login_uri ?: null,
55 'usernameField' => $config->login_username_field ?: null, 55 'usernameField' => $config->login_username_field ?: null,
56 'passwordField' => $config->login_password_field ?: null, 56 'passwordField' => $config->login_password_field ?: null,
57 'extraFields' => is_array($config->login_extra_fields) ? $config->login_extra_fields : [], 57 'extraFields' => $this->processExtraFields($config->login_extra_fields),
58 'notLoggedInXpath' => $config->not_logged_in_xpath ?: null, 58 'notLoggedInXpath' => $config->not_logged_in_xpath ?: null,
59 ]; 59 ];
60 60
@@ -65,4 +65,30 @@ class GrabySiteConfigBuilder implements SiteConfigBuilder
65 65
66 return new SiteConfig($parameters); 66 return new SiteConfig($parameters);
67 } 67 }
68
69 /**
70 * Processes login_extra_fields config, transforming an '=' separated array of strings
71 * into a key/value array.
72 *
73 * @param array|mixed $extraFieldsStrings
74 *
75 * @return array
76 */
77 protected function processExtraFields($extraFieldsStrings)
78 {
79 if (!is_array($extraFieldsStrings)) {
80 return [];
81 }
82
83 $extraFields = [];
84 foreach ($extraFieldsStrings as $extraField) {
85 if (strpos($extraField, '=') === false) {
86 continue;
87 }
88 list($fieldName, $fieldValue) = explode('=', $extraField, 2);
89 $extraFields[$fieldName] = $fieldValue;
90 }
91
92 return $extraFields;
93 }
68} 94}