sgmp/README_PERMISSOES.md

322 lines
9.0 KiB
Markdown

# 🔐 Sistema de Login, Senhas e Permissões - SGMP
Este documento explica como funciona o sistema de autenticação e controle de permissões do SGMP.
---
## 📋 Índice
1. [Sistema de Login](#sistema-de-login)
2. [Criação de Usuários](#criação-de-usuários)
3. [Perfis e Permissões](#perfis-e-permissões)
4. [Gerenciamento de Permissões](#gerenciamento-de-permissões)
5. [Regras de Acesso](#regras-de-acesso)
6. [Fluxo de Aprovação](#fluxo-de-aprovação)
---
## 🔑 Sistema de Login
### Autenticação
O SGMP utiliza autenticação integrada com o sistema **Winthor** (TOTVS):
- **Login**: Matrícula do funcionário (mesma do sistema Winthor)
- **Senha**: Senha do sistema Winthor
- **Validação**: As credenciais são validadas diretamente no banco Oracle do Winthor
### Processo de Login
1. O usuário acessa a página de login
2. Informa sua **matrícula** e **senha**
3. O sistema consulta o Winthor para validar as credenciais
4. Se válido:
- Cria/atualiza o registro `UsuarioSistema` no banco do SGMP
- Cria uma sessão Django para o usuário
- Redireciona para o Dashboard
5. Se inválido:
- Exibe mensagem de erro
- Permanece na página de login
### Primeiro Acesso
Quando um usuário faz login pela primeira vez:
- Um registro `UsuarioSistema` é criado automaticamente
- O perfil padrão é **GESTOR**
- O usuário fica **ativo** por padrão
- O nome é obtido do Winthor
---
## 👥 Criação de Usuários
### Criação Automática
Os usuários são criados **automaticamente** no primeiro login:
- Não é necessário criar usuários manualmente
- O sistema sincroniza com o Winthor
- A matrícula é usada como identificador único
### Criação Manual (Admin Django)
Para criar usuários manualmente ou ajustar dados:
1. Acesse `/admin/` (painel administrativo do Django)
2. Navegue até **Solicitações → Usuários do Sistema**
3. Crie ou edite usuários conforme necessário
**Campos importantes:**
- **Matrícula**: Deve corresponder à matrícula do Winthor
- **Nome**: Nome completo do usuário
- **Perfil**: Define as permissões (veja seção de Perfis)
- **Ativo**: Se desmarcado, o usuário não consegue fazer login
---
## 🎭 Perfis e Permissões
O sistema possui **4 perfis** com diferentes níveis de acesso:
### 1. GESTOR (Gestor)
**Permissões:**
- ✅ Criar solicitações (desligamento, admissão, movimentação)
- ✅ Visualizar suas próprias solicitações
- ✅ Editar solicitações em status "Rascunho"
- ✅ Enviar solicitações para aprovação
- ✅ Gerenciar permissões de todos os usuários
- ❌ Não pode aprovar/reprovar solicitações
**Uso:** Gestores de equipe que iniciam processos de RH.
---
### 2. GG (Gente e Gestão)
**Permissões:**
- ✅ Visualizar solicitações com status "ENVIADA"
- ✅ Aprovar/reprovar solicitações na etapa GG
- ✅ Visualizar detalhes completos das solicitações
- ✅ Gerenciar permissões de todos os usuários
- ❌ Não pode criar novas solicitações
**Uso:** Primeira etapa de aprovação no fluxo.
---
### 3. CONTROLADORIA
**Permissões:**
- ✅ Visualizar solicitações aprovadas pela GG (status "APROVADA_GG")
- ✅ Aprovar/reprovar solicitações na etapa Controladoria
- ✅ Visualizar detalhes completos das solicitações
- ✅ Gerenciar permissões de todos os usuários
- ❌ Não pode criar novas solicitações
**Uso:** Segunda etapa de aprovação (análise financeira/orçamentária).
---
### 4. DIRETORIA
**Permissões:**
- ✅ Visualizar solicitações aprovadas pela Controladoria (status "APROVADA_CONTROLADORIA")
- ✅ Aprovar/reprovar solicitações na etapa Diretoria (aprovação final)
- ✅ Visualizar detalhes completos das solicitações
- ✅ Gerenciar permissões de todos os usuários
- ❌ Não pode criar novas solicitações
**Uso:** Aprovação final e decisão executiva.
---
## ⚙️ Gerenciamento de Permissões
### Acessando a Página de Permissões
1. Faça login no sistema
2. No menu lateral, clique em **"Administração"** (ícone ⚙️)
3. Você será redirecionado para a página de gerenciamento de permissões
### Funcionalidades
A página de permissões permite:
- **Visualizar todos os usuários** do sistema
- **Buscar usuários** por nome ou matrícula
- **Alterar o perfil** de qualquer usuário (incluindo o seu próprio)
- **Ver o status** (ativo/inativo) de cada usuário
- **Identificar seu próprio perfil** (marcado como "Você")
### Como Alterar um Perfil
1. Na tabela de usuários, localize o usuário desejado
2. Na coluna "Alterar Perfil", selecione o novo perfil no dropdown
3. Clique em **"Atualizar"**
4. Uma mensagem de confirmação será exibida
### Regras Importantes
- ✅ Qualquer usuário autenticado pode alterar permissões
- ✅ Você pode alterar seu próprio perfil
- ✅ Você pode alterar o perfil de outros usuários
- ⚠️ Alterar seu próprio perfil pode afetar suas permissões imediatamente
---
## 🔒 Regras de Acesso
### Dashboard
O dashboard exibe diferentes informações conforme o perfil:
#### GESTOR
- Vê apenas suas próprias solicitações
- Pode filtrar por status (Total, Pendentes, Aprovadas, Reprovadas)
- Vê solicitações em todos os status (incluindo "Rascunho")
#### GG, CONTROLADORIA, DIRETORIA
- Vê apenas solicitações pendentes na sua etapa
- Não vê solicitações em "Rascunho"
- Não vê solicitações já finalizadas ou reprovadas
### Criação de Solicitações
- **Apenas GESTOR** pode criar solicitações
- Outros perfis verão mensagem de erro se tentarem acessar formulários de criação
### Visualização de Detalhes
- Todos os perfis podem visualizar detalhes de solicitações
- O formulário de aprovação só aparece para perfis com permissão de aprovar
### Aprovação/Reprovação
- **GESTOR** não pode aprovar/reprovar suas próprias solicitações (após sair de "Rascunho")
- Cada perfil só pode aprovar na sua etapa específica do fluxo
- O solicitante não pode aprovar sua própria solicitação
---
## 📊 Fluxo de Aprovação
### Estados da Solicitação
1. **RASCUNHO**: Solicitação criada, ainda não enviada
2. **ENVIADA**: Enviada para aprovação (visível para GG)
3. **APROVADA_GG**: Aprovada pela GG (visível para Controladoria)
4. **APROVADA_CONTROLADORIA**: Aprovada pela Controladoria (visível para Diretoria)
5. **FINALIZADA**: Aprovada pela Diretoria (processo concluído)
6. **REPROVADA**: Reprovação em qualquer etapa (processo encerrado)
### Fluxo Completo
```
GESTOR cria solicitação
Status: RASCUNHO
GESTOR envia para aprovação
Status: ENVIADA
GG analisa e aprova/reprova
Se aprovada → Status: APROVADA_GG
CONTROLADORIA analisa e aprova/reprova
Se aprovada → Status: APROVADA_CONTROLADORIA
DIRETORIA analisa e aprova/reprova
Se aprovada → Status: FINALIZADA
```
### Regras de Aprovação
- Cada etapa só pode ser aprovada pelo perfil correspondente
- Uma reprovação em qualquer etapa encerra o processo
- O solicitante não pode aprovar sua própria solicitação
- Solicitações em "RascUNHO" só são visíveis para o criador
---
## 🛠️ Solução de Problemas
### Não consigo fazer login
**Possíveis causas:**
- Matrícula ou senha incorretas
- Usuário inativo no sistema
- Problema de conexão com o Winthor
**Solução:**
1. Verifique suas credenciais do Winthor
2. Acesse o admin Django (`/admin/`) e verifique se o usuário está ativo
3. Verifique a conexão com o banco Oracle
### Não vejo minhas solicitações
**Possíveis causas:**
- Perfil incorreto
- Solicitações em status "Rascunho" (só visíveis para o criador)
- Filtro aplicado no dashboard
**Solução:**
1. Verifique seu perfil na página de permissões
2. Se for GESTOR, certifique-se de que criou as solicitações
3. Limpe os filtros no dashboard
### Não consigo aprovar solicitações
**Possíveis causas:**
- Perfil sem permissão de aprovação
- Tentando aprovar sua própria solicitação
- Solicitação não está na sua etapa
**Solução:**
1. Verifique seu perfil (deve ser GG, CONTROLADORIA ou DIRETORIA)
2. Certifique-se de que não é o solicitante
3. Verifique se a solicitação está no status correto para sua etapa
### Não consigo criar solicitações
**Possíveis causas:**
- Perfil não é GESTOR
**Solução:**
1. Acesse a página de permissões
2. Altere seu perfil para GESTOR
3. Faça logout e login novamente
---
## 📝 Notas Importantes
1. **Senhas**: As senhas são gerenciadas pelo Winthor. O SGMP não armazena senhas.
2. **Sincronização**: O nome do usuário é sincronizado do Winthor no primeiro login.
3. **Perfil Padrão**: Novos usuários recebem automaticamente o perfil GESTOR.
4. **Ativação**: Usuários podem ser desativados no admin Django, impedindo login.
5. **Segurança**: Qualquer usuário autenticado pode gerenciar permissões. Considere restringir isso se necessário.
---
## 🔗 Links Úteis
- **Página de Login**: `/login/`
- **Dashboard**: `/solicitacoes/`
- **Gerenciar Permissões**: `/solicitacoes/permissoes/`
- **Admin Django**: `/admin/`
---
**Última atualização**: 2024