An open API service indexing awesome lists of open source software.

https://github.com/andrefelipeufcg/matrizpermissoes

Plugin GLPI (v10/v11) para geração e exportação de matriz visual de permissões de usuários (Perfis x Grupos).
https://github.com/andrefelipeufcg/matrizpermissoes

glpi glpi-plugin glpi10 glpi11 php

Last synced: about 2 months ago
JSON representation

Plugin GLPI (v10/v11) para geração e exportação de matriz visual de permissões de usuários (Perfis x Grupos).

Awesome Lists containing this project

README

          

# Plugin GLPI - Matriz de Permissões

Um plugin nativo para o GLPI (compatível com as versões 10 e 11) que gera uma visualização rápida e exportável das permissões dos usuários, cruzando Perfis e Grupos de acordo com as Entidades selecionadas.

Desenvolvido para facilitar a auditoria de acessos e a extração de relatórios estruturados.

## ✨ Funcionalidades

* **Geração de Matriz Visual:** Tabela dinâmica que exibe os usuários ativos/inativos e marca com um "X" os seus respectivos perfis e grupos.
* **Filtros Visuais Dinâmicos:** Possibilidade de ocultar/mostrar colunas específicas (perfis e grupos) diretamente na tela.
* **Controle de Acesso Nativo (RBAC):** Integrado nativamente à tela de Perfis do GLPI, permitindo definir exatamente quem tem o direito de visualizar a ferramenta.
* **Filtro Inteligente por Entidade:** Campos de seleção integrados com a API do Select2 nativa do GLPI. Ao selecionar a entidade do perfil, a entidade do grupo é sincronizada automaticamente.
* **UX Avançada (Sticky Columns):** Congelamento dinâmico da linha de cabeçalho e das colunas de identificação do usuário (Ativo, Usuário, Nome, Sobrenome), permitindo rolar matrizes extensas sem perder a referência.
* **Exportação para CSV:** Download da matriz gerada em formato `.csv` (codificação UTF-8) com um único clique, pronta para ser aberta no Excel ou planilhas.
* **Compatibilidade e Segurança:** Totalmente adaptado para o motor do GLPI 11, utilizando tipagem estrita do PHP 8 (`: bool`) e o novo sistema de tokens de sessão (`_glpi_csrf_token`).

## 📋 Pré-requisitos

* **GLPI:** Versão 10.0.0 ou superior.
* **PHP:** Versão 8.0 ou superior.
* Acesso ao servidor web (terminal SSH) para ajuste de permissões.

## 🚀 Como Instalar

1. **Faça o download do plugin** e extraia os arquivos.
2. **Renomeie a pasta** obrigatoriamente para `matrizpermissoes` (sem caracteres especiais ou sublinhados, exigência do GLPI).
3. Envie a pasta para o diretório de plugins do seu servidor GLPI:
```bash
/var/www/seu_glpi/plugins/matrizpermissoes
```

4. **Ajuste as permissões no servidor (Importante):**
O servidor web precisa ter permissão de leitura para compilar o Autoloader. Acesse seu terminal e execute:
```bash
sudo chown -R www-data:www-data /var/www/seu_glpi/plugins/matrizpermissoes
sudo chmod -R 755 /var/www/seu_glpi/plugins/matrizpermissoes
```
*(Nota: Se o seu servidor utilizar CentOS/RedHat, o usuário pode ser o `apache` em vez de `www-data`).*

5. **Limpe o Cache (Para garantir a leitura da classe no GLPI 11):**
```bash
sudo -u www-data php /var/www/seu_glpi/bin/console cache:clear
sudo systemctl restart apache2
```

6. **Ative no GLPI:**
* Acesse o sistema com o perfil de Super-Admin.
* Navegue até **Configurar > Plugins**.
* Localize o "Matriz de Permissões", clique em **Instalar** e, em seguida, em **Habilitar**.

## 🔒 Controle de Acesso (Permissões)

Por padrão, logo após a instalação, **todos os perfis existentes** recebem permissão automática para visualizar a Matriz de Permissões. O bloqueio funciona por exceção.

Caso deseje que algum perfil específico **NÃO** tenha acesso à ferramenta:
1. Navegue até **Administração > Perfis**.
2. Clique no perfil que deseja restringir.
3. No menu lateral, clique na aba **Matriz de Permissões**.
4. Altere a opção para **Não** e clique em Salvar.
*(O menu "Ferramentas > Matriz de Permissões" deixará de ser exibido para os usuários daquele perfil).*

## 📖 Como Usar

1. No menu do GLPI, vá em **Ferramentas > Matriz de Permissões**.
2. Selecione a entidade desejada nos campos disponíveis.
3. Clique em **Gerar Matriz de Permissões**.
4. Utilize o botão **Ocultar/Mostrar Colunas (Filtro Visual)** para refinar a tabela na tela, se necessário.
5. Visualize os dados em tela ou clique em **Exportar para CSV** para fazer o download.

## 🛠️ Estrutura de Diretórios

* `setup.php` e `hook.php`: Inicialização e registros de hooks no ecossistema do GLPI, incluindo a injeção inicial de permissões no banco de dados.
* `inc/matriz.class.php`: Classe de controle principal e renderização do menu superior.
* `inc/profile.class.php`: Injeção da aba de configuração na tela nativa de Perfis.
* `front/matriz.php`: Interface visual do gerador principal (seleção de entidades).
* `front/processa_matriz.php`: Motor de busca no banco de dados, geração da tabela HTML com UX avançada e exportação CSV.
* `front/profile.form.php`: Processador de salvamento das permissões.

## 📄 Licença

Este projeto está licenciado sob a licença GPLv2+, seguindo o padrão do framework GLPI.