Criação de usuários do GBS SMART

Visão Geral

Este manual detalha o procedimento para criação de usuários do GBS SMART.

  • Todo usuário deve ter uma conta no LDAP para login.

  • Todas as configurações e dados do GBS Smart ficam dentro do schema SMART.

  • A tabela User contém informações básicas sobre o usuário.

  • A tabela UserPermission relaciona usuários com suas permissões através dos campos UserId e PermissionId (ver Lista de Permissões Disponíveis).

  • A tabela UserStation relaciona usuários com estações através dos campos UserId e StationId.

Procedimento

Criar um novo posto de trabalho na tabela Station

Para criar um novo posto de trabalho, ou estação, insira um registro na tabela SMART.Station preenchendo as seguintes colunas:

  • StationId: Preencha com um ID incremental da estação.

  • Description: Preencha com o nome da estação.

  • MandatoryConference: Indique se as transações do posto deverão ir para conferência obrigatória (1 para sim, 0 para não).

  • CityId: Indique o ID da cidade em que a estação se localiza.

O ID da estação (StationId) será usado nos próximos passos.

Criar um novo usuário na tabela User

Para criar um novo usuário, insira um registro na tabela SMART.User preenchendo as seguintes colunas:

  • CPF: Preencha com o CPF do usuário.

  • Username: Preencha com o nome de usuário.

  • Admin: Indique se o usuário é administrador (1 para sim, 0 para não).

  • Active: Indique se o usuário está ativo (1 para ativo, 0 para inativo). O valor padrão é 1.

  • Pguid (opcional): Preencha com o PGUID do usuário na base biométrica.

A coluna UserId é auto incremental. O ID do usuário será ser usado nos próximos passos.

Atribuir permissões ao usuário na tabela UserPermission

Após criar o usuário, é preciso atribuir suas permissões. Para isso, insira um registro na tabela SMART.UserPermission para cada permissão que o usuário deve ter, relacionando o UserId com o PermissionId.

Lista de permissões disponíveis

O PermissionId está especificado na tabela a seguir:

PermissionId
Descrição
PermissionName

1

Permissão de listagem de cadastro civil, 2º via, etc.

CIVIL

2

Permissão de listagem de cadastro criminal.

CRIMINAL

3

Permissão de visualização da tela de layout.

LAYOUT

4

Permissão de visualização da tela de busca avançada.

PESQUISA

5

Permissão para realizar captura de biometrias.

CAPTURA

6

Permissão para realizar download de biometrias, impressão de protocolo e prontuário.

DOWNLOAD

7

Permissão para realizar conferência de biográficos.

CONFERENCE

8

Permissão para realizar a baixa de malotes.

PACKAGE

Associar o usuário a uma estação na tabela UserStation

Insira um registro na tabela UserStation relacionando o UserId com o StationId. A estação deve estar configurada previamente na tabela SMART.Station, como explicado anteriormente.

  • UserId: Utilize o UserId do usuário, como consta na tabela SMART.User.

  • StationId: Preencha com o ID da estação à qual o usuário será associado, como consta na tabela SMART.Station.

Procedure de criação de Usuário, alocação de posto e permissões

DELIMITER //
CREATE PROCEDURE InsertNewUser(
	IN p_CPF VARCHAR(14),
	IN p_Username VARCHAR(64),
	IN p_Admin TINYINT(1),
	IN p_Active TINYINT(1),
	IN p_Pguid VARCHAR(100),
	IN p_StationId INT,
	IN p_Permissions VARCHAR(100) -- Permissões separadas por vírgula (ex: '1,4,5,6,7')
)
BEGIN
	DECLARE user_id INT;
	DECLARE perm_pos INT DEFAULT 1;
	DECLARE perm_length INT;
	DECLARE current_permission VARCHAR(10);
	DECLARE done INT DEFAULT 0;

	-- Insere um novo usuário na tabela User
	INSERT INTO `User` (`CPF`, `Username`, `Admin`, `Active`, `Pguid`)
	VALUES (p_CPF, p_Username, p_Admin, p_Active, p_Pguid);

	-- Obtém o último ID inserido na tabela User
	SET user_id = LAST_INSERT_ID();

	-- Loop para inserir as permissões
	read_loop: LOOP
		SET perm_length = LOCATE(',', p_Permissions, perm_pos) - perm_pos;
		IF perm_length < 0 THEN
			SET perm_length = LENGTH(p_Permissions) - perm_pos + 1;
			SET done = 1;
		END IF;
		SET current_permission = SUBSTRING(p_Permissions, perm_pos, perm_length);

		-- Inserir permissão na tabela UserPermission
		INSERT INTO `UserPermission` (`UserId`, `PermissionId`)
		VALUES (user_id, current_permission);

		IF done = 1 THEN
			LEAVE read_loop;
		END IF;

		SET perm_pos = LOCATE(',', p_Permissions, perm_pos) + 1;
	END LOOP read_loop;

	-- Insere associação do novo usuário com uma estação na tabela UserStation
	INSERT INTO `UserStation` (`UserId`, `StationId`)
	VALUES (user_id, p_StationId);
END //
DELIMITER ;

Exemplo de chamada do procedure

Argumentos:

  • CPF (somente números)

  • Username (igual ao LDAP)

  • Admin (0: false, 1: true)

  • Ativo (0: false, 1: true)

  • PGUID do GBDS (procurar CPF no GBDS)

  • ID da estação

  • Permissões separadas por vírgula

Chamar o procedimento armazenado para inserir um novo usuário:

CALL InsertNewUser('12345678900', 'new_user', 0, 1, NULL, 1,'1,4,5,6,7');

O exemplo acima cria um novo usuário com CPF 123.456.789-00, nome de usuário new_user, não administrador, ativo, sem PGUID, associado à estação com ID 1 e com as permissões 1,4,5,6,7.

Atualizado