Criação de Usuário dentro do form

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.

1 curtida

@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");


3 curtidas

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 :slight_smile:

1 curtida

Show de bola! Vou verificar aqui e fazer os testes, eu retorno com a resposta!!!

1 curtida

@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.

1 curtida

@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.

1 curtida

@Bruno_Gasparetto

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?