Files
site_users/README.md
Quintino A. G. Souza 6215759045 feat: Módulo Site Users para customização de perfis de usuário
Módulo Drupal para gerenciamento de campos e fotos de perfil de usuários:
- Campos customizados: nome, telefone, categoria, departamento, biografia
- Suporte a múltiplas fotos com seleção de foto padrão
- Controle de permissões granular para visualização e edição
- Bloco de informações do usuário para exibição em páginas
- Configurações administrativas para limite de fotos e integração LDAP

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 07:35:26 -03:00

142 lines
4.0 KiB
Markdown

# Site Users
Módulo Drupal para customização de perfis de usuário, incluindo campos adicionais e gerenciamento de fotos.
## Funcionalidades
- **Campos de perfil customizados:**
- Nome completo
- Telefone
- Categoria
- Código do departamento
- Biografia
- **Gerenciamento de fotos:**
- Suporte a múltiplas fotos por usuário
- Seleção de foto padrão
- Limite configurável de quantidade de fotos
- Integração com Media Library
- **Controle de permissões granular:**
- Visualizar/editar campos do próprio perfil
- Visualizar/editar campos de qualquer usuário
- Gerenciar fotos próprias ou de outros usuários
- **Bloco de informações:**
- Exibe dados do usuário em páginas de perfil
- Template customizável via Twig
## Requisitos
- Drupal 10 ou 11
- Módulos core: User, Telephone, Text, Media, Media Library
## Instalação
1. Copie o módulo para `modules/custom/site_users`
2. Ative o módulo via Drush ou interface administrativa:
```bash
drush en site_users
```
## Configuração
Acesse as configurações em:
**Administração > Configuração > Módulos Locais > Site Users**
`/admin/config/local-modules/site-users`
### Opções disponíveis
| Configuração | Descrição | Padrão |
|--------------|-----------|--------|
| Quantidade de fotos | Número máximo de fotos por usuário | 5 |
| Atributo LDAP | Nome do atributo LDAP para foto (se aplicável) | jpegPhoto |
## Permissões
| Permissão | Descrição |
|-----------|-----------|
| `administer site_users settings` | Administrar configurações do módulo |
| `view own user profile fields` | Visualizar campos do próprio perfil |
| `view any user profile fields` | Visualizar campos de qualquer usuário |
| `edit own user profile fields` | Editar campos do próprio perfil |
| `edit any user profile fields` | Editar campos de qualquer usuário |
| `manage own user photos` | Gerenciar próprias fotos |
| `manage user photos` | Gerenciar fotos de qualquer usuário |
## Uso do Bloco
O módulo fornece o bloco **"Informações do Usuário"** que pode ser posicionado em regiões do tema para exibir informações do perfil nas páginas `/user/{id}`.
Para adicionar o bloco:
1. Acesse **Estrutura > Layout de blocos**
2. Adicione o bloco "Informações do Usuário" na região desejada
3. Configure a visibilidade para páginas de usuário
## Customização de Templates
Os templates podem ser sobrescritos no tema:
- `site-user-info-block.html.twig` - Bloco de informações do usuário
- `user--full.html.twig` - Página completa do usuário
### Variáveis disponíveis no bloco
```twig
{{ user_info.uid }} {# ID do usuário #}
{{ user_info.username }} {# Nome de exibição #}
{{ user_info.name }} {# Nome completo #}
{{ user_info.phone }} {# Telefone #}
{{ user_info.category }} {# Categoria #}
{{ user_info.dept_code }} {# Código do departamento #}
{{ user_info.bio }} {# Biografia #}
{{ user_info.photo_url }} {# URL da foto padrão #}
{{ user_info.photo_alt }} {# Texto alternativo da foto #}
{{ user }} {# Entidade completa do usuário #}
```
## API
### Obter foto padrão de um usuário
```php
$photo = site_users_get_default_photo($user);
if ($photo instanceof \Drupal\media\MediaInterface) {
// Usar a foto
}
```
## Estrutura do Módulo
```
site_users/
├── config/
│ ├── install/
│ │ └── site_users.settings.yml
│ └── optional/
│ └── field.*.yml
├── css/
│ └── site-user-info-block.css
├── src/
│ ├── Form/
│ │ └── SiteUsersSettingsForm.php
│ └── Plugin/Block/
│ └── UserInfoBlock.php
├── templates/
│ ├── site-user-info-block.html.twig
│ └── user--full.html.twig
├── site_users.info.yml
├── site_users.install
├── site_users.libraries.yml
├── site_users.links.menu.yml
├── site_users.module
├── site_users.permissions.yml
└── site_users.routing.yml
```
## Licença
Este módulo é software livre distribuído sob a licença GPL-2.0-or-later.