Drupal issueshttps://lab.civicrm.org/dev/drupal/-/issues2019-04-17T15:38:50Zhttps://lab.civicrm.org/dev/drupal/-/issues/42Drupal8: Can't upload images via CKEditor/kcfinder2019-04-17T15:38:50ZJonGoldDrupal8: Can't upload images via CKEditor/kcfinderTo authenticate, CKEditor calls [CRM_Utils_System::loadBootStrap() followed by CRM_Core_Permission::check()](https://github.com/civicrm/civicrm-packages/blob/master/kcfinder/integration/civicrm.php#L105-L108).
No Drupal8-specific method...To authenticate, CKEditor calls [CRM_Utils_System::loadBootStrap() followed by CRM_Core_Permission::check()](https://github.com/civicrm/civicrm-packages/blob/master/kcfinder/integration/civicrm.php#L105-L108).
No Drupal8-specific method exists, but when I created one, `CRM_Core_Permission_Drupal8::check()` couldn't load the [current user](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/Permission/Drupal8.php#L61). I assume something is failing in the `loadBootstrap()` call but I can't figure out what it is.
[This SE post](https://drupal.stackexchange.com/questions/196203/how-do-i-check-the-current-user-session) seems to contain details, but I'm not Drupal-savvy enough to interpret it.5.13.0https://lab.civicrm.org/dev/drupal/-/issues/72confirmation screen shows internal profile name not public title (reg screen ...2019-08-07T18:07:13ZDLaurysconfirmation screen shows internal profile name not public title (reg screen shows public title)The profile names that appear on the screen when registering for an event don't match between the register screen and the confirmation screen. The register screen uses the 'public title' of the profile, which is great! But then the confi...The profile names that appear on the screen when registering for an event don't match between the register screen and the confirmation screen. The register screen uses the 'public title' of the profile, which is great! But then the confirmation screen shows the internal profile name.5.17.0https://lab.civicrm.org/dev/drupal/-/issues/186drupal 9: Create User Record action crashes if using first+last+email as unsu...2023-07-05T23:49:05ZDaveDdrupal 9: Create User Record action crashes if using first+last+email as unsupervised ruleSee https://civicrm.stackexchange.com/questions/44841/create-user-record-action-on-a-contact-summary-page-throws-error-is-this-a-bug
Putting as regression for now but not completely sure.
Doesn't happen in drupal 7.See https://civicrm.stackexchange.com/questions/44841/create-user-record-action-on-a-contact-summary-page-throws-error-is-this-a-bug
Putting as regression for now but not completely sure.
Doesn't happen in drupal 7.5.63.0https://lab.civicrm.org/dev/drupal/-/issues/179KCFinder on D9: You don't have permissions to browse server.2022-08-12T05:14:07ZSandor SemseyKCFinder on D9: You don't have permissions to browse server.## Overview
The issue is very similar to this one:
https://civicrm.stackexchange.com/questions/41023/cannot-upload-images-using-ckeditor-on-message-template-after-5-45-upgrade
and the proposed workaround is solving it (reverting [this...## Overview
The issue is very similar to this one:
https://civicrm.stackexchange.com/questions/41023/cannot-upload-images-using-ckeditor-on-message-template-after-5-45-upgrade
and the proposed workaround is solving it (reverting [this](https://github.com/civicrm/civicrm-packages/commit/0bb407782b810c32a81e0ad42af67a435b44c845) commit), but I think the root cause is different.
**Steps to reproduce**
1. Use CKEditor4 as Wysiwig Editor
1. Create Event
1. Insert image to description
1. Try to browse, or upload image
1. Error: You don't have permissions to browse server.
## Analysis
In my case classes are found, so it's not namespacing. After some debugging, I think the following happens:
1. In `civicrm/packages/kcfinder/integration/civicrm.php` Drupal is bootstrapped, user authenticated and correct `KCFINDER` params are added to the `$_SESSION` var:
```
$_SESSION['KCFINDER']['disabled'] = false;
$_SESSION['KCFINDER']['uploadURL'] = $config->imageUploadURL;
$_SESSION['KCFINDER']['uploadDir'] = $config->imageUploadDir;
```
1. Then in `\kcfinder\uploader::construct()` session ID is requested from Drupal (`\CRM_Core_Config::singleton()->userSystem->getSessionId()`)
1. Eventually `Drupal\Core\Session\SessionManager::start()` finds no session so starts a new one, thus removing `KCFINDER` array from `$_SESSION`. This way kcfinder defaults are used, which is to disable access.
So I thought it's a cookie issue (though `$_COOKIE` was populated with all the cookies all the way through).
I changed `CRM_Utils_System_Drupal8::loadBootStrap()` to pass cookies to the Symfony request:
```
$request = new \Symfony\Component\HttpFoundation\Request([], [], [], $_COOKIE, [], $_SERVER);
```
This way session was found in step 3 above, it was restored, but it also didn't contained the `KCFINDER` array as `$_SESSION` was overwritten by restoring.
So I'm stuck here, probably I'm missing something obvious, but currently I can't see why should it behave differently.
Has anybody any idea?
**Drupal: 9.3.12**
**Civi: 5.47.4**
## UPDATE
Relevant issues in other repos:
https://lab.civicrm.org/dev/core/-/issues/3419#note_74113
https://lab.civicrm.org/dev/civicrm-asset-plugin/-/issues/45.51.0https://lab.civicrm.org/dev/drupal/-/issues/176Epic: Drupal 10 readiness2023-08-19T00:44:33ZDaveDEpic: Drupal 10 readinessLab snippet with a full set of instructions on how to scrape and claw a drupal 10+civi install into existence:
https://lab.civicrm.org/-/snippets/84
- [ ] Requires php 8.1 https://lab.civicrm.org/dev/core/-/issues/3181
- [x] Requires s...Lab snippet with a full set of instructions on how to scrape and claw a drupal 10+civi install into existence:
https://lab.civicrm.org/-/snippets/84
- [ ] Requires php 8.1 https://lab.civicrm.org/dev/core/-/issues/3181
- [x] Requires symfony 6 (this currently prevents even downloading the civi files even if you try really hard) https://lab.civicrm.org/dev/core/-/issues/2316 / PR https://github.com/civicrm/civicrm-core/pull/24132
- [x] Hooks defined by getSubscribedEvents don't work: https://lab.civicrm.org/dev/core/-/issues/3802
- [x] Composer-compile-lib [restricts to symfony 5](https://github.com/civicrm/composer-compile-lib/blob/a03d219bc4bad5aa878e198719b83178a910984b/composer.json#L26) / PR https://github.com/civicrm/composer-compile-lib/pull/5
- [x] Miscellaneous other composer.json updates - see the lab snippet above.
- [x] Why does cache/integration-tests need to be in a prod install? Can it be in require-dev instead? PR: https://github.com/civicrm/civicrm-core/pull/25054
- [x] https://github.com/civicrm/civicrm-core/pull/25499 covers these:
- [x] symfony/config
- [x] symfony/dependency-injection
- [x] symfony/event-dispatcher
- [x] symfony/filesystem
- [x] symfony/process
- [x] symfony/var-dumper
- [x] symfony/service-contracts
- [x] symfony/finder
- [x] psr/container
- [x] cv uses some deprecated symfony [in bootstrap](https://github.com/civicrm/cv/issues/117) / PR: https://github.com/civicrm/cv/pull/120
- [x] Followup fix because the attempt to keep supporting drupal 8 doesn't work with drupal 10: https://github.com/civicrm/cv/pull/126
- [x] core loadBoostrap(), needed e.g. for `cv`. https://github.com/civicrm/civicrm-core/pull/24133
- [x] similarly CRM_Utils_System_Drupal8 - https://github.com/civicrm/civicrm-core/pull/23302
- [x] financialacls core extension: https://lab.civicrm.org/dev/core/-/issues/3184
- [x] Requires guzzle 7 (I think this is easy) https://lab.civicrm.org/dev/drupal/-/issues/171 / PR: https://github.com/civicrm/civicrm-core/pull/22918
- [x] Requires psr/log 2.0. PR: https://github.com/civicrm/civicrm-core/pull/23409
- [x] Deprecation prevents civicrm-setup from running (already PR'd): https://github.com/civicrm/civicrm-core/pull/21809 / https://lab.civicrm.org/dev/drupal/-/issues/167
- [x] civicrm-drupal-8 won't enable because it doesn't [declare it is compatible](https://github.com/civicrm/civicrm-drupal-8/blob/b55fb5027c453ce86f76f357a3087e19a3bb4d41/civicrm.info.yml#L5)
- PR: https://github.com/civicrm/civicrm-drupal-8/pull/73
- [x] civicrm-drupal-8 civicrmtheme submodule won't enable because it doesn't [declare it is compatible](https://github.com/civicrm/civicrm-drupal-8/blob/b55fb5027c453ce86f76f357a3087e19a3bb4d41/modules/civicrmtheme/civicrmtheme.info.yml#L5)
- PR: https://github.com/civicrm/civicrm-drupal-8/pull/73
- [ ] For running unit tests:
- [ ] phpunit9 support: https://github.com/civicrm/civicrm-core/compare/master...demeritcowboy:civicrm-core:phpunit9?expand=1 along with `composer require yoast/phpunit-polyfills`
- [x] deprecated theme for mink tests: https://github.com/civicrm/civicrm-drupal-8/pull/76
- [ ] Possibly move this file to a community-maintained drupal module? It needs to be in a drupal module. Not much uses it currently - civicrm_entity and 2 extensions.
Timewise it would be cool to have something at least installable for Drupalcon (Apr 25).
cc: @KarinG @jackrabbithanna5.60.0https://lab.civicrm.org/dev/drupal/-/issues/174Change message so it doesn't say Drupal8 on Drupal9 site2022-09-20T22:27:16ZJoeMurrayChange message so it doesn't say Drupal8 on Drupal9 siteThere was a message today on page for Synchronize Users to Contacts (/civicrm/admin/synchuser:
Synchronize Drupal8 Users
This was on a Drupal9 site, and the client got concerned about what they were running.
Please adjust the message s...There was a message today on page for Synchronize Users to Contacts (/civicrm/admin/synchuser:
Synchronize Drupal8 Users
This was on a Drupal9 site, and the client got concerned about what they were running.
Please adjust the message so that it either refers to just Drupal or ideally emits the correct major version of Drupal, eg Drupal9, Drupal10, etc.5.55.0Monish DebMonish Debhttps://lab.civicrm.org/dev/drupal/-/issues/172Deprecated function drupal_get_installed_schema_version() in 9.3, but with a ...2022-01-02T15:47:07ZDaveDDeprecated function drupal_get_installed_schema_version() in 9.3, but with a twistdrupal_get_installed_schema_version() is deprecated in drupal:9.3.0 and is removed from drupal:10.0.0. Use \Drupal\Core\Update\UpdateHookRegistry::getInstalledVersion() or \Drupal\Core\Update\UpdateHookRegistry::getAllInstalledVersions()...drupal_get_installed_schema_version() is deprecated in drupal:9.3.0 and is removed from drupal:10.0.0. Use \Drupal\Core\Update\UpdateHookRegistry::getInstalledVersion() or \Drupal\Core\Update\UpdateHookRegistry::getAllInstalledVersions() instead. See https://www.drupal.org/node/2444417
This is in vendor\civicrm\civicrm-core\CRM/Utils/System/Drupal8.php:
```
public function getModules() {
$modules = [];
$module_data = \Drupal::service('extension.list.module')->reset()->getList();
foreach ($module_data as $module_name => $extension) {
if (!isset($extension->info['hidden']) && $extension->origin != 'core') {
$extension->schema_version = drupal_get_installed_schema_version($module_name);
$modules[] = new CRM_Core_Module('drupal.' . $module_name, ($extension->status == 1));
}
}
return $modules;
}
```
The reason I haven't just put up a simple replacement PR is because if you look at the above function you'll notice schema_version is never used. If you look at the docblock in Base.php it says "List modules installed in the CMS, _including enabled and disabled ones_." Looking at the drupal 7 version (in DrupalBase.php), it does this:
`'SELECT name, status FROM {system} WHERE type = \'module\' AND schema_version <> -1'`
which means only the modules that are installed (but possibly disabled - that's what status is). Now in drupal 8 there is no concept of disabled, it's either installed or uninstalled, but the drupal 8 code is including all of them. In drupal 8 $extension->status means installed or uninstalled.
So two options are:
1. Try to match the drupal 7 implementation/docblock, which means excluding it if $extension->status is 0, and always passing 1 as the second parameter to CRM_Core_Module(), because disabled doesn't mean anything in drupal 8.
2. Leave it the way it is and just remove the unused line about schema_version.
Trying to track down where this gets used, it seems it's mostly in ManagedEntities, which I usually stay away from, and I'm not even sure why ManagedEntities would be dealing with drupal modules other than civicrm itself.
So I'm tempted to stop thinking about it and do item 2.5.46.0https://lab.civicrm.org/dev/drupal/-/issues/171Drupal 10 requires Guzzle 72022-07-10T15:27:07ZDaveDDrupal 10 requires Guzzle 7It doesn't seem like there is any major change but I'm not super-familiar with everywhere civi uses guzzle: https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#other-backwards-compatibility-breaking-changes
The main thing at the m...It doesn't seem like there is any major change but I'm not super-familiar with everywhere civi uses guzzle: https://github.com/guzzle/guzzle/blob/master/UPGRADING.md#other-backwards-compatibility-breaking-changes
The main thing at the moment is you need to do something like `composer require guzzlehttp/guzzle:"6.3.0 as 7.4.0"` just to get the civi files downloaded, but that's obviously not the right thing to do.5.52.0https://lab.civicrm.org/dev/drupal/-/issues/169"Your browser session has expired and we are unable to complete your form sub...2022-03-16T00:19:54ZJonGold"Your browser session has expired and we are unable to complete your form submission" on all D9.2 anonymous sessions### Overview
This is an expensive bug, so I'm reporting it even though I don't have complete information.
On all D9.2 sites, anonymous users whose first visit to a CiviCRM page is a contribution or event registration page, will receive ...### Overview
This is an expensive bug, so I'm reporting it even though I don't have complete information.
On all D9.2 sites, anonymous users whose first visit to a CiviCRM page is a contribution or event registration page, will receive the error "Your browser session has expired and we are unable to complete your form submission" on submission. If they resubmit the page it will go through.
### Steps to Replicate
* Install a fresh D8 buildkit site.
* Upgrade to D9.2.0 or higher.
* Open an incognito window and paste in the URL to an event/contribution page (easiest to test if it's a free event with a confirmation page).
* Submit the page. See the error.
### Analysis
I'm still tracking this down and I don't really know the Civi session manager well - but on initial page load, `CRM_Core_Key::sessionID()` returns an empty string. On submitting the form, it finds a session ID correctly, so in `CRM_Core_Key::validate()` the expected key doesn't match the actual key.
While debugging, it's good to note that you can `composer update` to switch between D9.1.3 and D9.2.8 to switch between unbugged and bugged behavior.
It looks like this is the cause:
https://www.drupal.org/node/30063065.43.2https://lab.civicrm.org/dev/drupal/-/issues/168Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact...2022-12-01T01:13:06ZAndrew WassonNotice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc).Hi Guys,
It's been a while (years) since I've contributed in the issue queue so I'm a little rusty.
This is just an annoyance where CiviCRM tries to render the Contact Link in a view for visitors who don't have the permissions to see i...Hi Guys,
It's been a while (years) since I've contributed in the issue queue so I'm a little rusty.
This is just an annoyance where CiviCRM tries to render the Contact Link in a view for visitors who don't have the permissions to see it. The result is a PHP Warning:
```Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of /sites/all/modules/civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc).```
In order to squelch the notice I've added a conditional isset($custom_link). I can't see any adverse consequences from adding it and I'll be happy to make a patch if someone can point me in the direction of some docs for doing so.
Cheers,
Andrew5.57.0https://lab.civicrm.org/dev/drupal/-/issues/167Drupal service 'site.path' is deprecated in drupal 9 and will be removed in d...2022-06-11T19:26:30ZDaveDDrupal service 'site.path' is deprecated in drupal 9 and will be removed in drupal 10In https://github.com/civicrm/civicrm-core/blob/master/setup/src/Setup/DrupalUtil.php#L23 it calls `\Drupal::service('site.path');`.
But I'm wondering why that function getDrupalSiteDir() even exists and why it's not part of CRM_Utils_S...In https://github.com/civicrm/civicrm-core/blob/master/setup/src/Setup/DrupalUtil.php#L23 it calls `\Drupal::service('site.path');`.
But I'm wondering why that function getDrupalSiteDir() even exists and why it's not part of CRM_Utils_System_X. Maybe a timing issue since civi isn't installed yet at that point?
Anyway the relevant drupal issue is https://www.drupal.org/project/drupal/issues/3074585#comment-13220446.
Because of the (bleep) `@trigger_error` usage that drupal uses though it only comes up when running unit tests in drupal's own testing environment (until drupal 10 when it will hard fail, effectively nulling the effect of outputting a deprecation for most people).5.52.0https://lab.civicrm.org/dev/drupal/-/issues/163Session erroneously getting set to NULL on Drupal user login2021-11-11T23:32:18ZsteveplatzSession erroneously getting set to NULL on Drupal user loginAnonymous sessions may contain data that needs to be retained after login, for example commerce cart data. In the initialize() method of the core session class civicrm/civicrm-core/CRM/Core/Session.php, there is a check for a changed ses...Anonymous sessions may contain data that needs to be retained after login, for example commerce cart data. In the initialize() method of the core session class civicrm/civicrm-core/CRM/Core/Session.php, there is a check for a changed session id, which if it evaluates to TRUE will set a current session with data to NULL.
```php
// remove $_SESSION reference if session is changed
if (($sid = session_id()) !== $this->sessionID) {
$this->_session = NULL;
$this->sessionID = $sid;
}
```
I've tested this with Drupal 9.2.4 CiviCRM 5.35 and Drupal Commerce 2.26. This specific change was added in https://lab.civicrm.org/dev/drupal/-/issues/98 for Drupal 7.5.43.0https://lab.civicrm.org/dev/drupal/-/issues/161Syntax errors when loading sample data2022-03-16T00:25:22ZjotamartosSyntax errors when loading sample dataI'm getting the following error when enabling the sample data during the installation of CiviCRM 5.39.0
```
Cannot execute INSERT INTO `civicrm_acl` (`id`, `name`, `deny`, `entity_table`, `entity_id`, `operation`, `object_table`, `objec...I'm getting the following error when enabling the sample data during the installation of CiviCRM 5.39.0
```
Cannot execute INSERT INTO `civicrm_acl` (`id`, `name`, `deny`, `entity_table`, `entity_id`, `operation`, `object_table`, `object_id`, `acl_table`, `acl_id`, `is_active`) VALUES: DB Error: syntax error
```
I got this error when using the browser and when using the console and the curl command
```
curl --data-urlencode "civicrm_install_type=drupal" --data-urlencode "go=" --data-urlencode "seedLanguage=en_US" --data-urlencode "database=MySQLDatabase" --data-urlencode "mysql[server]=127.0.0.1:3306" --data-urlencode "mysql[database]=civicrm_database" --data-urlencode "mysql[username]=civicrm_user" --data-urlencode "mysql[password]=PASSWORD" --data-urlencode "drupal[server]=127.0.0.1:3306" --data-urlencode "drupal[database]=drupal_database" --data-urlencode "drupal[username]=drupal_user" --data-urlencode "drupal[password]=PASSWORD" --data-urlencode "loadGenerated=1" -H "Content-Type: application/x-www-form-urlencoded" http://127.0.0.1:80/modules/contrib/civicrm/install/index.php
```
Please note that the last parameter (--data-urlencode "loadGenerated=1") is the one that enables the sample data. If I do not include/enable it, the installation works properly.
**Environment:**
CiviCRM 5.39.0
Drupal 7.81.0
PHP 7.3.29
Let me know if you need more info.
Thanks5.40.0https://lab.civicrm.org/dev/drupal/-/issues/153Drupal 8 profile validation not finding the right profile when validating sub...2023-02-15T06:04:10ZDaveDDrupal 8 profile validation not finding the right profile when validating submission on CMS user tabsIn drupal 8/9, like in drupal 7, the CMS user record by default has the Name and Address profile available for editing on the CMS side. As noted in passing at https://lab.civicrm.org/dev/drupal/-/issues/117#note_40124 the validation for ...In drupal 8/9, like in drupal 7, the CMS user record by default has the Name and Address profile available for editing on the CMS side. As noted in passing at https://lab.civicrm.org/dev/drupal/-/issues/117#note_40124 the validation for this form isn't working fully in drupal 8/9.
It appears to be a name vs label problem. The drupal 8 implementation uses the label to look up the profile. I have a quickie fix below but am mulling it over a bit since there's a lot of other things wrong with this form, e.g.
* https://lab.civicrm.org/dev/drupal/-/issues/113
* https://lab.civicrm.org/dev/drupal/-/issues/117
* https://lab.civicrm.org/dev/core/-/issues/2301
```diff
index 37e7ead..b18bb04 100644
--- a/src/Form/UserProfile.php
+++ b/src/Form/UserProfile.php
@@ -75,7 +75,12 @@ class UserProfile extends FormBase {
$this->profile = $profile;
// Search for the profile form, otherwise generate a 404.
- $uf_groups = \CRM_Core_BAO_UFGroup::getModuleUFGroup('User Account');
+ $uf_groups = \CRM_Core_BAO_UFGroup::getModuleUFGroup('User Account', 0, TRUE, \CRM_Core_Permission::VIEW, array(
+ 'id',
+ 'name',
+ 'title',
+ 'is_active',
+ ));
if (empty($uf_groups[$profile])) {
throw new ResourceNotFoundException();
}
@@ -109,7 +114,7 @@ class UserProfile extends FormBase {
* {@inheritdoc}
*/
public function validateForm(array &$form, FormStateInterface $form_state) {
- $errors = \CRM_Core_BAO_UFGroup::isValid($this->contactId, $this->ufGroup['title']);
+ $errors = \CRM_Core_BAO_UFGroup::isValid($this->contactId, $this->ufGroup['name']);
if (is_array($errors)) {
foreach ($errors as $name => $error) {
```
Relatedly, this seems an odd return value if it couldn't find the profile. Shouldn't it return an error?
https://github.com/civicrm/civicrm-core/blob/a7b9631b60548092f8c3056c375dd4b81606dbd4/CRM/Core/BAO/UFGroup.php#L785
FYI @alandixon @spalmstrom5.59.0https://lab.civicrm.org/dev/drupal/-/issues/149D8/D9 Fix Session Start Handling2020-11-30T23:13:25ZseamusleeD8/D9 Fix Session Start HandlingAt present because there is no override in the Drupal8 system class, the DrupalBase SessionStart function is used instead which uses functions and session related code that is not suitable for Drupal8 and can cause Session Already Starte...At present because there is no override in the Drupal8 system class, the DrupalBase SessionStart function is used instead which uses functions and session related code that is not suitable for Drupal8 and can cause Session Already Started notices in watchdog if you use cron.php to execute your cron job.5.33.0seamusleeseamusleehttps://lab.civicrm.org/dev/drupal/-/issues/148When creating Premium - requiring subscription even for "physical" premiums2020-12-02T20:14:25ZplanetwebbWhen creating Premium - requiring subscription even for "physical" premiumsWhen trying to add a new Premium (first one), I get the error "Please enter a Period Type" - even though the premium is a regular "product" and not a subscription.
Civi 5.31 / Drupal 7.73 / PHP 7.3
It has been reproduced by another us...When trying to add a new Premium (first one), I get the error "Please enter a Period Type" - even though the premium is a regular "product" and not a subscription.
Civi 5.31 / Drupal 7.73 / PHP 7.3
It has been reproduced by another user with 5.31, his workaround is to submit dummy subscription info just to submit.
![Screen_Shot_2020-11-20_at_10.08.59_AM](/uploads/8ae8ed5da027f8fd5e550f3ea5185971/Screen_Shot_2020-11-20_at_10.08.59_AM.png)5.32.0https://lab.civicrm.org/dev/drupal/-/issues/147Drupal's permission page does not show descriptions2021-02-02T00:50:16ZfkohrtDrupal's permission page does not show descriptionsCiviCRM 5.31 on Drupal 8 allows in the web UI at `/admin/people/permissions` to configure permissions. But all the CiviCRM permissions show up without their [descriptions](https://lab.civicrm.org/dev/core/-/blob/master/CRM/Core/Permissio...CiviCRM 5.31 on Drupal 8 allows in the web UI at `/admin/people/permissions` to configure permissions. But all the CiviCRM permissions show up without their [descriptions](https://lab.civicrm.org/dev/core/-/blob/master/CRM/Core/Permission.php), which makes it harder to figure out the ones I need. It doesn't help to click _Hide descriptions_ and then _Show descriptions_. This has not been an issue for CiviCRM 5.17 on Drupal 7.5.33.0https://lab.civicrm.org/dev/drupal/-/issues/141Drupal 8 hook_uninstall not implemented2021-03-15T15:49:45ZDaveDDrupal 8 hook_uninstall not implementedUninstalling civi using the UI or drush doesn't currently uninstall anything it just tells drupal basically to uncheck the box on the modules list page, but all the data is still there. This leaves drupal+civi in an inconsistent state an...Uninstalling civi using the UI or drush doesn't currently uninstall anything it just tells drupal basically to uncheck the box on the modules list page, but all the data is still there. This leaves drupal+civi in an inconsistent state and trying to check the box again leads to a borked UI because civi keeps trying to do a first run but can't because as far as it's concerned it's already installed.
In drupal 7 hook_uninstall is implemented and drops all the civi tables.
https://github.com/civicrm/civicrm-drupal-8/pull/45#issuecomment-6989822575.37.0https://lab.civicrm.org/dev/drupal/-/issues/138Drupal 9 deprecations2020-09-15T21:10:00ZDaveDDrupal 9 deprecationsSee also https://lab.civicrm.org/dev/drupal/-/issues/122 which is about the civicrm-drupal-8 repo, whereas this is more about core files.
entity_create() is gone.
entity_load() is gone.
url() is gone.
getUsername() is gone.
I have a...See also https://lab.civicrm.org/dev/drupal/-/issues/122 which is about the civicrm-drupal-8 repo, whereas this is more about core files.
entity_create() is gone.
entity_load() is gone.
url() is gone.
getUsername() is gone.
I have a patch ready but haven't fully tested it yet. WIP: https://github.com/civicrm/civicrm-core/compare/master...demeritcowboy:entity-drupal-9?expand=15.31.0https://lab.civicrm.org/dev/drupal/-/issues/137D8 Install checks run via Drupal Status Report - give misleading warnings.2020-10-14T13:50:13Zluke.stewartD8 Install checks run via Drupal Status Report - give misleading warnings.**Problem:**
If the civicrm.settings.php file is not writable, a warning is showing on Drupal Status Report indicating that the civicrm.settings.php file should be writable by the webserver user. This also shows on the command line when...**Problem:**
If the civicrm.settings.php file is not writable, a warning is showing on Drupal Status Report indicating that the civicrm.settings.php file should be writable by the webserver user. This also shows on the command line when running some drush commands.
**Ideal solution:**
The reverse behaviour should be present. Ideally we should warn if civicrm.settings.php is writable by the web server user.
The drupal hook requirements is what is generating this error message.
**Details:**
There is an argument passed to this hook `$phase` that would allow us to target this behaviour.
Currently the behaviour is to use \Civi\Setup checkRequirements() which runs Civicrm Core's install requirements checks.
There is possibly some use in some of these requirements being checked and warnings displayed on the Drupal Status Report page - however there is currently no easy way to differentiate between checks that should only run at install time like the writability of civicrm.settings.php and those that make sense to run post install as well.
Currently the check to see if the user is authorised to run the install only runs when phase is set to install.
An initial solution is potentially to only run the check requirements on install. Then if additional metadata can be returned by `$setup->checkRequirements()->getMessages()` as to whether the warning should run on install or runtime, or checks performed inside civicrm core requirements checks to test for if civi is installed the change could be reverted.5.32.0