diff --git a/permissions_by_term.module b/permissions_by_term.module index 500c94f..42f058a 100644 --- a/permissions_by_term.module +++ b/permissions_by_term.module @@ -308,7 +308,9 @@ function permissions_by_term_user_form_submit(array &$form, FormStateInterface $ // Rebuild permissions for nodes if needed. $origTerms = $form['access']['terms']['#default_value'] ?? []; - $newTerms = $form_state->getValue('terms'); + // Get new selected terms. When no term is selected, Drupal does not return + // an array here but an empty string, so assume an empty array in that case. + $newTerms = is_array($form_state->getValue('terms')) ? $form_state->getValue('terms') : []; $changes = array_diff($origTerms, $newTerms) + array_diff($newTerms, $origTerms); if (!\Drupal::config('permissions_by_term.settings')->get('disable_node_access_records') &&