Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / modules / user / src / Plugin / views / filter / Roles.php
index 47adafb8b6986cba33ba2610fdf95e95235755e1..a6986f2257cf923b00d745098a4bb99a9bb9f868 100644 (file)
@@ -74,10 +74,20 @@ class Roles extends ManyToOne {
    */
   public function calculateDependencies() {
     $dependencies = [];
+
     if (in_array($this->operator, ['empty', 'not empty'])) {
       return $dependencies;
     }
-    foreach ($this->value as $role_id) {
+
+    // The value might be a string due to the wrong plugin being used for role
+    // field data, and subsequently the incorrect config schema object and
+    // value. In the empty case stop early. Otherwise we cast it to an array
+    // later.
+    if (is_string($this->value) && $this->value === '') {
+      return [];
+    }
+
+    foreach ((array) $this->value as $role_id) {
       $role = $this->roleStorage->load($role_id);
       $dependencies[$role->getConfigDependencyKey()][] = $role->getConfigDependencyName();
     }