Boa tarde a Todos!
Tenho uma duvida de como poderia fazer para criar usuários com papéis e grupos (createColleaguewithDependencies) pré-definidos dentro de um form de processos.
Até o momento só consegui fazer o html dessa funcionalidade.
Boa tarde a Todos!
Tenho uma duvida de como poderia fazer para criar usuários com papéis e grupos (createColleaguewithDependencies) pré-definidos dentro de um form de processos.
Até o momento só consegui fazer o html dessa funcionalidade.
@Lucas_Folha , qual dúvida exatamente? De como fazer a chamada ou onde colocar a chamada para o serviço?
A dúvida está em como fazer a chamada dentro do form.
Lucas, por já ter o nome do método necessário acredito já ter conhecimento sobre utilização de serviços do Fluig. Pelo que entendi, esse formulário faz parte de um processo, e se assim for, recomendo que acione a integração em um evento de processo como o beforeStateEntry.
1º Passo é Adicionar o Serviço ColleagueService no Fluig (Visualização de Serviços - TOTVS Fluig - TDN)
2º Fazer a sua correta chamada conforme parâmetros solicitados na assinatura do método. Caso envie um parâmetro que não esteja no tipo solicitado, pode causar erro. Segue o exemplo do serviço createColleague sendo utilizado. Pode te orientar na hora do desenvolvimento, segue exemplo abaixo de usuário sendo criado no beforeStateEntry, usuário em um grupo chamado “usuario”:
log.info("CADASTRANDO USUARIO: ");
//Serviço criado com o código ECMColleagueService
var wep = ServiceManager.getServiceInstance("ECMColleagueService");
var wel = wep.instantiate("com.totvs.ECMColleagueServiceService");
var wes = wel.getColleagueServicePort();
var colleagueDtoArray = wep.instantiate("com.totvs.ColleagueDtoArray");
var colleagueDto = wep.instantiate("com.totvs.ColleagueDto");
var senhaUsuario = "123456789";
var loginUsuario = "loginUsuarioCriado";
var emailUsuario = "email@email.com";
var nomeUsuario = "Nome Usuário";
colleagueDto.setActive(true);
colleagueDto.setAdminUser(false)
colleagueDto.setColleagueId(loginUsuario);
colleagueDto.setColleagueName(nomeUsuario);
colleagueDto.setCompanyId(1);
colleagueDto.setEmailHtml(true);
colleagueDto.setGroupId("usuario")
colleagueDto.setLogin(loginUsuario);
colleagueDto.setMail(emailUsuario);
colleagueDto.setPasswd(senhaUsuario);
colleagueDtoArray.getItem().add(colleagueDto);
//createColleague("usuarioAdm", "senhaAdm", "codigo_empresa", "objeto array colleagueDto")
var resultado = wes.createColleague("admin", "admin", 1, colleagueDtoArray);
if(resultado != "ok"){
throw "Erro ao cadastrar o cliente: " + result1;
}
log.info("USUARIO CADASTRADO");
Obrigado pelo exemplo.
Na documentação diz que a senha informada precisa ser “criptografada” com hash MD5 (triste ver que o armazenamento da senha é tão inseguro assim), mas que no caso de ter o Identity configurado a senha deve ser informada sem o hash.
Eu estava curioso pra ver essa questão de criar usuários com o Fluig utilizando Identity. Hoje nós sempre precisamos esperar a boa vontade do usuário efetuar o login pela primeira vez pra ter seu usuário criado e estávamos pensando em criar um mecanismo (um processo ou um simples dataset) pra agilizarmos essa criação indicando também os grupos.
Vou efetuar alguns testes com
Show de bola! Vou verificar aqui e fazer os testes, eu retorno com a resposta!!!
@Bruno_Gasparetto Lembrando que o Identity também possui APIS para criação de usuários, mesmo que com a dependência da integração com o AD.
@Fluigor, então, ainda não explorei a fundo, mas nossos usuários do AD são sincronizados com o Identity e por padrão todos já são criados com o Fluig disponibilizado no Identity.
Quando entra um novo pedido de acesso ao Fluig a gente depende que a pessoa entre pela primeira vez no Fluig, finalmente criando o usuário, pra só então conseguir dar as permissões.
Vou verificar a API do Identity se tem como ele “forçar” a criação no Fluig ou então, pelo Fluig, criar o usuário puxando as informações do Identity.
Hoje se tu se direcionar ao Painel de controle > Usuarios da plataforma Fluig e inserir o e-mail de um usuário ativo no Identity o fluig ja puxa as informações relacionadas ao identity, como por exemplo colocando a matricula do Fluig, com o hash gerado pelo identity.
Entao certamente eh possivel buscar, eu tenho um exemplo desse processo sem o Just Time habilitado, justamente porque a ideia era que a matricula do Fluig fosse conforme a necessidade do cliente.
Caso queria o exemplo, vou compartilhar em outro topico.
abraço
@alefvinicius copiei e colei e consegui criar o acesso via afterStateEntry, porém o usuário que crio não entra no grupo que informo no parametro, sabe o que pode ser? E outra questão seria possível adicionar papeis também via parametros?