# Controle de Acesso

## Visão Geral

A funcionalidade de Controle de Acesso é um módulo administrativo para controlar permissões de usuários na plataforma de gestão de frota. Este sistema permite criar, editar e gerenciar grupos de usuários com diferentes níveis de acesso e permissões, restringindo o acesso por horários específicos, endereços IP e vinculando veículos a cada grupo. Para acessar a opção utilize o menu CONFIGURAÇÕES e a opção CONTROLE DE ACESSO.

## Descrição da Interface

A interface do Sistema de Gerenciamento de Grupos de Acesso está organizada em cinco abas principais:

1. **DADOS**: Informações básicas do grupo de acesso
2. **PERMISSÕES**: Configuração de permissões para diferentes módulos do sistema
3. **HORÁRIOS**: Restrição de acesso por dias da semana e horários
4. **CONTROLE POR IP**: Restrição de acesso por endereços IP específicos
5. **VEÍCULOS**: Associação de veículos específicos ao grupo de acesso

### Elementos da Interface

#### Aba DADOS

- **Divisão**: Campo do tipo dropdown para selecionar a divisão à qual o grupo pertence
- **Nome**: Campo de texto para o nome do grupo (obrigatório)
- **Login**: Campo de texto para o login do grupo (obrigatório, mínimo 5 caracteres)
- **Senha**: Campo de senha com botão de visualização (obrigatório para novos grupos, mínimo 6 caracteres)
- **E-mail**: Campo de texto para o e-mail de contato do grupo (opcional, validação de formato de e-mail)
- **Descrição**: Área de texto para informações adicionais (opcional, limite de 2045 caracteres)
- **Checkboxes de permissões básicas**: 
    - Master? (acesso total)
    - Pode se Alterar? (edição de dados próprios)
    - Pode Bloquear? (bloquear outros usuários)
    - Visualizar Mapa?
    - Visualizar Grid?
    - Visualizar Percursos?
    - Visualizar Relatórios?
    - Visualizar Avisos?

#### Aba PERMISSÕES

- **Versão do Sistema**: Dropdown com opções BASIC, PRO e FAST (se disponível)
- **Botões de ação**: "Marcar Todos" e "Desmarcar Todos"
- Seções de permissões organizadas por categoria: 
    - **Dashboard**: Permissões para dashboard de Veículos, Despesas, Motoristas, Telemetria e Câmeras
    - **Controles de Frota**: Permissões para Agenda de Eventos, Tipo Item Eventos, Ocorrência de Veículo, etc.
    - **Receitas e Despesas**: Permissões para gestão financeira
    - **Pontos de Interesse**: Permissões para gerenciar locais no mapa
    - **Abastecimento Interno**: Permissões para controle de combustível
    - **Controle de Estoque**: Permissões para gerenciar peças e produtos
    - **Controle de Viagem**: Permissões para gestão de viagens e rotas
    - **Controle de Pneus**: Permissões para gestão de pneus
    - **Roteirização**: Permissões para planejamento de rotas
    - **Gerenciamento de Pedidos**: Permissões para gestão de pedidos
    - **Configurações**: Permissões para configurações do sistema
    - **Relatórios - Veículos**: Permissões para relatórios específicos de veículos
    - **Relatórios - Controle de Frota**: Permissões para relatórios de frota
    - **Relatórios - Roteirização**: Permissões para relatórios de rotas
    - **Relatórios - Entrada/Saída**: Permissões para relatórios de entrada/saída
    - **Relatórios - Telemetria**: Permissões para relatórios de telemetria
    - **Relatórios - Motoristas**: Permissões para relatórios de motoristas
    - **Relatórios - Pneus**: Permissões para relatórios de pneus

#### Aba HORÁRIOS

- **Seletor de Dia da Semana**: Dropdown com os dias da semana (Segunda a Domingo)
- **Hora Início**: Campo de hora para início do período permitido (formato HH:MM)
- **Hora Fim**: Campo de hora para fim do período permitido (formato HH:MM)
- **Botão de Adição**: Para adicionar um novo horário
- **Tabela de Horários**: 
    - Dia da Semana
    - Início
    - Fim
    - Botão de remoção

#### Aba CONTROLE POR IP

- **Campo IP**: Para inserir endereço IP permitido (formato xxx.xxx.xxx.xxx, permite uso de \* como coringa)
- **Botão de Adição**: Para adicionar um novo IP
- **Tabela de IPs Permitidos**: 
    - IP Permitido
    - Botão de remoção

#### Aba VEÍCULOS

