A interface de plug-in para IReplaceUserHandler é usada pelos adaptadores do IPSIS para oferecer suporte à operação de substituição para usuários.
A implementação da interface é D2L.IM.IPSIS.Users.Handlers.IReplaceUserHandler.
A seguinte lista de configuração fornece um ponto de partida para qualquer implementação do IPSIS:
Modelo – Usuário, IPSIS
- ReplaceUserReadIPSISHandler (Ordem de classificação = 10)
- ReplaceUserReadLMSHandler (Ordem de classificação = 20)
- ReplaceUserStatusDefaultActiveHandler (Ordem de classificação = 30)
- ReplaceUserRoleDefaultFirstRoleHandler (Ordem de classificação = 40)
- ReplaceUserValidateBaseHandler (Ordem de classificação = 50)
- ReplaceUserCreateLMSHandler (Ordem de classificação = 60)
- ReplaceUserCreateIPSISHandler (Ordem de classificação = 70)
- ReplaceUserSaveLMSHandler (Ordem de classificação = 80)
- ReplaceUserSaveIPSISHandler (Ordem de classificação = 90)
- ReplaceUserSavePasswordPlainTextHandler (Ordem de classificação = 100)
- ParentPortalCreateRelationshipHandler
ReplaceUserReadIPSISHandler
O ReplaceUserReadIPSISHandler preenche o objeto de solicitação com informações das tabelas IM pertencentes ao usuário indicado na solicitação.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserReadIPSISHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se o usuário foi enviado anteriormente, primeiro esse manipulador obterá quaisquer dados existentes para esse usuário, incluindo o mapeamento (UserId) das tabelas IM.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Um manipulador Read IPSIS deve ocorrer antes de um manipulador Read LMS.
ReplaceUserReadLMSHandler
O ReplaceUserReadLMSHandler preenche o objeto de solicitação com informações das tabelas de LMS pertencentes ao usuário indicado na solicitação.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserReadLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se o Userid do LMS estiver disponível, o manipulador lerá os valores de LMS existentes para as propriedades do usuário.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Um manipulador Read IPSIS deve ocorrer antes de um manipulador Read LMS.
ReplaceUserStatusDefaultActiveHandler
O ReplaceUserStatusDefaultActiveHandler padronizará o status do usuário como ativo se ele não foi configurado anteriormente.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserStatusDefaultActiveHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Configura o status como Ativo se ele não foi configurado anteriormente.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo de detalhes possível.
Nota sobre a configuração
Esse manipulador deve ser colocado antes do manipulador Validate.
ReplaceUserValidateBaseHandler
O ReplaceUserValidateBaseHandler garante que as propriedades mínimas necessárias para o usuário foram configuradas. Isso inclui Identificador de usuário, Nome de usuário, Função e Status.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserValidateBaseHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Garante que os valores a seguir sejam definidos: Identificador da entidade, Nome de usuário, Função e Status.
- Se qualquer um dos valores não estiver configurado, um ArgumentNullException será lançado com as especificações do valor ausente. O Adaptador registra a mensagem de exceção específica e retorna um erro geral para o SIS.
- Se a senha estiver configurada para ser atualizada e o tipo de criptografia não for suportado, um InvalidDataException será lançado com as especificações do tipo de criptografia não suportado. O Adaptador registra a mensagem de exceção específica e retorna um erro geral para o SIS.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Deve ser colocado antes do primeiro manipulador Create.
ReplaceUserCreateLMSHandler
O ReplaceUserCreateLMSHandler criará o usuário no LMS se ele ainda não existir.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserCreateLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se não houver um objeto de usuário do LMS válido na solicitação, o manipulador criará o usuário nas tabelas do Brightspace (acionando a criação de logs de auditoria automática).
- Insere a auditoria para criar o usuário se o usuário for criado.
- Se houver sucesso em tudo, o manipulador configurará ReplaceRequestStatus = EntityCreated.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Deve ser colocado antes do manipulador IPSIS Create.
ReplaceUserCreateIPSISHandler
O ReplaceUserCreateIPSISHandler criará o usuário nas tabelas IM se ele ainda não existir.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserCreateIPSISHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Cria o usuário nas tabelas de IM se ele ainda não existir.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Notas sobre a configuração
- Deve ser colocado após o manipulador LMS Create.
- Esse manipulador deve ser colocado antes dos manipuladores Save.
ReplaceUserSaveLMSHandler
O ReplaceUserSaveLMSHandler salva quaisquer atualizações necessárias para o LMS.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserSaveLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se houver atualizações do usuário para o LMS, o manipulador as salvará (acionando a criação de logs de auditoria automática).
- Se houver um problema ao salvar, o status será configurado como Erro.
- Se houver sucesso em tudo, o manipulador criará e atualizará o usuário quando os dados mudarem e configurará ReplaceRequestStatus = EntityUpdated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Deve ser colocado após os manipuladores Create.
ReplaceUserSaveIPSISHandler
O ReplaceUserSaveIPSISHandler salva quaisquer atualizações necessárias para as tabelas de IM.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserSaveIPSISHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se houver atualizações do usuário para as tabelas IM, o manipulador as salvará.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Deve ser colocado após os manipuladores Create.
ReplaceUserSavePasswordPlainTextHandler
O ReplaceUserSavePasswordPlainTextHandler salva a Senha de texto simples para o LMS.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserSavePasswordPlainTextHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se houver uma senha fornecida em texto simples, e ela for identificada como atualizada, o manipulador salvará a senha para o LMS. Se a senha estiver armazenada em qualquer outro tipo de criptografia, o manipulador não fará nada.
- O manipulador cria uma entrada de auditoria de senha atualizada.
- Um manipulador deve ser configurado para o tipo de criptografia específico.
- Se a senha foi atualizada e o status não foi EntityCreated, o status será configurado como EntityUpdated.
- Prossiga para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Deve ser colocado após os manipuladores Create.
ReplaceUserRoleDefaultFirstRoleHandler
O ReplaceUserRoleDefaultFirstRoleHandler padroniza a função primária do usuário do LMS como a primeira função da lista de funções na solicitação, se não foi configurada anteriormente.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRoleDefaultFirstRoleHandler
Comportamento esperado
Se uma Função primária não foi configurada, configure-a como a primeira função da lista de funções de solicitação e prossiga para o próximo manipulador.
Se uma Função primária não foi configurada e a lista de funções de solicitação estiver vazia, esse manipulador continuará para o próximo manipulador sem uma função primária definida.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Notas sobre a configuração
- Esse manipulador deve ser colocado antes do manipulador Validate.
- Esse manipulador preenche a função no objeto de solicitação do IPSIS e essa função é usada ao criar/atualizar o usuário do LMS. Esse manipulador deve ser configurado se uma função de solicitação deve ser aplicada aos usuários LMS. Sem esse manipulador, as funções de solicitação não são usadas ao criar/atualizar o usuário do LMS.
- Quando usado em conjunto com ReplaceUserRoleDefaultConfigVariableHandler, esse manipulador deve ser colocado antes dele se você deseja configurar a função de solicitação como a função do usuário. Se você previr que as informações de função estarão ausentes na solicitação, também configure ReplaceUserRoleDefaultConfigVariableHandler para seguir esse manipulador.
ReplaceUserRoleDefaultConfigVariableHandler
O ReplaceUserRoleDefaultConfigVariableHandler é usado para configurar uma função com base na variável de configuração d2l.Integrations.IPSIS.DefaultRole, se não foi atribuída anteriormente. A variável de configuração é configurada como um ID de função do Brightspace.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRoleDefaultConfigVariableHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se uma função primária não foi configurada, o manipulador a configurará para a função encontrada em d2l.Integrations.IPSIS.DefaultRole e prosseguirá para o próximo manipulador.
- Se uma função primária foi configurada, o manipulador não fará nada e prosseguirá para o próximo manipulador.
Comportamento de erro
- Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
- Se a variável de configuração não estiver configurada, um RoleNotFoundException será lançado com a mensagem "Nenhuma função padrão está configurada para o valor de configuração: d2l.Integrations.IPSIS.DefaultRole".
Notas sobre a configuração
- Deve ser colocado antes do manipulador Validate.
- Esse manipulador preenche a função no objeto de solicitação do IPSIS e essa função é usada ao criar/atualizar o usuário do LMS. Esse manipulador deve ser configurado em uma de duas situações:
- As solicitações de pessoa do LIS sempre excluem uma função. Uma função é necessária para criar um usuário do LMS.
- As solicitações de pessoa LIS podem às vezes, mas nem sempre, especificar uma função. Outro manipulador, como o ReplaceUserRoleDefaultFirstRoleHandler, deve ser configurado antes deste para configurar a função do objeto de solicitação do IPSIS para a função da solicitação, garantindo assim que o usuário seja criado/atualizado com a função da solicitação. No entanto, quando essa solicitação tiver uma função ausente, esse manipulador configurará uma função e garantirá que o usuário possa ser criado corretamente.
ReplaceUserUsernameFromEmailPrefixHandler
O ReplaceUserUsernameFromEmailPrefixHandler configurará o nome do usuário como o prefixo do endereço de e-mail (antes do @), se um nome de usuário não estiver configurado.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUsernameFromEmailPrefixHandler
Comportamento esperado
Se um nome de usuário não estiver configurado e houver um valor no endereço de e-mail, o nome do usuário para o endereço de e-mail será prefixado e prosseguirá para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente é colocado antes da Validação.
ReplaceUserUsernameGenerateHandler
O ReplaceUserUsernameGenerateHandler gerará um Nome de usuário usando o método de geração de nome de usuário do LMS, se um nome de usuário ainda não estiver configurado.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUsernameGenerateHandler
Comportamento esperado
Se um nome de usuário não estiver configurado, gere-o usando o algoritmo de geração de Nome de usuário do LP e prossiga para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador é geralmente colocado como o último manipulador do Nome de usuário antes da Validação.
ReplaceUserUsernameFromEmailHandler
O ReplaceUserUsernameFromEmailHandler configurará o nome do usuário como o endereço de e-mail completo, se um nome de usuário não estiver configurado.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUsernameFromEmailHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se um nome de usuário não estiver configurado e houver um valor no endereço de e-mail, o manipulador configurará o nome de usuário como o endereço de e-mail.
- O manipulador prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente é colocado antes da Validação.
ReplaceUserUsernameNoUpdateHandler
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUsernameNoUpdateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o Nome de usuário não deve ser atualizado.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador geralmente é colocado antes dos manipuladores Create/Save.
ReplaceUserFirstNameNoUpdateHandler
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserFirstNameNoUpdateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o Primeiro nome não deve ser atualizado.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo de detalhes possível.
Nota sobre a configuração
Esse manipulador geralmente é colocado antes dos manipuladores Create/Save.
ReplaceUserLastNameNoUpdateHandler
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserLastNameNoUpdateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o Sobrenome não deve ser atualizado.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador geralmente é colocado antes dos manipuladores Create/Save.
ReplaceUserOrgDefinedIdNoUpdateHandler
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserOrgDefinedIdNoUpdateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o orgdefinedid não deve ser atualizado.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador geralmente é colocado antes dos manipuladores Create/Save.
ReplaceUserPasswordNoUpdateHandler
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserPasswordNoUpdateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que a senha não deve ser atualizada no LMS.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador geralmente é colocado antes dos manipuladores Create/Save.
ReplaceUserRoleNoUpdateHandler
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRoleNoUpdateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que a função não deve ser atualizada no LMS.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Notas sobre a configuração
- Esse manipulador deve ser colocado após um manipulador que configure a função do Brightspace na solicitação.
- Esse manipulador deve ser colocado antes dos manipuladores Create/Save.
ReplaceUserMapByUsernameAndOrgDefinedIdHandler
O ReplaceUserMapByUsernameAndOrgDefinedIdHandler associa um Usuário do SIS aos Usuários do LMS existentes, correspondendo o Nome do usuário e o OrgDefinedId.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserMapByUsernameAndOrgDefinedIdHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se não houver um Mapeamento de usuário nas Tabelas IM, o manipulador tentará encontrar um usuário no LMS que corresponda ao Nome de usuário e ao OrgDefinedId.
- Se uma correspondência for encontrada, o manipulador atualizará o objeto de solicitação para conter o usuário correspondente. A correspondência, se houver, é sempre única.
- Prossegue para o próximo manipulador.
Comportamento de erro
- Se já houver um mapeamento com o mesmo nome de usuário, mas com um sourcedId diferente, um DuplicateUsernameException será lançado.
- Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente é colocado entre os manipuladores Read e os manipuladores Create; nesse caso, ele só executa se os manipuladores Read não conseguirem encontrar um OrgUser mapeado.
ReplaceUserMapByUsernameHandler
O ReplaceUserMapByUsernameHandler associa um Usuário do SIS aos Usuários do LMS existentes, correspondendo o Nome do usuário.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserMapByUsernameHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se não houver um Mapeamento de usuário nas Tabelas IM, o manipulador tentará encontrar um usuário no LMS que corresponda ao Nome de usuário.
- Se uma correspondência for encontrada, o manipulador atualizará o objeto de solicitação para conter o usuário correspondente. A correspondência, se houver, é sempre única.
- Prossegue para o próximo manipulador.
Comportamento de erro
- Se já houver um mapeamento com o mesmo nome de usuário, mas com um sourcedId diferente, um DuplicateUsernameException será lançado.
- Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente é colocado entre os manipuladores Read e os manipuladores Create; nesse caso, ele só executa se os manipuladores Read não conseguirem encontrar um OrgUser mapeado.
ReplaceUserMapByOrgDefinedIdHandler
O ReplaceUserMapByOrgDefinedIdHandler associa um Usuário do SIS aos Usuários do LMS existentes, correspondendo o OrgDefinedId.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserMapByOrgDefinedIdHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se não houver um Mapeamento de usuário e nenhum OrgUser na mensagem de solicitação, o manipulador tentará encontrar um usuário no LMS que corresponda ao OrgDefinedId.
- Se uma correspondência for encontrada, o manipulador atualizará o objeto de solicitação para conter o usuário correspondente.
- Pode haver mais de uma correspondência no banco de dados, mas a plataforma retorna apenas um único resultado. Esse manipulador só deve ser usado se for esperado que o OrgDefinedId seja exclusivo dentro de uma Org.
- Prossegue para o próximo manipulador.
Comportamento de erro
- Se já houver um mapeamento com o mesmo nome de usuário, mas com um sourcedId diferente, um DuplicateUsernameException será lançado.
- Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente é colocado entre os manipuladores Read e os manipuladores Create; nesse caso, ele só executa se os manipuladores Read não conseguirem encontrar um OrgUser mapeado.
ReplaceUserRequirePasswordChangeOnCreateHandler
O ReplaceUserRequirePasswordChangeOnCreateHandler assegura que os novos usuários alterem sua senha no primeiro acesso.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserRequirePasswordChangeOnCreateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Configura o destaque na solicitação que é passada para o manipulador create, que marca o usuário como obrigado a alterar a senha no primeiro logon.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo de detalhes possível.
Nota sobre a configuração
Esse manipulador geralmente é colocado antes dos manipuladores Create/Save.
ReplaceUserStatusDefaultInactiveHandler
O ReplaceUserStatusDefaultInactiveHandler padronizará o status como Inativo se um status não for fornecido.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserStatusDefaultInactiveHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Configura o status como Inativo se ele não foi configurado anteriormente.
- Prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente é colocado antes da Validação.
ReplaceUserVerifyConsistentSourcedIdHandler
O ReplaceUserVerifyConsistentSourcedIdHandler verifica se a solicitação não está tentando fornecer um novo sourcedId a um usuário que já está mapeado.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserVerifyConsistentSourcedIdHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se a solicitação não tiver um D2LOrgUser configurado, o manipulador não fará nada.
- Se um usuário da organização estiver configurado, o manipulador verificará se existem mapeamentos para esse usuário no sistema/organização atual.
- Se não houver, o manipulador não fará nada.
- Se houver mapeamentos, o manipulador verificará se o sourcedId do mapeamento existente corresponde ao sourcedId da solicitação.
- Se eles corresponderem, o manipulador não fará nada.
- Se não corresponderem, o manipulador lançará um DuplicatedUsernameException para notificar ao SIS que ele está tentando configurar um novo sourcedId para um usuário existente.
Comportamento de erro
Se já existir um mapeamento para o usuário e ele tiver um sourcedId diferente, o manipulador lançará uma exceção.
Nota sobre a configuração
Esse manipulador deve ser colocado após um manipulador MapBy (como ReplaceUserMapByUsernameHandler) para verificar se o usuário já não está mapeado para um sourcedId diferente. Também deve ser colocado antes dos manipuladores save/create.
ReplaceUserUpdateIPSISSourcedIdForMatchedUserHandler
O ReplaceUserUpdateIPSISSourcedIdForMatchedUserHandler verifica se a solicitação não está tentando fornecer um novo sourcedId a um usuário que já está mapeado.
Implementação
D2L.IM.IPSIS.Default.Users.Handlers.ReplaceUserUpdateIPSISSourcedIdForMatchedUserHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Se a solicitação não tiver um D2LOrgUser configurado, o manipulador não fará nada.
- Se um usuário da organização estiver configurado, o manipulador verificará se existem mapeamentos para esse usuário no sistema/organização atual.
- Se não houver mapeamentos, o manipulador não fará nada.
- Se houver mapeamentos, o manipulador verificará se o sourcedId do mapeamento existente corresponde ao sourcedId da solicitação.
- Se eles corresponderem, o manipulador não fará nada.
- Se eles não corresponderem, o manipulador verificará se já existe um mapeamento de usuário no sistema de origem com o sourcedId da solicitação.
- Se o mapeamento existir, o manipulador lançará um DuplicatedUsernameException para notificar ao SIS que ele está tentando configurar um novo sourcedId para um usuário existente, e que o sourcedId do usuário existente não pode ser alterado para o novo devido a um conflito.
- Se eles não corresponderem, o manipulador alterará o sourcedId do usuário na tabela de mapeamentos para o da solicitação e configurará o UserMapping na solicitação para o mapeamento que agora foi renomeado.
Comportamento de erro
Se já existir um mapeamento para o usuário, ele tiver um sourcedId diferente E o sourcedId solicitado já estiver em uso, o manipulador lançará uma exceção.
Nota sobre a configuração
Esse manipulador deve ser colocado após um manipulador MapBy (como ReplaceUserMapByUsernameHandler), mas antes dos manipuladores save/create. Esse manipulador deve ser usado no lugar do ReplaceUserVerifyConsistentSourcedIdHandler.