mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/site_users.git
synced 2026-03-08 01:17:41 -03:00
feat: View mode por role/usuário com seletor de visibilidade no perfil
- Cria view mode e display 'restricted' (template mostra só username + mensagem) - Adiciona campo field_user_selected_view_mode (string, default: restricted) - update_10006: provisiona view mode, display e campo; inicializa role_view_modes - Seletor de visibilidade no form de edição do perfil (owner e admin) - hook_entity_view_mode_alter lê o campo e valida existência do display - Formulário de admin: checkboxes de view modes por role (exceto anonymous e authenticated) - Schema YAML completo para site_users.settings incluindo role_view_modes - Tradução pt-BR de todas as novas strings Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,3 +8,4 @@ user_editable_fields:
|
||||
field_user_bio: true
|
||||
field_user_social_links: true
|
||||
field_user_photos: true
|
||||
role_view_modes: { }
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.user.field_user_selected_view_mode
|
||||
module:
|
||||
- user
|
||||
id: user.user.field_user_selected_view_mode
|
||||
field_name: field_user_selected_view_mode
|
||||
entity_type: user
|
||||
bundle: user
|
||||
label: 'Profile visibility'
|
||||
description: 'Controls how this profile appears to other visitors.'
|
||||
required: false
|
||||
translatable: false
|
||||
default_value:
|
||||
- value: restricted
|
||||
default_value_callback: ''
|
||||
settings: { }
|
||||
field_type: string
|
||||
@@ -0,0 +1,20 @@
|
||||
langcode: en
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- user
|
||||
id: user.field_user_selected_view_mode
|
||||
field_name: field_user_selected_view_mode
|
||||
entity_type: user
|
||||
type: string
|
||||
settings:
|
||||
max_length: 64
|
||||
is_ascii: true
|
||||
case_sensitive: false
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: false
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
32
config/schema/site_users.schema.yml
Normal file
32
config/schema/site_users.schema.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
site_users.settings:
|
||||
type: config_object
|
||||
label: 'Site Users settings'
|
||||
mapping:
|
||||
photos:
|
||||
type: mapping
|
||||
label: 'Photo settings'
|
||||
mapping:
|
||||
max_count:
|
||||
type: integer
|
||||
label: 'Maximum number of photos'
|
||||
ldap_attribute:
|
||||
type: string
|
||||
label: 'LDAP photo attribute'
|
||||
ldap_sync_enabled:
|
||||
type: boolean
|
||||
label: 'Enable LDAP photo synchronization'
|
||||
user_editable_fields:
|
||||
type: sequence
|
||||
label: 'User-editable profile fields'
|
||||
sequence:
|
||||
type: boolean
|
||||
label: 'Field editable'
|
||||
role_view_modes:
|
||||
type: sequence
|
||||
label: 'Allowed view modes per role'
|
||||
sequence:
|
||||
type: sequence
|
||||
label: 'View modes for role'
|
||||
sequence:
|
||||
type: string
|
||||
label: 'View mode machine name'
|
||||
Reference in New Issue
Block a user