protected function UserFieldsEventSubscriber::isInputValueEqual in SAML Authentication 4.x
Same name and namespace in other branches
- 8.3 modules/samlauth_user_fields/src/EventSubscriber/UserFieldsEventSubscriber.php \Drupal\samlauth_user_fields\EventSubscriber\UserFieldsEventSubscriber::isInputValueEqual()
Checks if an input value is equal to a user account field value.
This is abstracted into a separate method because the definition of "equals" is not fully clear / so it's easier to override if necessary. (It would be great if we could just do $input_value != $field_value but that implies trust that the attribute data is properly 'typed' and does not contain meaningless values.)
Parameters
mixed $input_value: The input value.
mixed $field_value: The value in a user account field.
string $account_field_name: The field name in the user account.
Return value
bool Indicates whether the values are considered equal.
3 calls to UserFieldsEventSubscriber::isInputValueEqual()
- UserFieldsEventSubscriber::getUpdatableAttributeValue in modules/
samlauth_user_fields/ src/ EventSubscriber/ UserFieldsEventSubscriber.php - Returns 'updatable' value from a SAML attribute; logs anything strange.
- UserFieldsEventSubscriber::isInputValueUpdatable in modules/
samlauth_user_fields/ src/ EventSubscriber/ UserFieldsEventSubscriber.php - Checks if a value should be updated into an existing user account field.
- UserFieldsEventSubscriber::onUserSync in modules/
samlauth_user_fields/ src/ EventSubscriber/ UserFieldsEventSubscriber.php - Saves configured SAML attribute values into user fields.
File
- modules/
samlauth_user_fields/ src/ EventSubscriber/ UserFieldsEventSubscriber.php, line 428
Class
- UserFieldsEventSubscriber
- Synchronizes SAML attributes into user fields / links new users during login.
Namespace
Drupal\samlauth_user_fields\EventSubscriberCode
protected function isInputValueEqual($input_value, $field_value, $account_field_name = '') {
// This represents what is most likely for values from an unknown source:
// - string values are equal to their numeric equivalent.
// - NULL is equal to '', because our default assumption is that an empty
// string means "no value" rather than "an empty value".
// - 0/"0"/0.00 are equal, but not equal to ''/NULL and not equal to "00"
// or "0x".
return (is_scalar($input_value) || $input_value === NULL) && (is_scalar($field_value) || $field_value === NULL) ? (string) $input_value === (string) $field_value : $input_value === $field_value;
}