commit 537aaae204c19a81280ee6340c774a74ffa5dd99 Author: root Date: Thu Feb 12 09:10:28 2026 -0300 Initial commit diff --git a/base_site_config.info b/base_site_config.info new file mode 100644 index 0000000..aa958fa --- /dev/null +++ b/base_site_config.info @@ -0,0 +1,21 @@ +name: 'Base Site Config' +type: module +description: 'Instala configurações base e módulos de autenticação externa.' +version: '1.0' +core_version_requirement: ^11 +package: Custom + +dependencies: + - drupal:system + - drupal:user + - drupal:filter + - drupal:views + - authorization:authorization + - authorization:authorization_drupal_roles + - externalauth:externalauth + - entity_reference_views_select:entity_reference_views_select + - ldap:ldap_servers + - ldap:ldap_authentication + - ldap:ldap_authorization + - ldap:ldap_user + - ldap:ldap_query diff --git a/config/optional/authorization.authorization_profile.ldap_roles_by_employeetype.yml b/config/optional/authorization.authorization_profile.ldap_roles_by_employeetype.yml new file mode 100644 index 0000000..7df0e35 --- /dev/null +++ b/config/optional/authorization.authorization_profile.ldap_roles_by_employeetype.yml @@ -0,0 +1,31 @@ +langcode: pt-br +status: true +dependencies: { } +id: ldap_roles_by_employeetype +label: 'Ldap Roles by EmployeeType' +provider: ldap_provider +provider_config: + status: + server: ldap_ime_unicamp_br + only_ldap_authenticated: false + filter_and_mappings: + use_first_attr_as_groupid: false +provider_mappings: + - + query: employeeType=Professor + is_regex: false + - + query: employeeType=Funcionario + is_regex: false +consumer: authorization_drupal_roles +consumer_config: { } +consumer_mappings: + - + role: professor + - + role: staff +synchronization_modes: + user_logon: user_logon +synchronization_actions: + create_consumers: '0' + revoke_provider_provisioned: revoke_provider_provisioned diff --git a/config/optional/authorization.settings.yml b/config/optional/authorization.settings.yml new file mode 100644 index 0000000..e97459d --- /dev/null +++ b/config/optional/authorization.settings.yml @@ -0,0 +1 @@ +authorization_message: false diff --git a/config/optional/core.entity_form_display.user.user.default.yml b/config/optional/core.entity_form_display.user.user.default.yml new file mode 100644 index 0000000..f5733e5 --- /dev/null +++ b/config/optional/core.entity_form_display.user.user.default.yml @@ -0,0 +1,107 @@ +langcode: pt-br +status: true +dependencies: + config: + - field.field.user.user.field_user_category + - field.field.user.user.field_user_department + - field.field.user.user.field_user_dept_code + - field.field.user.user.field_user_name + - field.field.user.user.field_user_phone_number + - field.field.user.user.field_user_photo + - field.field.user.user.user_picture + - image.style.thumbnail + module: + - image + - path + - telephone + - user +id: user.user.default +targetEntityType: user +bundle: user +mode: default +content: + account: + weight: 0 + region: content + settings: { } + third_party_settings: { } + contact: + weight: 2 + region: content + settings: { } + third_party_settings: { } + field_user_category: + type: string_textfield + weight: 5 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_user_department: + type: entity_reference_autocomplete + weight: 7 + region: content + settings: + match_operator: CONTAINS + match_limit: 10 + size: 60 + placeholder: '' + third_party_settings: { } + field_user_dept_code: + type: string_textfield + weight: 8 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_user_name: + type: string_textfield + weight: 4 + region: content + settings: + size: 60 + placeholder: '' + third_party_settings: { } + field_user_phone_number: + type: telephone_default + weight: 6 + region: content + settings: + placeholder: '' + third_party_settings: { } + field_user_photo: + type: image_image + weight: 11 + region: content + settings: + progress_indicator: throbber + preview_image_style: thumbnail + third_party_settings: { } + language: + weight: 1 + region: content + settings: { } + third_party_settings: { } + path: + type: path + weight: 9 + region: content + settings: { } + third_party_settings: { } + timezone: + weight: 3 + region: content + settings: { } + third_party_settings: { } + user_picture: + type: image_image + weight: 10 + region: content + settings: + progress_indicator: throbber + preview_image_style: thumbnail + third_party_settings: { } +hidden: + langcode: true diff --git a/config/optional/core.entity_view_display.user.user.default.yml b/config/optional/core.entity_view_display.user.user.default.yml new file mode 100644 index 0000000..c3a917d --- /dev/null +++ b/config/optional/core.entity_view_display.user.user.default.yml @@ -0,0 +1,73 @@ +langcode: pt-br +status: true +dependencies: + config: + - field.field.user.user.field_user_category + - field.field.user.user.field_user_department + - field.field.user.user.field_user_dept_code + - field.field.user.user.field_user_name + - field.field.user.user.field_user_phone_number + - field.field.user.user.field_user_photo + - field.field.user.user.user_picture + - image.style.thumbnail + module: + - image + - telephone + - user +id: user.user.default +targetEntityType: user +bundle: user +mode: default +content: + field_user_category: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 1 + region: content + field_user_department: + type: entity_reference_label + label: above + settings: + link: true + third_party_settings: { } + weight: 3 + region: content + field_user_name: + type: string + label: above + settings: + link_to_entity: false + third_party_settings: { } + weight: 0 + region: content + field_user_phone_number: + type: telephone_link + label: above + settings: + title: '' + third_party_settings: { } + weight: 2 + region: content + member_for: + settings: { } + third_party_settings: { } + weight: 5 + region: content + user_picture: + type: image + label: hidden + settings: + image_link: content + image_style: thumbnail + image_loading: + attribute: lazy + third_party_settings: { } + weight: 4 + region: content +hidden: + field_user_dept_code: true + field_user_photo: true + langcode: true diff --git a/config/optional/field.field.user.user.field_user_category.yml b/config/optional/field.field.user.user.field_user_category.yml new file mode 100644 index 0000000..fd151fe --- /dev/null +++ b/config/optional/field.field.user.user.field_user_category.yml @@ -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: Category +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/optional/field.field.user.user.field_user_department.yml b/config/optional/field.field.user.user.field_user_department.yml new file mode 100644 index 0000000..b137c47 --- /dev/null +++ b/config/optional/field.field.user.user.field_user_department.yml @@ -0,0 +1,24 @@ +langcode: pt-br +status: true +dependencies: + config: + - field.storage.user.field_user_department + module: + - user +id: user.user.field_user_department +field_name: field_user_department +entity_type: user +bundle: user +label: Departamento +description: 'Departamento do usuário sincronizado do LDAP' +required: false +translatable: true +default_value: { } +default_value_callback: '' +settings: + handler: views + handler_settings: + view: + view_name: departments + display_name: entity_reference_1 +field_type: entity_reference diff --git a/config/optional/field.field.user.user.field_user_dept_code.yml b/config/optional/field.field.user.user.field_user_dept_code.yml new file mode 100644 index 0000000..f5170f8 --- /dev/null +++ b/config/optional/field.field.user.user.field_user_dept_code.yml @@ -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: 'Department Code' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/optional/field.field.user.user.field_user_name.yml b/config/optional/field.field.user.user.field_user_name.yml new file mode 100644 index 0000000..9961272 --- /dev/null +++ b/config/optional/field.field.user.user.field_user_name.yml @@ -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: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: string diff --git a/config/optional/field.field.user.user.field_user_phone_number.yml b/config/optional/field.field.user.user.field_user_phone_number.yml new file mode 100644 index 0000000..4191d50 --- /dev/null +++ b/config/optional/field.field.user.user.field_user_phone_number.yml @@ -0,0 +1,20 @@ +langcode: pt-br +status: true +dependencies: + config: + - field.storage.user.field_user_phone_number + module: + - telephone + - user +id: user.user.field_user_phone_number +field_name: field_user_phone_number +entity_type: user +bundle: user +label: Phone +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: telephone diff --git a/config/optional/field.storage.user.field_user_category.yml b/config/optional/field.storage.user.field_user_category.yml new file mode 100644 index 0000000..dcfc5ea --- /dev/null +++ b/config/optional/field.storage.user.field_user_category.yml @@ -0,0 +1,20 @@ +langcode: en +status: true +dependencies: + module: + - user +id: user.field_user_category +field_name: field_user_category +entity_type: user +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 diff --git a/config/optional/field.storage.user.field_user_department.yml b/config/optional/field.storage.user.field_user_department.yml new file mode 100644 index 0000000..5d044df --- /dev/null +++ b/config/optional/field.storage.user.field_user_department.yml @@ -0,0 +1,19 @@ +langcode: en +status: true +dependencies: + module: + - group + - user +id: user.field_user_department +field_name: field_user_department +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 diff --git a/config/optional/field.storage.user.field_user_dept_code.yml b/config/optional/field.storage.user.field_user_dept_code.yml new file mode 100644 index 0000000..1348ae0 --- /dev/null +++ b/config/optional/field.storage.user.field_user_dept_code.yml @@ -0,0 +1,20 @@ +langcode: en +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 + case_sensitive: false + is_ascii: false +module: core +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/optional/field.storage.user.field_user_name.yml b/config/optional/field.storage.user.field_user_name.yml new file mode 100644 index 0000000..be614bc --- /dev/null +++ b/config/optional/field.storage.user.field_user_name.yml @@ -0,0 +1,20 @@ +langcode: en +status: true +dependencies: + module: + - user +id: user.field_user_name +field_name: field_user_name +entity_type: user +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 diff --git a/config/optional/field.storage.user.field_user_phone_number.yml b/config/optional/field.storage.user.field_user_phone_number.yml new file mode 100644 index 0000000..aedc7ea --- /dev/null +++ b/config/optional/field.storage.user.field_user_phone_number.yml @@ -0,0 +1,18 @@ +langcode: en +status: true +dependencies: + module: + - telephone + - user +id: user.field_user_phone_number +field_name: field_user_phone_number +entity_type: user +type: telephone +settings: { } +module: telephone +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/optional/ldap_authentication.settings.yml b/config/optional/ldap_authentication.settings.yml new file mode 100644 index 0000000..aec0bf1 --- /dev/null +++ b/config/optional/ldap_authentication.settings.yml @@ -0,0 +1,23 @@ +langcode: pt-br +sids: + ads1_ime_unicamp_br: ads1_ime_unicamp_br + ldap_ime_unicamp_br: '0' +authenticationMode: mixed +loginUIUsernameTxt: '' +loginUIPasswordTxt: '' +ldapUserHelpLinkUrl: '' +ldapUserHelpLinkText: '' +emailOption: disable +emailUpdate: update_notify +emailTemplateHandling: none +emailTemplate: '@username@example.com' +emailTemplateUsageResolveConflict: false +emailTemplateUsageNeverUpdate: false +emailTemplateUsagePromptUser: false +emailTemplateUsageRedirectOnLogin: false +emailTemplateUsagePromptRegex: '.*@example\\.com' +passwordOption: hide +allowOnlyIfTextInDn: { } +excludeIfTextInDn: { } +excludeIfNoAuthorizations: false +skipAdministrators: true diff --git a/config/optional/ldap_departments_sync.settings.yml b/config/optional/ldap_departments_sync.settings.yml new file mode 100644 index 0000000..935f36d --- /dev/null +++ b/config/optional/ldap_departments_sync.settings.yml @@ -0,0 +1,51 @@ +ldap_server_id: ldap_ime_unicamp_br +ldap_query_id: department_sync +enable_hierarchy: 1 +parent_attribute: departmentNumber +child_attribute: imeccDepartmentCode +group_type_id: departments +attribute_mappings: + - + field: label + attribute: description + mapping_type: simple + - + field: field_dept_code + attribute: imeccDepartmentCode + mapping_type: simple + - + field: field_dept_acronym + attribute: cn + mapping_type: simple + - + field: field_dept_type + attribute: imeccDepartmentType + mapping_type: simple + - + field: field_dept_phone + attribute: telephoneNumber + mapping_type: simple + - + field: field_dept_room + attribute: roomNumber + mapping_type: simple + - + field: field_dept_mail + attribute: mail + mapping_type: simple + - + field: field_dept_coord + attribute: imeccDepartmentCoord + mapping_type: user_reference + - + field: field_dept_coord_assoc + attribute: imeccDepartmentAssocCoord + mapping_type: user_reference +role_mapping_enabled: 1 +role_mappings: + - + group_role: departments-member + source: group_field_match + source_field: field_user_dept_code + group_field: field_dept_code + values: { } diff --git a/config/optional/ldap_query.ldap_query_entity.department_sync.yml b/config/optional/ldap_query.ldap_query_entity.department_sync.yml new file mode 100644 index 0000000..56261d7 --- /dev/null +++ b/config/optional/ldap_query.ldap_query_entity.department_sync.yml @@ -0,0 +1,13 @@ +langcode: pt-br +status: true +dependencies: { } +id: department_sync +label: 'Department Sync' +server_id: ldap_ime_unicamp_br +base_dn: 'ou=Departments,dc=ime,dc=unicamp,dc=br' +filter: (objectClass=imeccDepartment) +attributes: 'cn,imeccDepartmentCode,departmentNumber,imeccDepartmentType,imeccDepartmentCoord,imeccDepartmentAssocCoord,description,mail,telephoneNumber,roomNumber' +size_limit: 0 +time_limit: 0 +dereference: 0 +scope: one diff --git a/config/optional/ldap_query.ldap_query_entity.people_sync.yml b/config/optional/ldap_query.ldap_query_entity.people_sync.yml new file mode 100644 index 0000000..d440f29 --- /dev/null +++ b/config/optional/ldap_query.ldap_query_entity.people_sync.yml @@ -0,0 +1,13 @@ +langcode: pt-br +status: true +dependencies: { } +id: people_sync +label: 'People Sync' +server_id: ldap_ime_unicamp_br +base_dn: 'ou=People,dc=ime,dc=unicamp,dc=br' +filter: '(&(objectClass=imeccPerson)(|(employeeType=Professor)(employeeType=Pesquisador)(employeeType=Posdoutorando)(employeeType=Funcionario)))' +attributes: '' +size_limit: 0 +time_limit: 0 +dereference: 0 +scope: one diff --git a/config/optional/ldap_servers.server.ads1_ime_unicamp_br.yml b/config/optional/ldap_servers.server.ads1_ime_unicamp_br.yml new file mode 100644 index 0000000..a2a8e92 --- /dev/null +++ b/config/optional/ldap_servers.server.ads1_ime_unicamp_br.yml @@ -0,0 +1,37 @@ +langcode: pt-br +status: true +dependencies: { } +id: ads1_ime_unicamp_br +label: ads1.ime.unicamp.br +type: ad +address: ads1.ime.unicamp.br +port: 389 +timeout: 10 +encryption: none +weight: null +bind_method: service_account +binddn: 'cn=administrator,cn=users,dc=ime,dc=unicamp,dc=br' +bindpw: hi6sk0ss +basedn: + - 'cn=USERS,dc=ime,dc=unicamp,dc=br' +user_attr: samaccountname +account_name_attr: '' +mail_attr: '' +mail_template: '' +picture_attr: '' +unique_persistent_attr: '' +unique_persistent_attr_binary: false +user_dn_expression: '' +testing_drupal_username: '' +testing_drupal_user_dn: '' +grp_unused: true +grp_object_cat: '' +grp_nested: false +grp_user_memb_attr_exists: false +grp_user_memb_attr: '' +grp_memb_attr: '' +grp_memb_attr_match_user_attr: '' +grp_derive_from_dn: false +grp_derive_from_dn_attr: '' +grp_test_grp_dn: '' +grp_test_grp_dn_writeable: '' diff --git a/config/optional/ldap_servers.server.ldap_ime_unicamp_br.yml b/config/optional/ldap_servers.server.ldap_ime_unicamp_br.yml new file mode 100644 index 0000000..4bf5bf5 --- /dev/null +++ b/config/optional/ldap_servers.server.ldap_ime_unicamp_br.yml @@ -0,0 +1,37 @@ +langcode: pt-br +status: true +dependencies: { } +id: ldap_ime_unicamp_br +label: ldap.ime.unicamp.br +type: openldap +address: ldap.ime.unicamp.br +port: 389 +timeout: 10 +encryption: none +weight: null +bind_method: anon +binddn: null +bindpw: null +basedn: + - 'ou=People,dc=ime,dc=unicamp,dc=br' +user_attr: uid +account_name_attr: '' +mail_attr: mail +mail_template: '' +picture_attr: '' +unique_persistent_attr: uid +unique_persistent_attr_binary: false +user_dn_expression: '' +testing_drupal_username: '' +testing_drupal_user_dn: '' +grp_unused: true +grp_object_cat: '' +grp_nested: false +grp_user_memb_attr_exists: false +grp_user_memb_attr: '' +grp_memb_attr: '' +grp_memb_attr_match_user_attr: '' +grp_derive_from_dn: false +grp_derive_from_dn_attr: '' +grp_test_grp_dn: '' +grp_test_grp_dn_writeable: '' diff --git a/config/optional/ldap_servers.settings.yml b/config/optional/ldap_servers.settings.yml new file mode 100644 index 0000000..4a3d307 --- /dev/null +++ b/config/optional/ldap_servers.settings.yml @@ -0,0 +1 @@ +watchdog_detail: false diff --git a/config/optional/ldap_user.settings.yml b/config/optional/ldap_user.settings.yml new file mode 100644 index 0000000..488aa37 --- /dev/null +++ b/config/optional/ldap_user.settings.yml @@ -0,0 +1,69 @@ +drupalAcctProvisionServer: ldap_ime_unicamp_br +ldapEntryProvisionServer: ldap_ime_unicamp_br +drupalAcctProvisionTriggers: + - drupal_on_update_create +ldapEntryProvisionTriggers: { } +orphanedIncludeDisabledUsers: true +orphanedDrupalAcctBehavior: user_cancel_delete +orphanedDrupalAcctReportingInbox: '' +orphanedCheckQty: 100 +orphanedAccountCheckInterval: always +userConflictResolve: resolve +manualAccountConflict: conflict_associate +acctCreation: ldap_behavior +disableAdminPasswordField: false +userUpdateCronQuery: people_sync +userUpdateCronInterval: always +userUpdateOnly: false +ldapUserSyncMappings: + drupal: + field-preferred_langcode: + ldap_attr: '[preferredLanguage]' + user_attr: '[field.preferred_langcode]' + convert: false + user_tokens: '' + config_module: ldap_user + prov_module: ldap_user + prov_events: + - create_drupal_user + - sync_to_drupal_user + field-field_user_category: + ldap_attr: '[employeeType]' + user_attr: '[field.field_user_category]' + convert: false + user_tokens: '' + config_module: ldap_user + prov_module: ldap_user + prov_events: + - create_drupal_user + - sync_to_drupal_user + field-field_user_dept_code: + ldap_attr: '[departmentNumber]' + user_attr: '[field.field_user_dept_code]' + convert: false + user_tokens: '' + config_module: ldap_user + prov_module: ldap_user + prov_events: + - create_drupal_user + - sync_to_drupal_user + field-field_user_name: + ldap_attr: '[displayName]' + user_attr: '[field.field_user_name]' + convert: false + user_tokens: '' + config_module: ldap_user + prov_module: ldap_user + prov_events: + - create_drupal_user + - sync_to_drupal_user + field-field_user_phone_number: + ldap_attr: '[telephoneNumber]' + user_attr: '[field.field_user_phone_number]' + convert: false + user_tokens: '' + config_module: ldap_user + prov_module: ldap_user + prov_events: + - create_drupal_user + - sync_to_drupal_user diff --git a/config/optional/system.action.user_add_role_action.professor.yml b/config/optional/system.action.user_add_role_action.professor.yml new file mode 100644 index 0000000..57cccd6 --- /dev/null +++ b/config/optional/system.action.user_add_role_action.professor.yml @@ -0,0 +1,13 @@ +langcode: pt-br +status: true +dependencies: + config: + - user.role.professor + module: + - user +id: user_add_role_action.professor +label: 'Add the Professor role to the selected user(s)' +type: user +plugin: user_add_role_action +configuration: + rid: professor diff --git a/config/optional/system.action.user_add_role_action.staff.yml b/config/optional/system.action.user_add_role_action.staff.yml new file mode 100644 index 0000000..2b64e72 --- /dev/null +++ b/config/optional/system.action.user_add_role_action.staff.yml @@ -0,0 +1,13 @@ +langcode: pt-br +status: true +dependencies: + config: + - user.role.staff + module: + - user +id: user_add_role_action.staff +label: 'Add the Funcionário role to the selected user(s)' +type: user +plugin: user_add_role_action +configuration: + rid: staff diff --git a/config/optional/system.action.user_remove_role_action.professor.yml b/config/optional/system.action.user_remove_role_action.professor.yml new file mode 100644 index 0000000..d9ac400 --- /dev/null +++ b/config/optional/system.action.user_remove_role_action.professor.yml @@ -0,0 +1,13 @@ +langcode: pt-br +status: true +dependencies: + config: + - user.role.professor + module: + - user +id: user_remove_role_action.professor +label: 'Remover o papel Professor dos usuários selecionados' +type: user +plugin: user_remove_role_action +configuration: + rid: professor diff --git a/config/optional/system.action.user_remove_role_action.staff.yml b/config/optional/system.action.user_remove_role_action.staff.yml new file mode 100644 index 0000000..1f69322 --- /dev/null +++ b/config/optional/system.action.user_remove_role_action.staff.yml @@ -0,0 +1,13 @@ +langcode: pt-br +status: true +dependencies: + config: + - user.role.staff + module: + - user +id: user_remove_role_action.staff +label: 'Remover o papel Funcionário dos usuários selecionados' +type: user +plugin: user_remove_role_action +configuration: + rid: staff diff --git a/config/optional/user.role.professor.yml b/config/optional/user.role.professor.yml new file mode 100644 index 0000000..be13867 --- /dev/null +++ b/config/optional/user.role.professor.yml @@ -0,0 +1,8 @@ +langcode: pt-br +status: true +dependencies: { } +id: professor +label: Professor +weight: 5 +is_admin: false +permissions: { } diff --git a/config/optional/user.role.staff.yml b/config/optional/user.role.staff.yml new file mode 100644 index 0000000..b5912eb --- /dev/null +++ b/config/optional/user.role.staff.yml @@ -0,0 +1,8 @@ +langcode: pt-br +status: true +dependencies: { } +id: staff +label: Funcionário +weight: 6 +is_admin: false +permissions: { }