it-swarm.com.de

Administratorrolle fehlt

Ich habe Drupal 8.6.3 Mindestprofil installiert und festgestellt, dass im Berechtigungsbereich keine Administratorrolle vorhanden ist. Ist das normal oder fehlt mir etwas?

Wir haben nur wenige Leute, die Administratorrollen verwenden müssen. Ohne eine Administratorrolle kann ich sie daher keiner solchen Rolle zuweisen.

(enter image description here

3
user2574948

Ja, das wird erwartet, da das Minimalprofil weniger Entitäten erstellt als das Standardprofil Profil. Sie können dies sehen, indem Sie das Verzeichnis config/install im ersten Profil mit dem Verzeichnis config/install im letzteren Profil vergleichen.

Gemäß dem Erstellen der Rolle über die Benutzeroberfläche wäre dies möglich, aber die erstellte Rolle wäre eine Rolle wie die anderen, während die Administratorrolle erstellt wird Vom Standardprofil werden automatisch alle in einer Drupal Site) definierten Berechtigungen abgerufen. Tatsächlich Role::hasPermission() verwendet den folgenden Code.

  if ($this->isAdmin()) {
    return TRUE;
  }
  return in_array($permission, $this->permissions);

Für die Administratorrolle gibt $this->isAdmin() immer TRUE zurück; Für jede Rolle, die Sie über die Benutzeroberfläche erstellen, gibt $this->isAdmin()FALSE zurück.

Wenn Sie diese Rolle benötigen und Drupal mit dem Standardprofil Standard nicht neu installieren können, können Sie ein benutzerdefiniertes Modul erstellen. für die Sie eine Datei config/optional/user.role.administrator.yml mit dem folgenden Inhalt erstellen.

langcode: en
status: true
dependencies:
  enforced:
    module:
      - yourmodule
id: administrator
label: Administrator
weight: 2
is_admin: true
permissions: {  }

(Ersetzen Sie Ihr Modul durch den Modulnamen.)

Wenn das Modul installiert ist, wird die Rolle erstellt. Da die Datei is_admin: true Enthält, verfügt die Rolle automatisch über alle Berechtigungen, wie die Administratorrolle , die von der Standardprofil .

Die alternative Methode, bei der keine Module geschrieben werden, ist das Importieren der Datei ser.role.administrator.yml auf der Site. Der Inhalt der Datei ähnelt dem Inhalt der zuvor vorgeschlagenen Datei, mit der Ausnahme, dass keine Abhängigkeiten bestehen.

langcode: en
status: true
dependencies: {  }
id: administrator
label: Administrator
weight: 2
is_admin: true
permissions: {  }

Ich würde die benutzerdefinierte Modulmethode verwenden, wenn es andere Entitäten/Bundles gibt, die Sie normalerweise bei der Installation von Drupal für eine neue Site) erstellen.
Wenn Sie stattdessen keine anderen Entitäten/Bundles erstellen müssen, ist der Import einer einzelnen Datei schneller.

10
kiamlaluno