{"id":49614832,"url":"https://github.com/andrefelipeufcg/matrizpermissoes","last_synced_at":"2026-05-04T21:02:34.840Z","repository":{"id":350534443,"uuid":"1207210916","full_name":"andrefelipeufcg/matrizpermissoes","owner":"andrefelipeufcg","description":"Plugin GLPI (v10/v11) para geração e exportação de matriz visual de permissões de usuários (Perfis x Grupos).","archived":false,"fork":false,"pushed_at":"2026-04-27T20:06:56.000Z","size":84,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-27T20:27:09.416Z","etag":null,"topics":["glpi","glpi-plugin","glpi10","glpi11","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrefelipeufcg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-10T17:38:51.000Z","updated_at":"2026-04-17T12:42:01.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/andrefelipeufcg/matrizpermissoes","commit_stats":null,"previous_names":["andrefelipeufcg/matrizpermissoes"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andrefelipeufcg/matrizpermissoes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipeufcg%2Fmatrizpermissoes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipeufcg%2Fmatrizpermissoes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipeufcg%2Fmatrizpermissoes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipeufcg%2Fmatrizpermissoes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrefelipeufcg","download_url":"https://codeload.github.com/andrefelipeufcg/matrizpermissoes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrefelipeufcg%2Fmatrizpermissoes/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32624693,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["glpi","glpi-plugin","glpi10","glpi11","php"],"created_at":"2026-05-04T21:00:51.164Z","updated_at":"2026-05-04T21:02:34.834Z","avatar_url":"https://github.com/andrefelipeufcg.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Plugin GLPI - Matriz de Permissões\n\nUm 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.\n\nDesenvolvido para facilitar a auditoria de acessos e a extração de relatórios estruturados.\n\n## ✨ Funcionalidades\n\n* **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.\n* **Filtros Visuais Dinâmicos:** Possibilidade de ocultar/mostrar colunas específicas (perfis e grupos) diretamente na tela.\n* **Controle de Acesso Nativo (RBAC):** Integrado nativamente à tela de Perfis do GLPI, permitindo definir exatamente quem tem o direito de visualizar a ferramenta.\n* **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.\n* **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.\n* **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.\n* **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`).\n\n## 📋 Pré-requisitos\n\n* **GLPI:** Versão 10.0.0 ou superior.\n* **PHP:** Versão 8.0 ou superior.\n* Acesso ao servidor web (terminal SSH) para ajuste de permissões.\n\n## 🚀 Como Instalar\n\n1. **Faça o download do plugin** e extraia os arquivos.\n2. **Renomeie a pasta** obrigatoriamente para `matrizpermissoes` (sem caracteres especiais ou sublinhados, exigência do GLPI).\n3. Envie a pasta para o diretório de plugins do seu servidor GLPI:\n   ```bash\n   /var/www/seu_glpi/plugins/matrizpermissoes\n   ```\n\n4. **Ajuste as permissões no servidor (Importante):**\n   O servidor web precisa ter permissão de leitura para compilar o Autoloader. Acesse seu terminal e execute:\n   ```bash\n   sudo chown -R www-data:www-data /var/www/seu_glpi/plugins/matrizpermissoes\n   sudo chmod -R 755 /var/www/seu_glpi/plugins/matrizpermissoes\n   ```\n   *(Nota: Se o seu servidor utilizar CentOS/RedHat, o usuário pode ser o `apache` em vez de `www-data`).*\n\n5. **Limpe o Cache (Para garantir a leitura da classe no GLPI 11):**\n   ```bash\n   sudo -u www-data php /var/www/seu_glpi/bin/console cache:clear\n   sudo systemctl restart apache2\n   ```\n\n6. **Ative no GLPI:**\n   * Acesse o sistema com o perfil de Super-Admin.\n   * Navegue até **Configurar \u003e Plugins**.\n   * Localize o \"Matriz de Permissões\", clique em **Instalar** e, em seguida, em **Habilitar**.\n\n## 🔒 Controle de Acesso (Permissões)\n\nPor 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. \n\nCaso deseje que algum perfil específico **NÃO** tenha acesso à ferramenta:\n1. Navegue até **Administração \u003e Perfis**.\n2. Clique no perfil que deseja restringir.\n3. No menu lateral, clique na aba **Matriz de Permissões**.\n4. Altere a opção para **Não** e clique em Salvar. \n*(O menu \"Ferramentas \u003e Matriz de Permissões\" deixará de ser exibido para os usuários daquele perfil).*\n\n## 📖 Como Usar\n\n1. No menu do GLPI, vá em **Ferramentas \u003e Matriz de Permissões**.\n2. Selecione a entidade desejada nos campos disponíveis.\n3. Clique em **Gerar Matriz de Permissões**.\n4. Utilize o botão **Ocultar/Mostrar Colunas (Filtro Visual)** para refinar a tabela na tela, se necessário.\n5. Visualize os dados em tela ou clique em **Exportar para CSV** para fazer o download.\n\n## 🛠️ Estrutura de Diretórios\n\n* `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.\n* `inc/matriz.class.php`: Classe de controle principal e renderização do menu superior.\n* `inc/profile.class.php`: Injeção da aba de configuração na tela nativa de Perfis.\n* `front/matriz.php`: Interface visual do gerador principal (seleção de entidades).\n* `front/processa_matriz.php`: Motor de busca no banco de dados, geração da tabela HTML com UX avançada e exportação CSV.\n* `front/profile.form.php`: Processador de salvamento das permissões.\n\n## 📄 Licença\n\nEste projeto está licenciado sob a licença GPLv2+, seguindo o padrão do framework GLPI.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrefelipeufcg%2Fmatrizpermissoes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrefelipeufcg%2Fmatrizpermissoes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrefelipeufcg%2Fmatrizpermissoes/lists"}