You are here

protected function UserFieldsEventSubscriber::isInputValueEqual in SAML Authentication 4.x

Same name and namespace in other branches
  1. 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\EventSubscriber

Code

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;
}