- **Filtros para Veículos Disponíveis**: 
    - Categoria
    - Divisão
    - Tipo Veículo
    - Pesquisa (texto livre)
- **Filtros para Veículos Selecionados**: 
    - Categoria
    - Divisão
    - Tipo Veículo
    - Pesquisa (texto livre)
- **Lista de Veículos Disponíveis**: Exibe placas e informações dos veículos disponíveis
- **Lista de Veículos Selecionados**: Exibe placas e informações dos veículos associados ao grupo
- **Botões de ação**: 
    - Adicionar Todos: Adiciona todos os veículos filtrados
    - Adicionar: Adiciona o veículo selecionado
    - Remover: Remove o veículo selecionado
    - Remover Todos: Remove todos os veículos selecionados

#### Botões Principais (em todas as abas)

- **Gravar**: Salva as alterações
- **Excluir**: Remove o grupo (disponível apenas para grupos existentes)
- **Duplicar**: Cria uma cópia do grupo atual
- **Voltar**: Retorna à tela de listagem de grupos

## Fluxo de Trabalho

O sistema de Gerenciamento de Grupos de Acesso segue os seguintes fluxos principais:

### Fluxo de Listagem de Grupos

1. O usuário acessa a tela de listagem de grupos
2. O sistema exibe uma tabela com todos os grupos cadastrados
3. O usuário pode filtrar a lista por Nome, Login e Divisão
4. O usuário pode selecionar um grupo para edição ou criar um novo grupo

### Fluxo de Criação/Edição de Grupo

1. O usuário acessa o formulário (novo ou existente)
2. O usuário preenche os campos na aba DADOS
3. O usuário configura as permissões na aba PERMISSÕES
4. O usuário configura os horários permitidos na aba HORÁRIOS
5. O usuário configura os IPs permitidos na aba CONTROLE POR IP
6. O usuário associa veículos na aba VEÍCULOS
7. O usuário grava as alterações

### Fluxo de Duplicação de Grupo

1. O usuário seleciona um grupo existente
2. O usuário clica no botão "Duplicar"
3. O sistema cria uma cópia do grupo com as mesmas configurações
4. O usuário ajusta as informações necessárias
5. O usuário grava o novo grupo

### Fluxo de Exclusão de Grupo

1. O usuário seleciona um grupo existente
2. O usuário clica no botão "Excluir"
3. O sistema solicita confirmação
4. O usuário confirma a exclusão
5. O sistema remove o grupo

## Instruções Passo a Passo

### Como Criar um Novo Grupo de Acesso

1. Na tela de listagem, clique no botão "+" (Novo)
2. Preencha os campos obrigatórios na aba DADOS: 
    - Nome
    - Login
    - Senha
3. Selecione as permissões básicas desejadas
4. Mude para a aba PERMISSÕES
5. Selecione a versão do sistema
6. Marque as permissões específicas desejadas
7. Se necessário, restrinja o acesso por horários na aba HORÁRIOS
8. Se necessário, restrinja o acesso por IPs na aba CONTROLE POR IP
9. Se necessário, associe veículos na aba VEÍCULOS
10. Clique em "Gravar"

### Como Adicionar Restrição de Horário

1. Na aba HORÁRIOS, selecione o dia da semana
2. Digite a hora de início no formato HH:MM
3. Digite a hora de fim no formato HH:MM
4. Clique no botão "+" para adicionar
5. Repita o processo para cada dia/horário desejado

### Como Adicionar Restrição de IP

1. Na aba CONTROLE POR IP, digite o endereço IP no formato xxx.xxx.xxx.xxx 
    - Você pode usar \* como coringa (exemplo: 192.168.1.\*)
2. Clique no botão "+" para adicionar
3. Repita o processo para cada IP desejado

### Como Associar Veículos ao Grupo

1. Na aba VEÍCULOS, use os filtros para localizar os veículos desejados
2. Clique no botão "+" ao lado de cada veículo para adicioná-lo
3. Alternativamente, clique em "Adicionar Todos" para adicionar todos os veículos filtrados
4. Para remover veículos, clique no botão "-" ao lado do veículo ou em "Remover Todos"

### Como Duplicar um Grupo

1. Na tela de listagem, selecione o grupo desejado
2. Clique no botão "Duplicar"
3. O sistema criará uma cópia do grupo
4. Ajuste as informações conforme necessário
5. Clique em "Gravar"

## Regras de Negócio e Validações

### Validações da Aba DADOS

