1. 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 camposUserId
ePermissionId
(ver Lista de Permissões Disponíveis). - A tabela
UserStation
relaciona usuários com estações através dos camposUserId
eStationId
.
2. Procedimento¶
2.1. 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.
Note
O ID da estação (StationId
) será usado nos próximos passos.
2.2. 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.
Note
A coluna UserId
é auto incremental. O ID do usuário será ser usado nos próximos passos.
2.3. 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
.
2.3.1. 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 |
2.4. 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 oUserId
do usuário, como consta na tabelaSMART.User
.StationId
: Preencha com o ID da estação à qual o usuário será associado, como consta na tabelaSMART.Station
.
2.5. 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 ;
2.5.1. 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
.