diff --git a/composer.json b/composer.json index 01d4b07..f6b0eaf 100644 --- a/composer.json +++ b/composer.json @@ -132,6 +132,7 @@ "drupal/redis": "^1.5", "drupal/restui": "^1.16", "drupal/role_delegation": "^1.1", + "drupal/role_expire": "^2.0", "drupal/search_api": "^1.19", "drupal/search_api_autocomplete": "^1.2", "drupal/search_api_page": "^1.x-dev", @@ -154,6 +155,7 @@ "drupal/ultimate_cron": "^2.x-dev", "drupal/unique_content_field_validation": "^1.0", "drupal/url_to_video_filter": "^2.0", + "drupal/user_csv_import": "^2.0", "drupal/user_email_verification": "1.x-dev@dev", "drupal/views_conditional": "^1.x-dev", "drupal/views_ef_fieldset": "^1.5", diff --git a/composer.lock b/composer.lock index 4a5b569..45a5bd7 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": "5b2c8a62c983719b2ae5e6c517482236", + "content-hash": "333ef1681d6c0600ac0a31343a6df7a0", "packages": [ { "name": "alchemy/zippy", @@ -11865,6 +11865,54 @@ "issues": "http://drupal.org/project/role_delegation" } }, + { + "name": "drupal/role_expire", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/role_expire.git", + "reference": "2.0.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/role_expire-2.0.1.zip", + "reference": "2.0.1", + "shasum": "716f6ee6096a07ed4f5bf278b5169633d587a66f" + }, + "require": { + "drupal/core": "^8.8 || ^9" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.1", + "datestamp": "1625304697", + "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": "rcodina", + "homepage": "https://www.drupal.org/user/2635031" + }, + { + "name": "stewsnooze", + "homepage": "https://www.drupal.org/user/243255" + } + ], + "description": "Enables user roles to expire on given time and day.", + "homepage": "https://www.drupal.org/project/role_expire", + "support": { + "source": "https://git.drupalcode.org/project/role_expire" + } + }, { "name": "drupal/search_api", "version": "1.20.0", @@ -13621,6 +13669,65 @@ "source": "https://git.drupalcode.org/project/url_to_video_filter" } }, + { + "name": "drupal/user_csv_import", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/user_csv_import.git", + "reference": "2.0.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/user_csv_import-2.0.1.zip", + "reference": "2.0.1", + "shasum": "a29eedf329c7711f67aa68168ca273c0cdd970c2" + }, + "require": { + "drupal/core": "^8 || ^9" + }, + "require-dev": { + "drupal/roleassign": "*" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.1", + "datestamp": "1625628136", + "security-coverage": { + "status": "not-covered", + "message": "Project has not opted into security advisory coverage!" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0+" + ], + "authors": [ + { + "name": "eahonet", + "homepage": "https://www.drupal.org/user/3546806" + }, + { + "name": "gisle", + "homepage": "https://www.drupal.org/user/409554" + }, + { + "name": "mcfdez87", + "homepage": "https://www.drupal.org/user/2445390" + } + ], + "description": "User import module", + "homepage": "https://github.com/steveoliver/user_import", + "keywords": [ + "Drupal" + ], + "support": { + "source": "https://github.com/steveoliver/user_import", + "issues": "https://github.com/steveoliver/user_import/issues" + } + }, { "name": "drupal/user_email_verification", "version": "dev-1.x", @@ -21812,5 +21919,5 @@ "platform-overrides": { "php": "7.3" }, - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } diff --git a/config/sync/core.extension.yml b/config/sync/core.extension.yml index ace7769..849818a 100644 --- a/config/sync/core.extension.yml +++ b/config/sync/core.extension.yml @@ -175,6 +175,7 @@ module: rest: 0 restui: 0 role_delegation: 0 + role_expire: 0 search_api: 0 search_api_db: 0 search_api_solr: 0 diff --git a/config/sync/role_expire.config.yml b/config/sync/role_expire.config.yml new file mode 100644 index 0000000..8953d16 --- /dev/null +++ b/config/sync/role_expire.config.yml @@ -0,0 +1,6 @@ +role_expire_default_roles: '{"unverified":"0","free_user":"0","contact_company":"0","alpha_testeur":"0","student":"free_user","adherent":"0","translator":"0","admin_showroom":"0","admin":"0","root":"0"}' +role_expire_disabled_roles: '{"unverified":1,"free_user":1,"contact_company":1,"alpha_testeur":1,"student":0,"adherent":1,"translator":1,"admin_showroom":1,"admin":1,"root":1}' +role_expire_default_duration_roles: + student: '1 year' +_core: + default_config_hash: lhWT9VD8JMC6tKD0jyuXGQDxYY0v6u7jaCXBhKKmXks diff --git a/config/sync/search_api_solr.solr_field_type.text_string_ascii_und_6_0_0.yml b/config/sync/search_api_solr.solr_field_type.text_string_ascii_und_6_0_0.yml index 2582767..6e082c9 100644 --- a/config/sync/search_api_solr.solr_field_type.text_string_ascii_und_6_0_0.yml +++ b/config/sync/search_api_solr.solr_field_type.text_string_ascii_und_6_0_0.yml @@ -26,7 +26,7 @@ field_type: class: solr.RemoveDuplicatesTokenFilterFactory - class: solr.ASCIIFoldingFilterFactory - preserveOriginal: true + preserveOriginal: 1 - class: solr.WordDelimiterGraphFilterFactory preserveOriginal: 1 @@ -41,7 +41,7 @@ field_type: class: solr.RemoveDuplicatesTokenFilterFactory - class: solr.ASCIIFoldingFilterFactory - preserveOriginal: true + preserveOriginal: 1 - class: solr.WordDelimiterGraphFilterFactory preserveOriginal: 1 diff --git a/config/sync/ultimate_cron.job.role_expire_cron.yml b/config/sync/ultimate_cron.job.role_expire_cron.yml new file mode 100644 index 0000000..a5ad6f5 --- /dev/null +++ b/config/sync/ultimate_cron.job.role_expire_cron.yml @@ -0,0 +1,17 @@ +uuid: b18efe2b-5573-4ff3-946e-6ec51e769206 +langcode: en +status: true +dependencies: + module: + - role_expire +title: 'Default cron handler' +id: role_expire_cron +weight: 0 +module: role_expire +callback: role_expire_cron +scheduler: + id: simple +launcher: + id: serial +logger: + id: database diff --git a/config/sync/user.role.admin.yml b/config/sync/user.role.admin.yml index 82ce7df..e3fe300 100644 --- a/config/sync/user.role.admin.yml +++ b/config/sync/user.role.admin.yml @@ -122,6 +122,7 @@ permissions: - 'edit own thematique content' - 'edit own workflow workflow_transition' - 'edit privacy_policy config page entity' + - 'edit role expire default duration' - 'edit terms in assisted_research' - 'edit terms in collectionneurs' - 'edit terms in company' @@ -133,6 +134,7 @@ permissions: - 'edit terms in tags' - 'edit terms in thesaurus' - 'edit terms_of_services config page entity' + - 'edit users role expire' - excluded_from_login_tracking - 'execute entity:save_action menu_link_content' - 'execute entity:save_action node' diff --git a/config/sync/user.role.alpha_testeur.yml b/config/sync/user.role.alpha_testeur.yml index cda8b31..5b82032 100644 --- a/config/sync/user.role.alpha_testeur.yml +++ b/config/sync/user.role.alpha_testeur.yml @@ -11,12 +11,17 @@ permissions: - 'add flag lists' - 'create member profile' - 'create note content' + - 'create workflow workflow_transition' - 'display eu cookie compliance popup' - 'edit own flag lists' - 'edit own note content' - 'flag dossier other items' - 'unflag dossier other items' + - 'update own commerce_license' - 'update own member profile' - 'use jsonrpc services' + - 'view own commerce_license' - 'view own flag lists' - 'view own member profile' + - 'view printer friendly versions' + - 'view recurring commerce_order' diff --git a/config/sync/user.role.student.yml b/config/sync/user.role.student.yml index 85b7505..5c047a5 100644 --- a/config/sync/user.role.student.yml +++ b/config/sync/user.role.student.yml @@ -10,9 +10,11 @@ permissions: - 'access materio search' - 'add flag lists' - 'create member profile' + - 'create note content' - 'create workflow workflow_transition' - 'display eu cookie compliance popup' - 'edit own flag lists' + - 'edit own note content' - 'flag dossier other items' - 'unflag dossier other items' - 'update own member profile'