org.keycloak.storage.ldap

## Class LDAPWritesOnlyUserModelDelegate

- java.lang.Object
- - org.keycloak.models.utils.UserModelDelegate
  - - org.keycloak.storage.ldap.LDAPWritesOnlyUserModelDelegate

- All Implemented Interfaces:
    RoleMapperModel, RoleMapperModel.Streams, UserModel, UserModel.Streams

      public class LDAPWritesOnlyUserModelDelegate
      extends UserModelDelegate

  User model delegate, which tracks what attributes were written to LDAP in this transaction. For those attributes, it will skip calling delegate for doing any additional updates. It may be typically used together with Read-Only delegate. The result is that read-only exception will be thrown when attempt to update any user attribute, which is NOT mapped to LDAP.
  Author:
    Marek Posolda

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.keycloak.models.UserModel

      `UserModel.RequiredAction, UserModel.Streams, UserModel.UserRemovedEvent`

  - ### Field Summary

    - ### Fields inherited from class org.keycloak.models.utils.UserModelDelegate

      `delegate`

    - ### Fields inherited from interface org.keycloak.models.UserModel

      `COMPARE_BY_USERNAME, EMAIL, EMAIL_VERIFIED, ENABLED, EXACT, FIRST_NAME, GROUPS, IDP_ALIAS, IDP_USER_ID, INCLUDE_SERVICE_ACCOUNT, LAST_NAME, LOCALE, SEARCH, USERNAME`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LDAPWritesOnlyUserModelDelegate(UserModel delegate, LDAPStorageProvider provider)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addRequiredAction(String action)`
    `void` | `addRequiredAction(UserModel.RequiredAction action)`
    `protected boolean` | `isAttributeUpdatedInLDAP(String attributeName)`
    `protected boolean` | `isRequiredActionUpdatedInLDAP(String requiredActionName)`
    `void` | `removeAttribute(String name)`
    `void` | `removeRequiredAction(String action)`
    `void` | `removeRequiredAction(UserModel.RequiredAction action)`
    `void` | `setAttribute(String name, List<String> values)`
    `void` | `setEmail(String email)` Sets email for this user.
    `void` | `setEmailVerified(boolean verified)`
    `void` | `setEnabled(boolean enabled)`
    `void` | `setFirstName(String firstName)`
    `void` | `setLastName(String lastName)`
    `void` | `setSingleAttribute(String name, String value)` Set single value of specified attribute.
    `void` | `setUsername(String username)` Sets username for this user.

    - ### Methods inherited from class org.keycloak.models.utils.UserModelDelegate

      `deleteRoleMapping, equals, getAttributes, getAttributeStream, getClientRoleMappingsStream, getCreatedTimestamp, getDelegate, getEmail, getFederationLink, getFirstAttribute, getFirstName, getGroupsStream, getId, getLastName, getRealmRoleMappingsStream, getRequiredActionsStream, getRoleMappingsStream, getServiceAccountClientLink, getUsername, grantRole, hashCode, hasRole, isEmailVerified, isEnabled, isMemberOf, joinGroup, leaveGroup, setCreatedTimestamp, setFederationLink, setServiceAccountClientLink`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.keycloak.models.UserModel.Streams

      `getAttribute, getGroups, getRequiredActions`

    - ### Methods inherited from interface org.keycloak.models.UserModel

      `getGroups, getGroups, getGroupsCount, getGroupsCountByNameContaining, getGroupsStream`

    - ### Methods inherited from interface org.keycloak.models.RoleMapperModel.Streams

      `getClientRoleMappings, getRealmRoleMappings, getRoleMappings`

- - ### Constructor Detail

    - #### LDAPWritesOnlyUserModelDelegate

          public LDAPWritesOnlyUserModelDelegate(UserModel delegate,
                                                 LDAPStorageProvider provider)

  - ### Method Detail

    - #### setUsername

          public void setUsername(String username)

      Description copied from interface: `UserModel`
      Sets username for this user. No default method here to allow Abstract subclasses where the username is provided in a different manner
      Specified by:
        `setUsername` in interface `UserModel`
      Overrides:
        `setUsername` in class `UserModelDelegate`
      Parameters:
        `username` - username string

    - #### setEnabled

          public void setEnabled(boolean enabled)

      Specified by:
        `setEnabled` in interface `UserModel`
      Overrides:
        `setEnabled` in class `UserModelDelegate`

    - #### setSingleAttribute

          public void setSingleAttribute(String name,
                                         String value)

      Description copied from interface: `UserModel`
      Set single value of specified attribute. Remove all other existing values of this attribute
      Specified by:
        `setSingleAttribute` in interface `UserModel`
      Overrides:
        `setSingleAttribute` in class `UserModelDelegate`

    - #### setAttribute

          public void setAttribute(String name,
                                   List<String> values)

      Specified by:
        `setAttribute` in interface `UserModel`
      Overrides:
        `setAttribute` in class `UserModelDelegate`

    - #### removeAttribute

          public void removeAttribute(String name)

      Specified by:
        `removeAttribute` in interface `UserModel`
      Overrides:
        `removeAttribute` in class `UserModelDelegate`

    - #### addRequiredAction

          public void addRequiredAction(String action)

      Specified by:
        `addRequiredAction` in interface `UserModel`
      Overrides:
        `addRequiredAction` in class `UserModelDelegate`

    - #### removeRequiredAction

          public void removeRequiredAction(String action)

      Specified by:
        `removeRequiredAction` in interface `UserModel`
      Overrides:
        `removeRequiredAction` in class `UserModelDelegate`

    - #### addRequiredAction

          public void addRequiredAction(UserModel.RequiredAction action)

      Specified by:
        `addRequiredAction` in interface `UserModel`
      Overrides:
        `addRequiredAction` in class `UserModelDelegate`

    - #### removeRequiredAction

          public void removeRequiredAction(UserModel.RequiredAction action)

      Specified by:
        `removeRequiredAction` in interface `UserModel`
      Overrides:
        `removeRequiredAction` in class `UserModelDelegate`

    - #### setFirstName

          public void setFirstName(String firstName)

      Specified by:
        `setFirstName` in interface `UserModel`
      Overrides:
        `setFirstName` in class `UserModelDelegate`

    - #### setLastName

          public void setLastName(String lastName)

      Specified by:
        `setLastName` in interface `UserModel`
      Overrides:
        `setLastName` in class `UserModelDelegate`

    - #### setEmail

          public void setEmail(String email)

      Description copied from interface: `UserModel`
      Sets email for this user.
      Specified by:
        `setEmail` in interface `UserModel`
      Overrides:
        `setEmail` in class `UserModelDelegate`
      Parameters:
        `email` - the email

    - #### setEmailVerified

          public void setEmailVerified(boolean verified)

      Specified by:
        `setEmailVerified` in interface `UserModel`
      Overrides:
        `setEmailVerified` in class `UserModelDelegate`

    - #### isAttributeUpdatedInLDAP

          protected boolean isAttributeUpdatedInLDAP(String attributeName)

    - #### isRequiredActionUpdatedInLDAP

          protected boolean isRequiredActionUpdatedInLDAP(String requiredActionName)

Copyright © 2021 JBoss by Red Hat. All rights reserved.