Skip to content
Snippets Groups Projects
Commit 0b82131c authored by catch's avatar catch
Browse files

Issue #2774399 by mohit_aghera, joebot, Munavijayalakshmi, rensingh99,...

Issue #2774399 by mohit_aghera, joebot, Munavijayalakshmi, rensingh99, borisson_, Chi, quietone: Fatal error on accessing module uninstall page with Forum enabled

(cherry picked from commit b3af2575)
parent aeda6d3a
No related branches found
No related tags found
24 merge requests!8506Draft: Issue #3456536 by ibrahim tameme,!5646Issue #3350972 by nod_: [random test failure]...,!5600Issue #3350972 by nod_: [random test failure]...,!5343Issue #3305066 by quietone, Rename RedirectLeadingSlashesSubscriber,!4350Issue #3307718: Implement xxHash for non-cryptographic use-cases,!3603#ISSUE 3346218 Add a different message on edit comment,!3555Issue #2473873: Views entity operations lack cacheability support, resulting in incorrect dropbuttons,!3494Issue #3327018 by Spokje, longwave, xjm, mondrake: Update PHPStan to 1.9.3 and...,!3410Issue #3340128: UserLoginForm::submitForm has some dead code,!3389Issue #3325184 by Spokje, andypost, xjm, smustgrave: $this->configFactory is...,!3381Issue #3332363: Refactor Claro's menus-and-lists stylesheet,!3307Issue #3326193: CKEditor 5 can grow past the viewport when there is a lot of content,!3236Issue #3332419: Refactor Claro's messages stylesheet,!3231Draft: Issue #3049525 by longwave, fougere, larowlan, kim.pepper, AaronBauman, Wim...,!3212Issue #3294003: Refactor Claro's entity-meta stylesheet,!3194Issue #3330981: Fix PHPStan L1 error "Relying on entity queries to check access by default is deprecated...",!3143Issue #3313342: [PHP 8.1] Deprecated function: strpos(): Passing null to parameter #1 LayoutBuilderUiCacheContext.php on line 28,!3024Issue #3307509: Empty option for views bulk form,!2972Issue #1845004: Replace custom password hashing library with PHP 5.5 password_hash(),!2719Issue #3110137: Remove Classy from core.,!2688Issue #3261452: [PP-1] Remove tracker module from core,!2437Issue #3238257 by hooroomoo, Wim Leers: Fragment link pointing to <textarea>...,!2296Issue #3100732: Allow specifying `meta` data on JSON:API objects,!1626Issue #3256642: Make life better for database drivers that extend another database driver
......@@ -58,7 +58,7 @@ public function validate($module) {
}
$vocabulary = $this->getForumVocabulary();
if ($this->hasTermsForVocabulary($vocabulary)) {
if (!empty($vocabulary) && $this->hasTermsForVocabulary($vocabulary)) {
if ($vocabulary->access('view')) {
$reasons[] = $this->t('To uninstall Forum, first delete all <a href=":url">%vocabulary</a> terms', [
'%vocabulary' => $vocabulary->label(),
......@@ -117,7 +117,12 @@ protected function hasTermsForVocabulary(VocabularyInterface $vocabulary) {
*/
protected function getForumVocabulary() {
$vid = $this->configFactory->get('forum.settings')->get('vocabulary');
return $this->entityTypeManager->getStorage('taxonomy_vocabulary')->load($vid);
if (!empty($vid)) {
return $this->entityTypeManager->getStorage('taxonomy_vocabulary')->load($vid);
}
else {
return NULL;
}
}
}
......@@ -7,6 +7,7 @@
use Drupal\node\Entity\NodeType;
use Drupal\comment\Entity\Comment;
use Drupal\taxonomy\Entity\Term;
use Drupal\taxonomy\Entity\Vocabulary;
use Drupal\Tests\BrowserTestBase;
/**
......@@ -159,4 +160,23 @@ public function testForumUninstallWithoutFieldStorage() {
$this->container->get('module_installer')->uninstall(['forum']);
}
/**
* Tests uninstallation of forum module when vocabulary is deleted.
*/
public function testForumUninstallWithoutForumVocabulary() {
$this->drupalLogin($this->rootUser);
Vocabulary::load('forums')->delete();
// Now attempt to uninstall forum.
$this->drupalGet('admin/modules/uninstall');
$this->assertSession()->responseNotContains('The website encountered an unexpected error. Please try again later');
$this->assertSession()->statusCodeEquals(200);
// Assert forum is no longer required.
$this->assertSession()->fieldExists('uninstall[forum]');
$this->drupalGet('admin/modules/uninstall');
$this->submitForm(['uninstall[forum]' => 1], 'Uninstall');
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment