From 627118551271ff6c74391aed63edef5c042c9759 Mon Sep 17 00:00:00 2001 From: bach Date: Mon, 20 Mar 2023 16:54:28 +0100 Subject: [PATCH] added registration code --- src/composer.json | 1 + src/composer.lock | 54 +- src/config/sync/core.extension.yml | 1 + src/config/sync/regcode.settings.yml | 8 + src/config/sync/user.role.admin.yml | 2 + src/config/sync/views.view.redirect.yml | 2 +- src/config/sync/views.view.regcode.yml | 801 ++++++++++++++++++++++++ 7 files changed, 867 insertions(+), 2 deletions(-) create mode 100644 src/config/sync/regcode.settings.yml create mode 100644 src/config/sync/views.view.regcode.yml diff --git a/src/composer.json b/src/composer.json index 354d503..b0256c2 100644 --- a/src/composer.json +++ b/src/composer.json @@ -31,6 +31,7 @@ "drupal/mail_login": "^2.6", "drupal/paragraphs": "^1.15", "drupal/paragraphs_modal_edit": "^1.1", + "drupal/regcode": "^1.1", "drupal/restui": "^1.21", "drupal/role_delegation": "^1.2", "drupal/structure_sync": "^2.0", diff --git a/src/composer.lock b/src/composer.lock index 5b12704..20e6250 100644 --- a/src/composer.lock +++ b/src/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": "0dc54aabca9896a49a4cb27bfda2b2c9", + "content-hash": "294c2d33a34b32eb96c471edf2e1eacd", "packages": [ { "name": "alchemy/zippy", @@ -7641,6 +7641,58 @@ "source": "https://git.drupalcode.org/project/redis" } }, + { + "name": "drupal/regcode", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/regcode.git", + "reference": "8.x-1.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/regcode-8.x-1.1.zip", + "reference": "8.x-1.1", + "shasum": "6ce311ec1fa933bc8c85ec806d3eae10a5713b91" + }, + "require": { + "drupal/core": "^8.8.2 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "8.x-1.1", + "datestamp": "1635893788", + "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": "Ayesh", + "homepage": "https://www.drupal.org/user/796148" + }, + { + "name": "TR", + "homepage": "https://www.drupal.org/user/202830" + }, + { + "name": "azovsky", + "homepage": "https://www.drupal.org/user/330533" + } + ], + "description": "Provides functionality for using/enabling/requiring registration codes upon user registration.", + "homepage": "https://www.drupal.org/project/regcode", + "support": { + "source": "https://git.drupalcode.org/project/regcode" + } + }, { "name": "drupal/restui", "version": "1.21.0", diff --git a/src/config/sync/core.extension.yml b/src/config/sync/core.extension.yml index 6681174..204c148 100644 --- a/src/config/sync/core.extension.yml +++ b/src/config/sync/core.extension.yml @@ -100,6 +100,7 @@ module: persistent_login: 0 redirect: 0 redis: 0 + regcode: 0 responsive_image: 0 rest: 0 restui: 0 diff --git a/src/config/sync/regcode.settings.yml b/src/config/sync/regcode.settings.yml new file mode 100644 index 0000000..ea1288d --- /dev/null +++ b/src/config/sync/regcode.settings.yml @@ -0,0 +1,8 @@ +_core: + default_config_hash: 4EeXearu2fuN-7h4iptqREZzTctHVCgBRayuv5qoSaY +langcode: fr +regcode_optional: false +regcode_generate_format: alpha +regcode_generate_case: false +regcode_field_title: 'Registration Code' +regcode_field_description: 'Please enter your registration code.' diff --git a/src/config/sync/user.role.admin.yml b/src/config/sync/user.role.admin.yml index fa24edb..5e541b0 100644 --- a/src/config/sync/user.role.admin.yml +++ b/src/config/sync/user.role.admin.yml @@ -15,6 +15,7 @@ dependencies: - filter - group - node + - regcode - role_delegation - system - toolbar @@ -34,6 +35,7 @@ permissions: - 'access user profiles' - 'access users overview' - 'administer productions menu items' + - 'administer registration codes' - 'assign group_admin role' - 'assign group_member role' - 'cancel users with role group_admin' diff --git a/src/config/sync/views.view.redirect.yml b/src/config/sync/views.view.redirect.yml index 90fcb26..1f75b10 100644 --- a/src/config/sync/views.view.redirect.yml +++ b/src/config/sync/views.view.redirect.yml @@ -172,7 +172,7 @@ display: entity_type: redirect entity_field: created plugin_id: date - label: Créé + label: Created exclude: false alter: alter_text: false diff --git a/src/config/sync/views.view.regcode.yml b/src/config/sync/views.view.regcode.yml new file mode 100644 index 0000000..d3fd62d --- /dev/null +++ b/src/config/sync/views.view.regcode.yml @@ -0,0 +1,801 @@ +uuid: 5167089f-2070-4632-80df-c247902c9e18 +langcode: fr +status: true +dependencies: + module: + - regcode + - user +_core: + default_config_hash: MNlnp731fg09l7qs1DCO-vCgfnAIVcd1XuDHeSX4Cuw +id: regcode +label: 'Registration codes' +module: views +description: 'Registration codes review' +tag: '' +base_table: regcode +base_field: rid +display: + default: + id: default + display_title: Master + display_plugin: default + position: 0 + display_options: + title: 'Registration codes' + fields: + created: + id: created + table: regcode + field: created + relationship: none + group_type: group + admin_label: '' + plugin_id: date + label: Created + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + date_format: short + custom_date_format: '' + timezone: '' + is_active: + id: is_active + table: regcode + field: is_active + relationship: none + group_type: group + admin_label: '' + plugin_id: boolean + label: Active + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + type: yes-no + type_custom_true: '' + type_custom_false: '' + not: false + code: + id: code + table: regcode + field: code + relationship: none + group_type: group + admin_label: '' + plugin_id: standard + label: Code + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + begins: + id: begins + table: regcode + field: begins + relationship: none + group_type: group + admin_label: '' + plugin_id: date + label: Begins + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + date_format: short + custom_date_format: '' + timezone: '' + expires: + id: expires + table: regcode + field: expires + relationship: none + group_type: group + admin_label: '' + plugin_id: date + label: Expires + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + date_format: short + custom_date_format: '' + timezone: '' + maxuses: + id: maxuses + table: regcode + field: maxuses + relationship: none + group_type: group + admin_label: '' + plugin_id: numeric + label: 'Maximum uses' + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + set_precision: false + precision: 0 + decimal: . + separator: '' + format_plural: false + format_plural_string: !!binary MQNAY291bnQD + prefix: '' + suffix: '' + uses: + id: uses + table: regcode + field: uses + relationship: none + group_type: group + admin_label: '' + plugin_id: numeric + label: Uses + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + set_precision: false + precision: 0 + decimal: . + separator: ',' + format_plural: false + format_plural_string: !!binary MQNAY291bnQD + prefix: '' + suffix: '' + lastused: + id: lastused + table: regcode + field: lastused + relationship: none + group_type: group + admin_label: '' + plugin_id: date + label: 'Dernier accès' + 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: false + element_wrapper_type: '' + element_wrapper_class: '' + element_default_classes: true + empty: '' + hide_empty: false + empty_zero: false + hide_alter_empty: true + date_format: short + custom_date_format: '' + timezone: '' + name: + id: name + table: users_field_data + field: name + relationship: uid + group_type: group + admin_label: '' + entity_type: user + entity_field: name + plugin_id: field + label: 'Last used by' + 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: false + empty_zero: false + hide_alter_empty: true + click_sort_column: value + type: user_name + settings: + link_to_entity: true + group_column: value + group_columns: { } + group_rows: true + delta_limit: 0 + delta_offset: 0 + delta_reversed: false + delta_first_last: false + multi_type: separator + separator: ', ' + field_api_classes: false + pager: + type: full + options: + offset: 0 + items_per_page: 200 + total_pages: null + id: 0 + tags: + next: ›› + previous: ‹‹ + first: '« First' + last: 'Last »' + expose: + items_per_page: false + items_per_page_label: 'Items per page' + items_per_page_options: '5, 10, 25, 50' + items_per_page_options_all: false + items_per_page_options_all_label: '- All -' + offset: false + offset_label: Offset + quantity: 9 + exposed_form: + type: basic + options: + submit_button: Filter + reset_button: false + reset_button_label: Reset + exposed_sorts_label: 'Sort by' + expose_sort_order: true + sort_asc_label: Asc + sort_desc_label: Desc + access: + type: perm + options: + perm: 'administer registration codes' + cache: + type: none + options: { } + empty: + area: + id: area + table: views + field: area + relationship: none + group_type: group + admin_label: '' + plugin_id: text + empty: true + content: + value: 'You have not created any registration codes.' + format: full_html + tokenize: false + sorts: { } + arguments: { } + filters: + is_active: + id: is_active + table: regcode + field: is_active + relationship: none + group_type: group + admin_label: '' + plugin_id: boolean + operator: '=' + value: '1' + group: 1 + exposed: true + expose: + operator_id: '' + label: Active + description: '' + use_operator: false + operator: is_active_op + operator_limit_selection: false + operator_list: { } + identifier: active + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + moderator: '0' + admin_osiedla: '0' + administrator: '0' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + created: + id: created + table: regcode + field: created + relationship: none + group_type: group + admin_label: '' + plugin_id: date + operator: '=' + value: + min: '' + max: '' + value: '' + type: date + group: 1 + exposed: true + expose: + operator_id: created_op + label: Created + description: '' + use_operator: true + operator: created_op + operator_limit_selection: false + operator_list: { } + identifier: created + required: false + remember: true + multiple: false + remember_roles: + authenticated: authenticated + anonymous: '0' + administrator: '0' + min_placeholder: '' + max_placeholder: '' + placeholder: '' + is_grouped: false + group_info: + label: '' + description: '' + identifier: '' + optional: true + widget: select + multiple: false + remember: false + default_group: All + default_group_multiple: { } + group_items: { } + style: + type: table + options: + grouping: { } + row_class: '' + default_row_class: true + columns: + created: created + is_active: is_active + code: code + begins: begins + expires: expires + lastused: lastused + maxuses: maxuses + uses: uses + default: created + info: + created: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + is_active: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + code: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: '' + begins: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-medium + expires: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-medium + lastused: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + maxuses: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + uses: + sortable: true + default_sort_order: asc + align: '' + separator: '' + empty_column: false + responsive: priority-low + override: true + sticky: false + summary: '' + empty_table: false + caption: '' + description: '' + row: + type: fields + query: + type: views_query + options: + query_comment: '' + disable_sql_rewrite: false + distinct: false + replica: false + query_tags: { } + relationships: + uid: + id: uid + table: regcode + field: uid + relationship: none + group_type: group + admin_label: 'Last user' + plugin_id: standard + required: false + header: { } + footer: { } + display_extenders: { } + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user.permissions + tags: { } + page_admin: + id: page_admin + display_title: List + display_plugin: page + position: 1 + display_options: + display_description: '' + display_extenders: { } + path: admin/config/people/regcode/list + menu: + type: 'default tab' + title: List + description: 'List and manage registration codes' + weight: 10 + expanded: false + menu_name: main + parent: '' + context: '0' + tab_options: + type: normal + title: 'Registration codes' + description: 'Manage user registration codes.' + weight: 0 + cache_metadata: + max-age: -1 + contexts: + - 'languages:language_content' + - 'languages:language_interface' + - url + - url.query_args + - user.permissions + tags: { }