- Nome: Campo obrigatório
- Login: Campo obrigatório, mínimo 5 caracteres
- Senha: Obrigatória para novos grupos, mínimo 6 caracteres
- E-mail: Validação de formato de e-mail
- Descrição: Máximo 2045 caracteres

### Validações da Aba HORÁRIOS

- Os horários não podem se sobrepor para o mesmo dia da semana
- A hora de início deve ser anterior à hora de fim
- O formato deve ser HH:MM

### Validações da Aba CONTROLE POR IP

- O formato do IP deve ser válido (xxx.xxx.xxx.xxx)
- É permitido usar \* como coringa nas posições (exemplo: 192.168.*.*)
- Não é permitido cadastrar o mesmo IP mais de uma vez

### Regras de Permissões

- Usuários com perfil "Master" têm acesso a todas as funcionalidades
- Usuários com versão "BASIC" têm acesso limitado a funcionalidades básicas
- Usuários com versão "PRO" têm acesso a funcionalidades avançadas
- Usuários com versão "FAST" têm acesso a recursos específicos de alta performance
- A disponibilidade das funcionalidades depende da licença do cliente

### Restrições de Edição

- Usuários com acesso individual não podem criar ou editar grupos
- Usuários com acesso de grupo sem permissão "Master" têm limitações
- Usuários não podem alterar seus próprios grupos se não tiverem a permissão "Pode se Alterar"

## Perguntas Frequentes

### 1. Como funciona a restrição de horário?

R: A restrição de horário permite definir os dias da semana e horários específicos em que o grupo terá acesso ao sistema. Fora desses horários, o acesso será negado. Para configurar, acesse a aba HORÁRIOS e adicione os períodos permitidos.

### 2. É possível limitar o acesso apenas a certos endereços IP?

R: Sim, na aba CONTROLE POR IP, você pode adicionar os endereços IP que terão permissão para acessar o sistema com este grupo. Usuários tentando acessar de outros IPs receberão uma mensagem de acesso negado.

### 3. Como associar um veículo a mais de um grupo?

R: Um veículo pode ser associado a múltiplos grupos. Para isso, basta adicionar o veículo a cada grupo desejado através da aba VEÍCULOS. Não há limitação quanto ao número de grupos aos quais um veículo pode pertencer.

### 4. Qual a diferença entre as versões BASIC, PRO e FAST?

R: A versão BASIC oferece acesso às funcionalidades essenciais do sistema. A versão PRO adiciona recursos avançados como dashboards, controles detalhados de frota, roteirização e relatórios especializados. A versão FAST é uma variação com recursos de alta performance para ambientes específicos.

### 5. O que acontece se eu não associar nenhum veículo ao grupo?

R: Se nenhum veículo for associado ao grupo, os usuários deste grupo não terão acesso a nenhum veículo no sistema, mesmo tendo outras permissões configuradas. Para que possam visualizar e gerenciar veículos, é necessário associá-los na aba VEÍCULOS.

### 6. Posso criar um grupo sem restrições de horário ou IP?

R: Sim. Se não adicionar nenhuma restrição de horário ou IP, o grupo terá acesso irrestrito em relação a esses aspectos. As restrições só serão aplicadas se forem explicitamente configuradas.

### 7. Como duplicar um grupo existente?

R: Na tela de edição do grupo que deseja duplicar, clique no botão "Duplicar". O sistema criará uma cópia com todas as mesmas configurações, exceto pelo nome que deverá ser personalizado. Essa é uma forma rápida de criar grupos com configurações semelhantes.

### 8. Quais são as diferenças entre "Pode se Alterar" e "Pode Bloquear"?

R: A permissão "Pode se Alterar" permite que o usuário edite as configurações do próprio grupo. A permissão "Pode Bloquear" permite que o usuário bloqueie o acesso de outros grupos ou usuários ao sistema. São permissões independentes com propósitos diferentes.

### 9. O que significa a permissão "Master"?

R: A permissão "Master" concede acesso total ao sistema, permitindo configurar e acessar todas as funcionalidades disponíveis. Usuários com esta permissão podem criar, editar e excluir outros grupos, além de terem acesso irrestrito aos módulos do sistema.

### 10. Como configurar o acesso a relatórios específicos?

R: Na aba PERMISSÕES, existem seções específicas para diferentes tipos de relatórios (Veículos, Controle de Frota, Roteirização, etc.). Marque as caixas correspondentes aos relatórios que deseja permitir. Além disso, é necessário que a opção "Visualizar Relatórios" esteja marcada na aba DADOS.