Los adaptadores del IPSIS usan la interfaz de complemento para IReplaceUserHandler a fin de respaldar la operación de reemplazo de los usuarios.
La implementación de la interfaz es D2L.IM.IPSIS.Users.Handlers.IReplaceUserHandler.
La siguiente lista de configuración proporciona un punto de partida para cualquier implementación del IPSIS:
Plantilla: Usuario, IPSIS
- ReplaceUserReadIPSISHandler (Orden de clasificación = 10)
- ReplaceUserReadLMSHandler (Orden de clasificación = 20)
- ReplaceUserStatusDefaultActiveHandler (Orden de clasificación = 30)
- ReplaceUserRoleDefaultFirstRoleHandler (Orden de clasificación = 40)
- ReplaceUserValidateBaseHandler (Orden de clasificación = 50)
- ReplaceUserCreateLMSHandler (Orden de clasificación = 60)
- ReplaceUserCreateIPSISHandler (Orden de clasificación = 70)
- ReplaceUserSaveLMSHandler (Orden de clasificación = 80)
- ReplaceUserSaveIPSISHandler (Orden de clasificación = 90)
- ReplaceUserSavePasswordPlainTextHandler (Orden de clasificación = 100)
- ParentPortalCreateRelationshipHandler
ReplaceUserReadIPSISHandler
El controlador ReplaceUserReadIPSISHandler completa el objeto de solicitud con la información de las tablas de la IM que pertenecen al usuario indicado en la solicitud.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserReadIPSISHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si el usuario se había enviado anteriormente, este controlador primero obtiene los datos existentes de este usuario, incluida la asignación (UserId) desde las tablas de IM.
- El procesamiento continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Un controlador Read IPSIS debe ejecutarse antes de un controlador Read LMS.
ReplaceUserReadLMSHandler
El controlador ReplaceUserReadLMSHandler completa el objeto de solicitud con la información de las tablas del LMS que pertenecen al usuario indicado en la solicitud.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserReadLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si el Userid del LMS está disponible, el controlador lee los valores del LMS existentes para las propiedades del usuario.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Un controlador Read IPSIS debe ejecutarse antes de un controlador Read LMS.
ReplaceUserStatusDefaultActiveHandler
El controlador ReplaceUserStatusDefaultActiveHandler determina como estado predeterminado del usuario el valor Activo si no se había configurado previamente.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserStatusDefaultActiveHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Establece el estado en Activo si no se había configurado previamente.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador debe colocarse antes del controlador Validate.
ReplaceUserValidateBaseHandler
El controlador ReplaceUserValidateBaseHandler garantiza que las propiedades mínimas requeridas para el usuario se hayan establecido. Entre estas se incluyen el Identificador de usuario, el Nombre de usuario, el Rol y el Estado.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserValidateBaseHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Se asegura de que se establezcan los siguientes valores: Identificador de entidad, Nombre de usuario, Rol y Estado.
- Si alguno de los valores no se ha establecido, se genera una ArgumentNullException con detalles del valor faltante. El Adaptador registra el mensaje de excepción específico y devuelve un error general al SIS.
- Si la contraseña está configurada para actualizarse y el tipo de cifrado es un tipo no admitido, se genera una InvalidDataException con detalles del tipo de cifrado no admitido. El Adaptador registra el mensaje de excepción específico y devuelve un error general al SIS.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Debe colocarse antes del primer controlador Create.
ReplaceUserCreateLMSHandler
El controlador ReplaceUserCreateLMSHandler crea el usuario en el LMS si aún no existe.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserCreateLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no existe un objeto de usuario del LMS válido en la solicitud, el controlador crea el usuario en las tablas de Brightspace (activación automática del registro de auditoría).
- Ingresa en la auditoría para crear el usuario si se crea el usuario.
- Si todo se realiza correctamente, el controlador establece ReplaceRequestStatus = EntityCreated.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Debe ejecutarse antes del controlador IPSIS Create.
ReplaceUserCreateIPSISHandler
El controlador ReplaceUserCreateIPSISHandler crea el usuario en las tablas de IM si aún no existe allí.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserCreateIPSISHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Crea el usuario en las tablas de IM si aún no existe allí.
- Avanza al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Debe ejecutarse después del controlador LMS Create.
- Debe ejecutarse antes de los controladores Save.
ReplaceUserSaveLMSHandler
El controlador ReplaceUserSaveLMSHandler guarda las actualizaciones necesarias para el LMS.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserSaveLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si existen actualizaciones de los usuarios para el LMS, el controlador las guarda (activación automática del registro de auditoría).
- Si se produce un problema al guardar, el estado se establece en Error.
- Si todo se realiza correctamente, el controlador crea y actualiza el usuario cuando cambian los datos, y establece ReplaceRequestStatus = EntityUpdated.
- El proceso continúa con el controlador siguiente (devuelve True).
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Debe ejecutarse después de los controladores Create.
ReplaceUserSaveIPSISHandler
El controlador ReplaceUserSaveIPSISHandler guarda las actualizaciones necesarias para las tablas IM.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserSaveIPSISHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si existen actualizaciones de los usuarios para las tablas del IM, el controlador las guarda.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Debe ejecutarse después de los controladores Create.
ReplaceUserSavePasswordPlainTextHandler
El controlador ReplaceUserSavePasswordPlainTextHandler guarda la Contraseña en texto sin formato en el LMS.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserSavePasswordPlainTextHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si existe una contraseña que se proporciona en texto sin formato y se identifica como actualizada, el controlador guarda la contraseña en el LMS. Si la contraseña se almacena en cualquier otro tipo de cifrado, el controlador no realiza ninguna acción.
- El controlador crea una entrada de auditoría de la contraseña actualizada.
- Un controlador debe configurarse específicamente para el tipo de cifrado.
- Si la contraseña se actualizó y el estado no era EntityCreated, el estado se establece en EntityUpdated.
- Avance al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Debe ejecutarse después de los controladores Create.
ReplaceUserRoleDefaultFirstRoleHandler
El controlador ReplaceUserRoleDefaultFirstRoleHandler establece como rol primario predeterminado del usuario del LMS el primer rol de la lista de roles de la solicitud, si no se estableció previamente.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRoleDefaultFirstRoleHandler
Comportamiento esperado
Si no se ha establecido un Rol principal, configúrelo como el primer rol de la lista de roles de la solicitud y continúe con el siguiente controlador.
Si no se ha establecido un Rol principal y la lista de roles de la solicitud está vacía, este controlador avanza al siguiente controlador sin un rol principal definido.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Este controlador debe colocarse antes del controlador Validate.
- Este controlador completa el rol en el objeto de la solicitud del IPSIS y este rol se utiliza cuando se crea o actualiza el usuario del LMS. Este controlador debe configurarse si un rol de la solicitud debe aplicarse a los usuarios del LMS. Sin este controlador, los roles de la solicitud no se utilizan cuando se crea o actualiza el usuario del LMS.
- Este controlador debe ejecutarse antes de ReplaceUserRoleDefaultConfigVariableHandler cuando se utilizan en conjunto, si desea que el rol de la solicitud se establezca como el rol del usuario. Si espera que falte información del rol en la solicitud, también configure el controlador ReplaceUserRoleDefaultConfigVariableHandler para que se ejecute después de este controlador.
ReplaceUserRoleDefaultConfigVariableHandler
ReplaceUserRoleDefaultConfigVariableHandler se utiliza para establecer un rol basado en la variable de configuración d2l.Integrations.IPSIS.DefaultRole si no se asignó uno anteriormente. La variable de configuración se establece según una ID de rol de Brightspace.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRoleDefaultConfigVariableHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no se ha establecido un rol principal, el controlador lo establece según el rol encontrado en d2l.Integrations.IPSIS.DefaultRole y continúa al controlador siguiente.
- Si se ha establecido un rol principal, el controlador no realiza ninguna acción y continúa con el siguiente controlador.
Comportamiento de error
- Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
- Si la variable de configuración no está configurada, se genera una RoleNotFoundException con el mensaje "No default role is set for config value: d2l.Integrations.IPSIS.DefaultRole" (No se ha establecido un rol predeterminado para el valor de configuración: d2l.Integrations.IPSIS.DefaultRole).
Notas de configuración
- Debe colocarse antes del controlador Validate.
- Este controlador completa el rol en el objeto de la solicitud del IPSIS y este rol se utiliza cuando se crea o actualiza el usuario del LMS. Este controlador debe configurarse en una de las dos situaciones:
- Las solicitudes de personas del LIS siempre excluyen un rol. Un rol es necesario para crear un usuario del LMS.
- En algunas ocasiones, las solicitudes de personas del LIS pueden especificar un rol, aunque no siempre. Otro controlador, como el ReplaceUserRoleDefaultFirstRoleHandler debe configurarse antes que este para establecer el rol del objeto de solicitud del IPSIS en el rol de la solicitud. De esta manera, se garantiza que se cree o actualice el usuario con el rol de la solicitud. Sin embargo, cuando en la solicitud falta un rol, este controlador establece un rol y garantiza que el usuario pueda crearse correctamente.
ReplaceUserUsernameFromEmailPrefixHandler
El controlador ReplaceUserUsernameFromEmailPrefixHandler establece el Nombre de usuario en el prefijo de la Dirección de correo electrónico (antes del símbolo @) si aún no se ha definido un nombre de usuario.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUsernameFromEmailPrefixHandler
Comportamiento esperado
Si no se ha definido un nombre de usuario y la dirección de correo electrónico contiene un valor, se establece el nombre de usuario según el prefijo de la dirección de correo electrónico y se procede al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador se suele colocar antes de Validation.
ReplaceUserUsernameGenerateHandler
El controlador ReplaceUserUsernameGenerateHandler genera un Nombre de usuario con el método de generación de Nombre de usuario para el LMS si todavía no se ha establecido uno.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUsernameGenerateHandler
Comportamiento esperado
Si no se ha establecido un nombre de usuario, genere uno con el algoritmo de generación de Nombre de usuario de LP y continúe con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se coloca como el último controlador Username antes de Validation.
ReplaceUserUsernameFromEmailHandler
El controlador ReplaceUserUsernameFromEmailHandler establece el nombre de usuario según la dirección de correo electrónico completa si aún no se ha definido un nombre de usuario.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUsernameFromEmailHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no se ha definido un nombre de usuario y la dirección de correo electrónico contiene un valor, el controlador establece el nombre de usuario según la dirección de correo electrónico.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador se suele colocar antes de Validation.
ReplaceUserUsernameNoUpdateHandler
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUsernameNoUpdateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de solicitud para indicar que el nombre de usuario no debe actualizarse.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se ejecuta antes de los controladores Create o Save.
ReplaceUserFirstNameNoUpdateHandler
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserFirstNameNoUpdateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de solicitud para indicar que el Nombre no debe actualizarse.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se ejecuta antes de los controladores Create o Save.
ReplaceUserLastNameNoUpdateHandler
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserLastNameNoUpdateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de solicitud para indicar que el Apellido no debe actualizarse.
- Avanza al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se ejecuta antes de los controladores Create o Save.
ReplaceUserOrgDefinedIdNoUpdateHandler
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserOrgDefinedIdNoUpdateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de solicitud para indicar que el orgdefinedid no debe actualizarse.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se ejecuta antes de los controladores Create o Save.
ReplaceUserPasswordNoUpdateHandler
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserPasswordNoUpdateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de solicitud para indicar que la contraseña no debe actualizarse en el LMS.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se ejecuta antes de los controladores Create o Save.
ReplaceUserRoleNoUpdateHandler
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRoleNoUpdateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de solicitud para indicar que el rol no debe actualizarse en el LMS.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Este controlador debe ejecutarse después de un controlador que establece el rol de Brightspace en la solicitud.
- Este controlador debe ejecutarse antes de los controladores Create o Save.
ReplaceUserMapByUsernameAndOrgDefinedIdHandler
El controlador ReplaceUserMapByUsernameAndOrgDefinedIdHandler asocia un usuario del SIS con Usuarios del LMS existentes por coincidencia del Nombre de usuario y el OrgDefinedId.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserMapByUsernameAndOrgDefinedIdHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no existe una Asignación de usuarios en las Tablas de IM, el controlador intenta buscar un usuario en el LMS que coincida con el Username y el OrgDefinedId.
- Si se encuentra una coincidencia, el controlador actualiza el objeto de solicitud para contener el usuario coincidente. La coincidencia, si existe, siempre es única.
- Continúa con el siguiente controlador.
Comportamiento de error
- Si ya existe una asignación con el mismo nombre de usuario, pero tiene un sourcedId diferente, se genera una DuplicateUsernameException.
- Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador suele ejecutarse entre los controladores Read y Create, en cuyo caso solo se ejecuta si los controladores Read no logran encontrar un OrgUser asignado.
ReplaceUserMapByUsernameHandler
El controlador ReplaceUserMapByUsernameHandler asocia un usuario del SIS con Usuarios del LMS existentes por coincidencia del Nombre de usuario.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserMapByUsernameHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no existe una Asignación de usuarios en las Tablas de IM, el controlador intenta buscar un usuario en el LMS que coincida con el Username.
- Si se encuentra una coincidencia, el controlador actualiza el objeto de solicitud para contener el usuario coincidente. La coincidencia, si existe, siempre es única.
- Continúa con el siguiente controlador.
Comportamiento de error
- Si ya existe una asignación con el mismo nombre de usuario, pero tiene un sourcedId diferente, se genera una DuplicateUsernameException.
- Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador suele ejecutarse entre los controladores Read y Create, en cuyo caso solo se ejecuta si los controladores Read no logran encontrar un OrgUser asignado.
ReplaceUserMapByOrgDefinedIdHandler
El controlador ReplaceUserMapByOrgDefinedIdHandler asocia un usuario del SIS con Usuarios del LMS existentes por coincidencia del OrgDefinedId.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserMapByOrgDefinedIdHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no existe una Asignación de usuarios ni OrgUser en el mensaje de solicitud, el controlador intenta buscar un usuario en el LMS que coincida con el OrgDefinedId.
- Si se encuentra una coincidencia, el controlador actualiza el objeto de solicitud para contener el usuario coincidente.
- Puede haber más de una coincidencia en la base de datos, pero la plataforma devuelve un solo resultado. Este controlador solo se debe utilizar si se espera que el OrgDefinedId sea único dentro de una organización.
- Continúa con el siguiente controlador.
Comportamiento de error
- Si ya existe una asignación con el mismo nombre de usuario, pero tiene un sourcedId diferente, se genera una DuplicateUsernameException.
- Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador suele ejecutarse entre los controladores Read y Create, en cuyo caso solo se ejecuta si los controladores Read no logran encontrar un OrgUser asignado.
ReplaceUserRequirePasswordChangeOnCreateHandler
El controlador ReplaceUserRequirePasswordChangeOnCreateHandler garantiza que los nuevos usuarios deban cambiar su contraseña en el primer acceso.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRequirePasswordChangeOnCreateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Establece el indicador de la solicitud que se traslada al controlador Create, que marca el usuario para que cambie la contraseña en el primer inicio de sesión.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador generalmente se ejecuta antes de los controladores Create o Save.
ReplaceUserStatusDefaultInactiveHandler
El controlador ReplaceUserStatusDefaultInactiveHandler establece el estado predeterminado en Inactivo si no se ha proporcionado uno.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserStatusDefaultInactiveHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Establece el estado en Inactivo si no se configuró previamente.
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador se suele colocar antes de Validation.
ReplaceUserVerifyConsistentSourcedIdHandler
El controlador ReplaceUserVerifyConsistentSourcedIdHandler verifica que la solicitud no esté intentando dar un nuevo sourcedId a un usuario que ya se ha asignado.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserVerifyConsistentSourcedIdHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si la solicitud no tiene ningún D2LOrgUser establecido, el controlador no hace ninguna acción.
- Si un usuario de la organización está establecido, el controlador comprueba si existen asignaciones para ese usuario en el sistema o la organización actual.
- En caso negativo, el controlador no realiza ninguna acción.
- En caso de que existan asignaciones, el controlador comprueba si el sourcedId de la asignación existente coincide con el sourcedId de la solicitud.
- Si coinciden, el controlador no realiza ninguna acción.
- Si no coinciden, el controlador genera una DuplicatedUsernameException para notificar al SIS que está tratando de establecer un nuevo sourcedId sobre un usuario existente.
Comportamiento de error
Si ya existe una Asignación de usuario para el usuario y tiene un sourcedId diferente, el controlador genera una excepción.
Nota de configuración
Este controlador debe ejecutarse después de un controlador MapBy (como ReplaceUserMapByUsernameHandler) para verificar que el usuario aún no esté asignado a un sourcedId diferente. Debe ejecutarse antes de los controladores Save o Create.
ReplaceUserUpdateIPSISSourcedIdForMatchedUserHandler
El controlador ReplaceUserUpdateIPSISSourcedIdForMatchedUserHandler verifica que la solicitud no esté intentando dar un nuevo sourcedId a un usuario que ya se ha asignado.
Implementación
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUpdateIPSISSourcedIdForMatchedUserHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si la solicitud no tiene ningún D2LOrgUser establecido, el controlador no hace ninguna acción.
- Si un usuario de la organización está establecido, el controlador comprueba si existen asignaciones para ese usuario en el sistema o la organización actual.
- Si no hay asignaciones, el controlador no realiza ninguna acción.
- Si existen asignaciones, el controlador comprueba si el sourcedId de la asignación existente coincide con el sourcedId de la solicitud.
- Si coinciden, el controlador no realiza ninguna acción.
- Si no coinciden, el controlador comprueba si ya existe una asignación de usuario en el sistema de origen con el sourcedId de la solicitud.
- Si la asignación existe, el controlador genera una DuplicatedUsernameException para notificar al SIS que está intentando establecer un sourcedId nuevo para un usuario existente y que el sourcedId del usuario existente no se puede cambiar al nuevo debido a que se produce un conflicto.
- Si no coinciden, el controlador cambia el sourcedId del usuario en la tabla de asignaciones al que aparece en la solicitud y establece la UserMapping de la solicitud como la solicitud a la que se le ha cambiado el nombre.
Comportamiento de error
Si ya existe una asignación de usuario para el usuario y tiene un sourcedId diferente y, ADEMÁS, el sourcedId solicitado ya está en uso, el controlador genera una excepción.
Nota de configuración
Este controlador debe ejecutarse después de un controlador MapBy (como ReplaceUserMapByUsernameHandler), pero antes de los controladores Save o Create. Este controlador debería usarse en lugar del ReplaceUserVerifyConsistentSourcedIdHandler.