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>
This commit is contained in:
2026-02-04 07:25:51 -03:00
commit 6215759045
28 changed files with 1554 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
photos:
max_count: 5
ldap_attribute: 'jpegPhoto'

View File

@@ -0,0 +1,20 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_bio
module:
- text
- user
id: user.user.field_user_bio
field_name: field_user_bio
entity_type: user
bundle: user
label: Biografia
description: 'Uma breve descrição sobre o usuário.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: text_long

View File

@@ -0,0 +1,19 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_category
module:
- user
id: user.user.field_user_category
field_name: field_user_category
entity_type: user
bundle: user
label: Categoria
description: 'Categoria do usuário.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View File

@@ -0,0 +1,30 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_default_photo
- media.type.image
module:
- media
- user
id: user.user.field_user_default_photo
field_name: field_user_default_photo
entity_type: user
bundle: user
label: Foto Padrão
description: 'Selecione a foto principal do perfil.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:media'
handler_settings:
target_bundles:
image: image
sort:
field: _none
direction: ASC
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

View File

@@ -0,0 +1,19 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_dept_code
module:
- user
id: user.user.field_user_dept_code
field_name: field_user_dept_code
entity_type: user
bundle: user
label: Código do Departamento
description: 'Código do departamento do usuário.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View File

@@ -0,0 +1,19 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_name
module:
- user
id: user.user.field_user_name
field_name: field_user_name
entity_type: user
bundle: user
label: Nome
description: 'Nome completo do usuário.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: string

View File

@@ -0,0 +1,20 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_phone
module:
- telephone
- user
id: user.user.field_user_phone
field_name: field_user_phone
entity_type: user
bundle: user
label: Telefone
description: 'Número de telefone do usuário.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings: { }
field_type: telephone

View File

@@ -0,0 +1,30 @@
langcode: pt-br
status: true
dependencies:
config:
- field.storage.user.field_user_photos
- media.type.image
module:
- media
- user
id: user.user.field_user_photos
field_name: field_user_photos
entity_type: user
bundle: user
label: Fotos
description: 'Fotos do usuário.'
required: false
translatable: false
default_value: { }
default_value_callback: ''
settings:
handler: 'default:media'
handler_settings:
target_bundles:
image: image
sort:
field: _none
direction: ASC
auto_create: false
auto_create_bundle: ''
field_type: entity_reference

View File

@@ -0,0 +1,18 @@
langcode: pt-br
status: true
dependencies:
module:
- text
- user
id: user.field_user_bio
field_name: field_user_bio
entity_type: user
type: text_long
settings: { }
module: text
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,20 @@
langcode: pt-br
status: true
dependencies:
module:
- user
id: user.field_user_category
field_name: field_user_category
entity_type: user
type: string
settings:
max_length: 255
is_ascii: false
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,19 @@
langcode: pt-br
status: true
dependencies:
module:
- media
- user
id: user.field_user_default_photo
field_name: field_user_default_photo
entity_type: user
type: entity_reference
settings:
target_type: media
module: core
locked: false
cardinality: 1
translatable: false
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,20 @@
langcode: pt-br
status: true
dependencies:
module:
- user
id: user.field_user_dept_code
field_name: field_user_dept_code
entity_type: user
type: string
settings:
max_length: 255
is_ascii: false
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,20 @@
langcode: pt-br
status: true
dependencies:
module:
- user
id: user.field_user_name
field_name: field_user_name
entity_type: user
type: string
settings:
max_length: 255
is_ascii: false
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,18 @@
langcode: pt-br
status: true
dependencies:
module:
- telephone
- user
id: user.field_user_phone
field_name: field_user_phone
entity_type: user
type: telephone
settings: { }
module: telephone
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View File

@@ -0,0 +1,19 @@
langcode: pt-br
status: true
dependencies:
module:
- media
- user
id: user.field_user_photos
field_name: field_user_photos
entity_type: user
type: entity_reference
settings:
target_type: media
module: core
locked: false
cardinality: -1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false