mirror of
https://gitlab.unicamp.br/infimecc_drupal11_modules/ldap_groups_sync.git
synced 2026-03-10 18:27:42 -03:00
Adiciona submódulo ldap_courses_sync para sincronização de cursos via LDAP
Cria o módulo modules/ldap_courses_sync/ seguindo o mesmo padrão do ldap_research_groups_sync, com bundle `course`, campos field_course_* e field_user_courses, sincronização de membros via atributo LDAP, e aba "Courses Sync" no painel unificado. Também registra `courses` no módulo pai (routing, UnifiedAccessRulesForm e GlobalAccessRuleForm) para suporte a access rules unificadas. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.field.group.course.field_course_code
|
||||
- field.field.group.course.field_course_coord
|
||||
- field.field.group.course.field_course_coord_assoc
|
||||
- field.field.group.course.field_course_mail
|
||||
- field.field.group.course.field_course_phone
|
||||
- field.field.group.course.field_course_department
|
||||
- group.type.course
|
||||
module:
|
||||
- path
|
||||
id: group.course.default
|
||||
targetEntityType: group
|
||||
bundle: course
|
||||
mode: default
|
||||
content:
|
||||
field_course_code:
|
||||
type: string_textfield
|
||||
weight: 122
|
||||
region: content
|
||||
settings:
|
||||
size: 60
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
field_course_mail:
|
||||
type: email_default
|
||||
weight: 125
|
||||
region: content
|
||||
settings:
|
||||
placeholder: ''
|
||||
size: 60
|
||||
third_party_settings: { }
|
||||
field_course_phone:
|
||||
type: string_textfield
|
||||
weight: 124
|
||||
region: content
|
||||
settings:
|
||||
size: 60
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
field_course_coord:
|
||||
type: entity_reference_autocomplete
|
||||
weight: 126
|
||||
region: content
|
||||
settings:
|
||||
match_operator: CONTAINS
|
||||
match_limit: 10
|
||||
size: 60
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
field_course_coord_assoc:
|
||||
type: entity_reference_autocomplete
|
||||
weight: 127
|
||||
region: content
|
||||
settings:
|
||||
match_operator: CONTAINS
|
||||
match_limit: 10
|
||||
size: 60
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
field_course_department:
|
||||
type: entity_reference_autocomplete
|
||||
weight: 25
|
||||
region: content
|
||||
settings:
|
||||
match_operator: CONTAINS
|
||||
match_limit: 10
|
||||
size: 60
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
label:
|
||||
type: string_textfield
|
||||
weight: -5
|
||||
region: content
|
||||
settings:
|
||||
size: 60
|
||||
placeholder: ''
|
||||
third_party_settings: { }
|
||||
langcode:
|
||||
type: language_select
|
||||
weight: 2
|
||||
region: content
|
||||
settings:
|
||||
include_locked: true
|
||||
third_party_settings: { }
|
||||
path:
|
||||
type: path
|
||||
weight: 30
|
||||
region: content
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
status:
|
||||
type: boolean_checkbox
|
||||
weight: 120
|
||||
region: content
|
||||
settings:
|
||||
display_label: true
|
||||
third_party_settings: { }
|
||||
hidden:
|
||||
uid: true
|
||||
@@ -0,0 +1,81 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.field.group.course.field_course_code
|
||||
- field.field.group.course.field_course_coord
|
||||
- field.field.group.course.field_course_coord_assoc
|
||||
- field.field.group.course.field_course_mail
|
||||
- field.field.group.course.field_course_phone
|
||||
- field.field.group.course.field_course_department
|
||||
- group.type.course
|
||||
module:
|
||||
- options
|
||||
id: group.course.default
|
||||
targetEntityType: group
|
||||
bundle: course
|
||||
mode: default
|
||||
content:
|
||||
field_course_code:
|
||||
type: string
|
||||
label: above
|
||||
settings:
|
||||
link_to_entity: false
|
||||
third_party_settings: { }
|
||||
weight: -3
|
||||
region: content
|
||||
field_course_mail:
|
||||
type: basic_string
|
||||
label: above
|
||||
settings: { }
|
||||
third_party_settings: { }
|
||||
weight: 0
|
||||
region: content
|
||||
field_course_phone:
|
||||
type: string
|
||||
label: above
|
||||
settings:
|
||||
link_to_entity: false
|
||||
third_party_settings: { }
|
||||
weight: -1
|
||||
region: content
|
||||
field_course_coord:
|
||||
type: entity_reference_label
|
||||
label: above
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 1
|
||||
region: content
|
||||
field_course_coord_assoc:
|
||||
type: entity_reference_label
|
||||
label: above
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 2
|
||||
region: content
|
||||
field_course_department:
|
||||
type: entity_reference_label
|
||||
label: above
|
||||
settings:
|
||||
link: true
|
||||
third_party_settings: { }
|
||||
weight: 25
|
||||
region: content
|
||||
label:
|
||||
type: string
|
||||
label: hidden
|
||||
settings:
|
||||
link_to_entity: false
|
||||
third_party_settings: { }
|
||||
weight: -5
|
||||
region: content
|
||||
hidden:
|
||||
changed: true
|
||||
created: true
|
||||
entity_print_view_epub: true
|
||||
entity_print_view_pdf: true
|
||||
entity_print_view_word_docx: true
|
||||
langcode: true
|
||||
uid: true
|
||||
@@ -0,0 +1,18 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.group.field_course_code
|
||||
- group.type.course
|
||||
id: group.course.field_course_code
|
||||
field_name: field_course_code
|
||||
entity_type: group
|
||||
bundle: course
|
||||
label: 'Código'
|
||||
description: 'Código do curso (chave de sincronização LDAP)'
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings: { }
|
||||
field_type: string
|
||||
@@ -0,0 +1,30 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.group.field_course_coord
|
||||
- group.type.course
|
||||
module:
|
||||
- user
|
||||
id: group.course.field_course_coord
|
||||
field_name: field_course_coord
|
||||
entity_type: group
|
||||
bundle: course
|
||||
label: Coordenador
|
||||
description: 'Usuário responsável pela coordenação do curso'
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings:
|
||||
handler: 'default:user'
|
||||
handler_settings:
|
||||
target_bundles: null
|
||||
sort:
|
||||
field: _none
|
||||
direction: ASC
|
||||
auto_create: false
|
||||
filter:
|
||||
type: _none
|
||||
include_anonymous: false
|
||||
field_type: entity_reference
|
||||
@@ -0,0 +1,30 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.group.field_course_coord_assoc
|
||||
- group.type.course
|
||||
module:
|
||||
- user
|
||||
id: group.course.field_course_coord_assoc
|
||||
field_name: field_course_coord_assoc
|
||||
entity_type: group
|
||||
bundle: course
|
||||
label: 'Coordenador Associado'
|
||||
description: 'Usuário responsável pela coordenação associada do curso'
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings:
|
||||
handler: 'default:user'
|
||||
handler_settings:
|
||||
target_bundles: null
|
||||
sort:
|
||||
field: _none
|
||||
direction: ASC
|
||||
auto_create: false
|
||||
filter:
|
||||
type: _none
|
||||
include_anonymous: false
|
||||
field_type: entity_reference
|
||||
@@ -0,0 +1,28 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.group.field_course_department
|
||||
- group.type.department
|
||||
- group.type.course
|
||||
id: group.course.field_course_department
|
||||
field_name: field_course_department
|
||||
entity_type: group
|
||||
bundle: course
|
||||
label: Departamento
|
||||
description: 'Departamento ao qual este curso está vinculado'
|
||||
required: false
|
||||
translatable: true
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings:
|
||||
handler: 'default:group'
|
||||
handler_settings:
|
||||
target_bundles:
|
||||
department: department
|
||||
sort:
|
||||
field: _none
|
||||
direction: ASC
|
||||
auto_create: false
|
||||
auto_create_bundle: ''
|
||||
field_type: entity_reference
|
||||
@@ -0,0 +1,18 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.group.field_course_mail
|
||||
- group.type.course
|
||||
id: group.course.field_course_mail
|
||||
field_name: field_course_mail
|
||||
entity_type: group
|
||||
bundle: course
|
||||
label: 'E-mail'
|
||||
description: ''
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings: { }
|
||||
field_type: email
|
||||
@@ -0,0 +1,20 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.group.field_course_phone
|
||||
- group.type.course
|
||||
module:
|
||||
- telephone
|
||||
id: group.course.field_course_phone
|
||||
field_name: field_course_phone
|
||||
entity_type: group
|
||||
bundle: course
|
||||
label: 'Telefone'
|
||||
description: ''
|
||||
required: false
|
||||
translatable: false
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings: { }
|
||||
field_type: telephone
|
||||
@@ -0,0 +1,28 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- field.storage.user.field_user_courses
|
||||
module:
|
||||
- user
|
||||
id: user.user.field_user_courses
|
||||
field_name: field_user_courses
|
||||
entity_type: user
|
||||
bundle: user
|
||||
label: 'Cursos'
|
||||
description: 'Cursos do usuário sincronizados do LDAP'
|
||||
required: false
|
||||
translatable: true
|
||||
default_value: { }
|
||||
default_value_callback: ''
|
||||
settings:
|
||||
handler: 'default:group'
|
||||
handler_settings:
|
||||
target_bundles:
|
||||
course: course
|
||||
sort:
|
||||
field: _none
|
||||
direction: ASC
|
||||
auto_create: false
|
||||
auto_create_bundle: ''
|
||||
field_type: entity_reference
|
||||
@@ -0,0 +1,20 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
id: group.field_course_code
|
||||
field_name: field_course_code
|
||||
entity_type: group
|
||||
type: string
|
||||
settings:
|
||||
max_length: 255
|
||||
case_sensitive: false
|
||||
is_ascii: false
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,19 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
- user
|
||||
id: group.field_course_coord
|
||||
field_name: field_course_coord
|
||||
entity_type: group
|
||||
type: entity_reference
|
||||
settings:
|
||||
target_type: user
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,19 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
- user
|
||||
id: group.field_course_coord_assoc
|
||||
field_name: field_course_coord_assoc
|
||||
entity_type: group
|
||||
type: entity_reference
|
||||
settings:
|
||||
target_type: user
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,18 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
id: group.field_course_department
|
||||
field_name: field_course_department
|
||||
entity_type: group
|
||||
type: entity_reference
|
||||
settings:
|
||||
target_type: group
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,17 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
id: group.field_course_mail
|
||||
field_name: field_course_mail
|
||||
entity_type: group
|
||||
type: email
|
||||
settings: { }
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,18 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
- telephone
|
||||
id: group.field_course_phone
|
||||
field_name: field_course_phone
|
||||
entity_type: group
|
||||
type: telephone
|
||||
settings: { }
|
||||
module: telephone
|
||||
locked: false
|
||||
cardinality: 1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,19 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
module:
|
||||
- group
|
||||
- user
|
||||
id: user.field_user_courses
|
||||
field_name: field_user_courses
|
||||
entity_type: user
|
||||
type: entity_reference
|
||||
settings:
|
||||
target_type: group
|
||||
module: core
|
||||
locked: false
|
||||
cardinality: -1
|
||||
translatable: true
|
||||
indexes: { }
|
||||
persist_with_no_fields: false
|
||||
custom_storage: false
|
||||
@@ -0,0 +1,37 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- group.type.course
|
||||
id: course-admin
|
||||
label: Admin
|
||||
weight: 100
|
||||
admin: true
|
||||
scope: individual
|
||||
global_role: null
|
||||
group_type: course
|
||||
permissions:
|
||||
- administer members
|
||||
- delete group
|
||||
- edit group
|
||||
- leave group
|
||||
- view group
|
||||
- view unpublished group
|
||||
- access group_media overview
|
||||
- access group_node overview
|
||||
- create group_node:article entity
|
||||
- create group_node:page entity
|
||||
- delete any group_node:article entity
|
||||
- delete any group_node:page entity
|
||||
- delete own group_node:article entity
|
||||
- delete own group_node:page entity
|
||||
- update any group_node:article entity
|
||||
- update any group_node:page entity
|
||||
- update own group_node:article entity
|
||||
- update own group_node:page entity
|
||||
- view group_node:article entity
|
||||
- view group_node:page entity
|
||||
- view own unpublished group_node:article entity
|
||||
- view own unpublished group_node:page entity
|
||||
- view unpublished group_node:article entity
|
||||
- view unpublished group_node:page entity
|
||||
@@ -0,0 +1,38 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- group.type.course
|
||||
- user.role.administrator
|
||||
id: course-admin_in
|
||||
label: Administrador
|
||||
weight: 102
|
||||
admin: true
|
||||
scope: insider
|
||||
global_role: administrator
|
||||
group_type: course
|
||||
permissions:
|
||||
- administer members
|
||||
- delete group
|
||||
- edit group
|
||||
- leave group
|
||||
- view group
|
||||
- view unpublished group
|
||||
- access group_media overview
|
||||
- access group_node overview
|
||||
- create group_node:article entity
|
||||
- create group_node:page entity
|
||||
- delete any group_node:article entity
|
||||
- delete any group_node:page entity
|
||||
- delete own group_node:article entity
|
||||
- delete own group_node:page entity
|
||||
- update any group_node:article entity
|
||||
- update any group_node:page entity
|
||||
- update own group_node:article entity
|
||||
- update own group_node:page entity
|
||||
- view group_node:article entity
|
||||
- view group_node:page entity
|
||||
- view own unpublished group_node:article entity
|
||||
- view own unpublished group_node:page entity
|
||||
- view unpublished group_node:article entity
|
||||
- view unpublished group_node:page entity
|
||||
@@ -0,0 +1,38 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- group.type.course
|
||||
- user.role.administrator
|
||||
id: course-admin_out
|
||||
label: Administrador
|
||||
weight: 101
|
||||
admin: true
|
||||
scope: outsider
|
||||
global_role: administrator
|
||||
group_type: course
|
||||
permissions:
|
||||
- administer members
|
||||
- delete group
|
||||
- edit group
|
||||
- join group
|
||||
- view group
|
||||
- view unpublished group
|
||||
- access group_media overview
|
||||
- access group_node overview
|
||||
- create group_node:article entity
|
||||
- create group_node:page entity
|
||||
- delete any group_node:article entity
|
||||
- delete any group_node:page entity
|
||||
- delete own group_node:article entity
|
||||
- delete own group_node:page entity
|
||||
- update any group_node:article entity
|
||||
- update any group_node:page entity
|
||||
- update own group_node:article entity
|
||||
- update own group_node:page entity
|
||||
- view group_node:article entity
|
||||
- view group_node:page entity
|
||||
- view own unpublished group_node:article entity
|
||||
- view own unpublished group_node:page entity
|
||||
- view unpublished group_node:article entity
|
||||
- view unpublished group_node:page entity
|
||||
@@ -0,0 +1,17 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- group.type.course
|
||||
- user.role.anonymous
|
||||
id: course-anonymous
|
||||
label: 'Anônimo'
|
||||
weight: -102
|
||||
admin: false
|
||||
scope: outsider
|
||||
global_role: anonymous
|
||||
group_type: course
|
||||
permissions:
|
||||
- view group
|
||||
- view group_node:article entity
|
||||
- view group_node:page entity
|
||||
@@ -0,0 +1,27 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- group.type.course
|
||||
- user.role.authenticated
|
||||
id: course-member
|
||||
label: Member
|
||||
weight: -100
|
||||
admin: false
|
||||
scope: insider
|
||||
global_role: authenticated
|
||||
group_type: course
|
||||
permissions:
|
||||
- view group
|
||||
- access group_media overview
|
||||
- access group_node overview
|
||||
- create group_node:article entity
|
||||
- create group_node:page entity
|
||||
- delete own group_node:article entity
|
||||
- delete own group_node:page entity
|
||||
- update own group_node:article entity
|
||||
- update own group_node:page entity
|
||||
- view group_node:article entity
|
||||
- view group_node:page entity
|
||||
- view own unpublished group_node:article entity
|
||||
- view own unpublished group_node:page entity
|
||||
@@ -0,0 +1,17 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies:
|
||||
config:
|
||||
- group.type.course
|
||||
- user.role.authenticated
|
||||
id: course-outsider
|
||||
label: Outsider
|
||||
weight: -101
|
||||
admin: false
|
||||
scope: outsider
|
||||
global_role: authenticated
|
||||
group_type: course
|
||||
permissions:
|
||||
- view group
|
||||
- view group_node:article entity
|
||||
- view group_node:page entity
|
||||
@@ -0,0 +1,10 @@
|
||||
langcode: pt-br
|
||||
status: true
|
||||
dependencies: { }
|
||||
id: course
|
||||
label: 'Curso'
|
||||
description: ''
|
||||
new_revision: true
|
||||
creator_membership: true
|
||||
creator_wizard: true
|
||||
creator_roles: { }
|
||||
Reference in New Issue
Block a user