diff --git a/composer.json b/composer.json index c6512c8..5344897 100644 --- a/composer.json +++ b/composer.json @@ -95,6 +95,7 @@ "drupal/jsonrpc": "^1.x-dev", "drupal/login_destination": "2.x-dev@dev", "drupal/login_history": "^1.x-dev", + "drupal/login_tracker": "^1.4", "drupal/mailgun": "^1.x-dev", "drupal/mailsystem": "^4.1", "drupal/migrate_devel": "2.x-dev@dev", diff --git a/composer.lock b/composer.lock index 8cf5797..0757a34 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "88d60f186b3c4b4a92843d09438fad4d", + "content-hash": "b39b7f2234f15d815739981c1607eb3e", "packages": [ { "name": "alchemy/zippy", @@ -9812,6 +9812,50 @@ "issues": "https://www.drupal.org/project/issues/login_history" } }, + { + "name": "drupal/login_tracker", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/login_tracker.git", + "reference": "8.x-1.4" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/login_tracker-8.x-1.4.zip", + "reference": "8.x-1.4", + "shasum": "5385c8ca110025d97b89cb4f2cb5909c3b3f4277" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.4", + "datestamp": "1588689215", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "leewillis77", + "homepage": "https://www.drupal.org/user/1588990" + } + ], + "description": "Track user logins", + "homepage": "https://www.drupal.org/project/login_tracker", + "support": { + "source": "https://git.drupalcode.org/project/login_tracker" + } + }, { "name": "drupal/mailgun", "version": "dev-1.x", diff --git a/config/devel/system.menu.devel.yml b/config/devel/system.menu.devel.yml new file mode 100644 index 0000000..274c42d --- /dev/null +++ b/config/devel/system.menu.devel.yml @@ -0,0 +1,4 @@ +dependencies: + enforced: + module: + - devel diff --git a/config/devel/ultimate_cron.job.dblog_cron.yml b/config/devel/ultimate_cron.job.dblog_cron.yml new file mode 100644 index 0000000..e1b4044 --- /dev/null +++ b/config/devel/ultimate_cron.job.dblog_cron.yml @@ -0,0 +1,17 @@ +uuid: d9ee7697-3e37-489c-a8a1-e9901529a328 +langcode: en +status: true +dependencies: + module: + - dblog +title: 'Remove expired log messages and flood control events' +id: dblog_cron +weight: 0 +module: dblog +callback: dblog_cron +scheduler: + id: simple +launcher: + id: serial +logger: + id: database diff --git a/config/sync/config_split.config_split.devel.yml b/config/sync/config_split.config_split.devel.yml index 1f98c27..74c60c9 100644 --- a/config/sync/config_split.config_split.devel.yml +++ b/config/sync/config_split.config_split.devel.yml @@ -19,7 +19,8 @@ module: workflow_ui: 0 webprofiler: 0 theme: { } -blacklist: { } +blacklist: + - system.menu.devel graylist: { } graylist_dependents: true graylist_skip_equal: true diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index 8596ce5..e2ecfff 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -120,6 +120,7 @@ module: linkit: 0 locale: 0 login_history: 0 + login_tracker: 0 mailgun: 0 maillog: 0 mailsystem: 0 diff --git a/config/sync/language/fr/eu_cookie_compliance.settings.yml b/config/sync/language/fr/eu_cookie_compliance.settings.yml index acd384e..277fb1d 100644 --- a/config/sync/language/fr/eu_cookie_compliance.settings.yml +++ b/config/sync/language/fr/eu_cookie_compliance.settings.yml @@ -12,3 +12,4 @@ withdraw_message: value: '

Nous utilisons des cookies sur ce site pour améliorer votre expérience d''utilisateur.

Vous avez consenti à l''ajout de cookies.

' withdraw_action_button_label: 'Retirer le consentement' withdraw_tab_button_label: 'Paramètres de confidentialité' +accept_all_categories_button_label: 'Accepter tous les cookies' diff --git a/config/sync/language/fr/search_api_solr.solr_request_handler.request_handler_extract_default_7_0_0.yml b/config/sync/language/fr/search_api_solr.solr_request_handler.request_handler_extract_default_7_0_0.yml new file mode 100644 index 0000000..b139e4c --- /dev/null +++ b/config/sync/language/fr/search_api_solr.solr_request_handler.request_handler_extract_default_7_0_0.yml @@ -0,0 +1 @@ +label: Extraire diff --git a/config/sync/language/fr/views.view.commerce_carts.yml b/config/sync/language/fr/views.view.commerce_carts.yml index a51a25f..cd4781c 100644 --- a/config/sync/language/fr/views.view.commerce_carts.yml +++ b/config/sync/language/fr/views.view.commerce_carts.yml @@ -23,7 +23,7 @@ display: last: "dernier\_»" fields: commerce_order_bulk_form: - action_title: 'Pour cette sélection' + action_title: 'Pour la sélection' type: label: Type separator: ', ' diff --git a/config/sync/language/fr/views.view.commerce_orders.yml b/config/sync/language/fr/views.view.commerce_orders.yml index 39f0ded..2810312 100644 --- a/config/sync/language/fr/views.view.commerce_orders.yml +++ b/config/sync/language/fr/views.view.commerce_orders.yml @@ -23,7 +23,7 @@ display: last: "dernier\_»" fields: commerce_order_bulk_form: - action_title: 'Pour cette sélection' + action_title: 'Pour la sélection' order_number: label: '#' separator: ', ' diff --git a/config/sync/language/fr/views.view.commerce_stores.yml b/config/sync/language/fr/views.view.commerce_stores.yml index d35922c..ab41391 100644 --- a/config/sync/language/fr/views.view.commerce_stores.yml +++ b/config/sync/language/fr/views.view.commerce_stores.yml @@ -23,7 +23,7 @@ display: last: "dernier\_»" fields: commerce_store_bulk_form: - action_title: 'Pour cette sélection' + action_title: 'Pour la sélection' name: label: Nom separator: ', ' diff --git a/config/sync/language/fr/views.view.message.yml b/config/sync/language/fr/views.view.message.yml index b87c6a5..284aa65 100644 --- a/config/sync/language/fr/views.view.message.yml +++ b/config/sync/language/fr/views.view.message.yml @@ -23,7 +23,7 @@ display: last: "dernier\_»" fields: message_bulk_form_1: - action_title: 'Pour cette sélection' + action_title: 'Pour la sélection' mid: label: 'Identifiant (ID) du message' separator: ', ' diff --git a/config/sync/language/fr/views.view.redirect.yml b/config/sync/language/fr/views.view.redirect.yml index da586a3..6b5285f 100644 --- a/config/sync/language/fr/views.view.redirect.yml +++ b/config/sync/language/fr/views.view.redirect.yml @@ -23,7 +23,7 @@ display: offset_label: Décalage fields: redirect_bulk_form: - action_title: 'Pour cette sélection' + action_title: 'Pour la sélection' redirect_source__path: label: 'A partir de' separator: ', ' diff --git a/config/sync/language/fr/views.view.simplenews_newsletters.yml b/config/sync/language/fr/views.view.simplenews_newsletters.yml index a216e81..a1798db 100644 --- a/config/sync/language/fr/views.view.simplenews_newsletters.yml +++ b/config/sync/language/fr/views.view.simplenews_newsletters.yml @@ -19,7 +19,7 @@ display: fields: node_bulk_form: label: 'Formulaire des opérations en masse sur les nœuds' - action_title: 'Pour cette sélection' + action_title: 'Pour la sélection' simplenews_issue: separator: ', ' status: diff --git a/config/sync/user.role.admin.yml b/config/sync/user.role.admin.yml index ee9c4f6..c5a17cf 100644 --- a/config/sync/user.role.admin.yml +++ b/config/sync/user.role.admin.yml @@ -132,6 +132,7 @@ permissions: - 'edit terms in tags' - 'edit terms in thesaurus' - 'edit terms_of_services config page entity' + - excluded_from_login_tracking - 'execute entity:save_action menu_link_content' - 'execute entity:save_action node' - 'execute entity:save_action taxonomy_term' diff --git a/config/sync/views.view.admin_users.yml b/config/sync/views.view.admin_users.yml index 744f382..80788fc 100644 --- a/config/sync/views.view.admin_users.yml +++ b/config/sync/views.view.admin_users.yml @@ -37,6 +37,8 @@ dependencies: module: - address - commerce_tax + - login_history + - login_tracker - options - pagerer - profile @@ -114,37 +116,124 @@ display: description: '' columns: views_bulk_operations_bulk_form: views_bulk_operations_bulk_form - name: name - mail: mail - operations: operations + field_title: field_title + field_name: field_name + field_first_name: field_first_name + field_organization: field_organization + field_position: field_position + field_service: field_service + field_activity_sector: field_activity_sector + field_employee: field_employee + field_address: field_address + field_phone: field_phone + field_email: field_email + field_naf: field_naf + field_siret: field_siret + field_vat_number_intra_ce: field_vat_number_intra_ce roles_target_id: roles_target_id - field_member_type: field_member_type - field_company: field_company - field_showroom: field_showroom + status: status access: access - created: created - field_memo: field_memo + record_id: record_id info: views_bulk_operations_bulk_form: align: '' separator: '' empty_column: false responsive: '' - name: + field_title: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' - mail: + field_name: sortable: false default_sort_order: asc align: '' separator: '' empty_column: false responsive: '' - operations: + field_first_name: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_organization: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_position: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_service: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_activity_sector: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_employee: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_address: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_phone: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_email: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_naf: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_siret: + sortable: false + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + field_vat_number_intra_ce: + sortable: false + default_sort_order: asc align: '' separator: '' empty_column: false @@ -156,21 +245,7 @@ display: separator: '' empty_column: false responsive: '' - field_member_type: - sortable: false - default_sort_order: asc - align: '' - separator: '' - empty_column: false - responsive: '' - field_company: - sortable: false - default_sort_order: asc - align: '' - separator: '' - empty_column: false - responsive: '' - field_showroom: + status: sortable: false default_sort_order: asc align: '' @@ -184,21 +259,14 @@ display: separator: '' empty_column: true responsive: '' - created: + record_id: sortable: true default_sort_order: desc align: '' separator: '' empty_column: false responsive: '' - field_memo: - sortable: false - default_sort_order: asc - align: '' - separator: '' - empty_column: false - responsive: '' - default: created + default: '-1' empty_table: false row: type: fields @@ -1365,7 +1433,17 @@ display: plugin_id: result footer: { } empty: { } - relationships: { } + relationships: + login_history: + id: login_history + table: users + field: login_history + relationship: none + group_type: group + admin_label: Logins + required: false + entity_type: user + plugin_id: standard arguments: { } display_extenders: views_ef_fieldset: @@ -1515,6 +1593,7 @@ display: operator: AND groups: 1: AND + group_by: true cache_metadata: max-age: 0 contexts: @@ -2504,6 +2583,63 @@ display: entity_type: user entity_field: status plugin_id: field + record_id: + id: record_id + table: login_tracker + field: record_id + relationship: none + group_type: count_distinct + admin_label: '' + label: 'Login Count' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: true + empty_zero: true + hide_alter_empty: true + set_precision: false + precision: 0 + decimal: . + separator: ',' + format_plural: false + format_plural_string: !!binary MQNAY291bnQ= + prefix: '' + suffix: '' + plugin_id: numeric defaults: fields: false cache_metadata: @@ -4106,6 +4242,63 @@ display: entity_type: user entity_field: access plugin_id: field + record_id: + id: record_id + table: login_tracker + field: record_id + relationship: none + group_type: count_distinct + admin_label: '' + label: 'Login count' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: true + empty_zero: true + hide_alter_empty: true + set_precision: false + precision: 0 + decimal: . + separator: ',' + format_plural: false + format_plural_string: !!binary MQNAY291bnQ= + prefix: '' + suffix: '' + plugin_id: numeric relationships: profile_type: id: profile_type @@ -5171,6 +5364,63 @@ display: entity_type: user entity_field: access plugin_id: field + record_id: + id: record_id + table: login_tracker + field: record_id + relationship: none + group_type: count_distinct + admin_label: '' + label: 'Login Count' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: true + empty_zero: true + hide_alter_empty: true + set_precision: false + precision: 0 + decimal: . + separator: ',' + format_plural: false + format_plural_string: !!binary MQNAY291bnQ= + prefix: '' + suffix: '' + plugin_id: numeric relationships: profile_type: id: profile_type @@ -6424,6 +6674,63 @@ display: destination: false entity_type: user plugin_id: entity_operations + record_id: + id: record_id + table: login_tracker + field: record_id + relationship: none + group_type: count_distinct + admin_label: '' + label: 'Login Count' + exclude: false + alter: + alter_text: false + text: '' + make_link: false + path: '' + absolute: false + external: false + replace_spaces: false + path_case: none + trim_whitespace: false + alt: '' + rel: '' + link_class: '' + prefix: '' + suffix: '' + target: '' + nl2br: false + max_length: 0 + word_boundary: true + ellipsis: true + more_link: false + more_link_text: '' + more_link_path: '' + strip_tags: false + trim: false + preserve_tags: '' + html: false + element_type: '' + element_class: '' + element_label_type: '' + element_label_class: '' + element_label_colon: true + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: true + empty_zero: true + hide_alter_empty: true + set_precision: false + precision: 0 + decimal: . + separator: ',' + format_plural: false + format_plural_string: !!binary MQNAY291bnQ= + prefix: '' + suffix: '' + plugin_id: numeric relationships: profile_type: id: profile_type