A A A

Hinweise zu Bereichen und Rechten

Bereichstypen

Bereich "home"
  • Der Bereich ist ein Sonderfall des Typs "allgemeiner Bereich mit Mitgliederbereich"
  • zum Bereich "home" gehört immer mindestens eine öffentliche Seite und eine Mitgliederseite.
  • der Bereich kann nicht gelöscht werden.
  • ein System-Administrator muss immer als zuständige Person für den Bereich eingetragen sein.
  • alle System-Administratoren sind für die gesamte Pflege des Bereichs zuständig, können aber auch anderen Mitgliedern Rechte für die Pflege des Bereichs, die Mitgliederverwaltung und die Pflege des Systems zuweisen.
  • die grundlegenden Einstellungen für den Bereich dürfen nur von System-Administratoren verändert werden.
allgemeine Bereiche ohne Mitgliederbereich
  • enthalten nur öffentliche Seiten
  • ein System-Administrator muss immer als zuständige Person für den Bereich eingetragen sein.
  • alle System-Administratoren dürfen diese Bereiche pflegen.
  • dürfen nur von System-Administratoren angelegt, gepflegt und gelöscht werden.
allgmeine Bereiche mit Mitgliederbereich
  • enthalten immer mindestens eine öffentliche Seite und eine Mitgliederseite
  • für jeden Bereich muss eine zuständige Person benannt werden
    • Es kann nur eine Person als zuständige Person für einen allgemeinen Bereich benannt werden, die
      • im Bereich "home" mindestens den Status Mitglied besitzt.
      • die ihre eigenen Kontaktdaten selber verändern können
    • Mit dem Status "zuständige Person" ist implizit das Administrator-Recht im Bereich verbunden, die zuständige Person darf also diesen Bereich pflegen.
    • der Status "zuständige Person" berechtigt aber nicht dazu, den Bereich zu löschen oder die Grundeinstellungen für den Bereich zu verändern.
  • System-Administratoren dürfen allgemeine Bereiche, zu denen ein Mitgliederbereich gehört, anlegen, diese Bereiche vollumfänglich pflegen und löschen, sowie die zuvor genannten Rechte auch anderen Personen zuweisen.
Inhaber-Bereiche
  • enthalten immer mindestens eine öffentliche Seite und eine Mitgliederseite
  • die Anzeige dieser Bereiche in den Ergebnissen der Bereichssuche kann unterdrückt werden.
  • für jeden Bereich muss sowohl ein Inhaber als auch eine zuständige Person benannt werden.
    • Inhaber und zuständige Person dürfen identisch sein
    • Es kann nur eine Person als Inhaber bzw. als zuständige Person für einen Inhaber-Bereich benannt werden, die
      • im Bereich "home" mindestens den Status Mitglied besitzt.
    • Inhaber und zuständige Person eines Inhaber-Bereichs dürfen das Recht besitzen, die eigenen Kontatktdaten pflegen zu können, müssen es aber nicht.
    • Mit den Status Inhaber und "zuständige Person" ist jeweils implizit das Administrator-Recht im Inhaber-Bereich verbunden. Sowohl der Inhaber als auch die zuständige Person dürfen daher diesen Bereich pflegen.
    • der Status Inhaber und der Status "zuständige Person" berechtigen aber nicht dazu, den Inhaber-Bereich zu löschen oder die Grundeinstellungen für den Bereich zu verändern.
  • System-Administratoren dürfen Inhaber-Bereiche anlegen, vollumfänglich pflegen und löschen, sowie diese Rechte auch anderen Personen zuweisen.

zum Anfang

Anlage eines Bereichs "xxx" und eines Mitgliederbereichs

System-Administratoren dürfen Bereiche mit und ohne Mitgliederbereiche formularbasiert anlegen. Personen, die das Recht "verwalten" im Bereich "home" besitzen, können das Recht erhalten, Inhaber-Bereiche und/oder allgemeine Bereiche, zu denen ein Mitglieder-Bereich gehört, anzulegen.

Die Anlage eines neuen Bereichs "xxx" und des zugehörigen Mitgliederbereichs "_mb_xxx" sollte formularbasiert erfolgen. Das System prüft dabei, ob es Konflikte mit dem Bereichsnamen "xxx" auf der Ebene der Hauptverzeichnisebene gibt. Wenn kein Konflikt entdeckt wurde, erzeugt das System für den Bereich in der Datenbanktabelle "_bereiche" einen Datensatz und erstellt im Stammverzeichnis des "zac4web"-Projektes den Ordner "xxx" für die Speicherung der Dateien, die jedermann aufrufen darf. Wenn zu dem Bereich "xxx" auch ein Mitgliederbereich gewünscht ist, wird außerdem innerhalb des Stammverzeichnisses des "zac4web"-Projektes der Ordner "_mb_xxx" erzeugt, in dem die Dateien gespeichert werden, deren Inhalte nur Mitgliedern des Bereichs angezeigt werden dürfen. Zusätzlich speichert das System in dem/den Ordner/n jeweils die Datei "index.php". Diese Datei wird per Kopie von der zugehörigen Vorlagendatei erzeugt und durch Änderung einiger Befehle innerhalb der Kopie in eine funktionsfähige Startseite für den Bereich bzw. den Mitgliederbereich umgewandelt.

Solange kein Mitglieder-Bereich zum Bereich "xxx" existiert, können nur die System-Administratoren Unterseiten zu diesem Bereich "xxx" erstellen und verändern. Die Anlage eines Mitglieder-Bereichs erlaubt es dagegen auch, anderen Personen Bearbeitungsrechte für den Bereich "xxx" zuzuordnen. Diese Personen müssen allerdings bereits im "zac4web"-Projekt als Mitglied eingetragen sein.

Zu Bereichen mit einem Mitglieder-Bereich können - wenn dieses für den Bereich zugelassen ist - formularbasiert Chat-Tabellen angelegt werden. Auf diese Chat-Tabellen können nur die Mitglieder des Bereichs zugreifen.

zum Anfang

Struktur eines Bereichs

Jeder Bereich "xxx" besitzt unmittelbar nach der Neuanlage nur die Datei "index.php". Wird zu einem Bereich auch ein Mitgliederbereich angelegt, wird auch der Ordner "_mb_xxx" und die darin gespeicherte Datei "index.php" erzeugt. Diese index-Dateien können nur von den Administratoren des Bereichs formularbasiert verändert werden.

Direkt nach der Neuanlage besitzt eine Bereich noch keine bereichsspezifische Navigationsdatei. Beim Aufruf der Seite werden innerhalb der Bereichsnavigation passend zum Rechtestatus des Aufrufers im Bereich lediglich die Standardlinks angezeigt, die für die Funtkion des "zac4web"-Projekts erforderlich sind. Die bereichsspezifischen Navigations-Dateien können bei Bedarf formularbasiert erstellt und auch verändert werden. Im öffentlichen Bereich gibt es nur die Navigationsdatei "navigation.php". Im Mitgliederbereich können dagegen mehrere Navigationsdateien angelegt werden, um abhängig vom Rechtestatus des Aufrufers über das Navigationsmenü Links anbieten zu können. Die Navigationsdateien werden wie die Startseiten index.php unmittelbar im Hauptordner des Bereichs bzw. des Mitgliederbereichs gespeichert.
Nachdem die Navigationsdateien formularbasiert erzeugt wurden, können die aktiven Navigations-Dateien formularbasiert nur verändert und dabei auch geleert, aber nicht gelöscht werden. Nur wenn ein Bereich formularbasiert gelöscht wird, werden auch automatisch die vorhandenen aktiven Navigationsdateien gelöscht.

Unmittelbar in den Hauptverzeichnissen speichert das System außer den Navigationsdateien und den Index-Dateien keine weiteren Dateien. Für die anderen Dateien, die bei der formularbasierten Bearbeitung eines Bereichs entstehen, erzeugt das System die erforderliche Ordnerstruktur innerhalb der Hauptverzeichnisse. Innerhalb der Ordner aus der Abbildung können vielfach formularbasiert eigene Unterordner angelegt werden.

Damit das System korrekt funktioniert, sollten weder die Namen der Ordner, die vom System erzeugt werden, noch die beiden index-Dateien und die Navigationsdateien umbenannt werden.

Hinweise zu der formularbasierten Bearbeitung von Dateien und Unterordnern enthält die Datei Management von Ordnern und Dateien.

Mitgliederbereich

  • _mb_xxx
    • index.php
    • navigation.php
    • navigation_pruefling.php
    • navigation_redaktion_intern.php
    • navigation_redaktion_offen.php
    • navigation_verwalten.php
    • navigation_admin.php
    • _ad_int
    • _ad_rva
    • _chat_medien
      • audio
      • bild
      • video
    • _drafts
    • _drafts_temp
    • _medien
      • _audio
      • _video
    • _red_int
    • Bilder

öffentlicher Bereich

  • xxx
    • index.php
    • navigation.php
    • _admin
    • _db_tabellen
      • _backup
      • Name der Tabelle
        • _mb_
        • _offen
    • _drafts
    • _drafts_temp
    • _medien
      • _audio
      • _video
    • _red
    • _svg
      • _code
      • _bilder
    • _upload
      • typ_1
      • typ_2
      • typ_3
    • Bilder

Sofern bereichsspezifische Datenbanken erzeugt werden, sollten deren Namen mit der Zeichenfolge "xxx_" beginnen. Nur dann kann der Speicherplatz, den die Elemente eines Bereichs belegen, wirklich ermittelt werden und für die Steuerung genutzt werden. Außerdem können dann die Datenbanktabellen des Bereichs formularbasiert gelöscht werden, wenn der Bereich gelöscht wird.

zum Anfang

Löschen eines Bereichs "xxx" und eines Mitgliederbereichs "_mb_xxx"

Ein Mitgliederbereich "_mb_xxx" kann nur dann gelöscht werden, wenn zum Bereich keine Chat-Tabelle mehr gehört. Außerdem dürfen neben der Datei "index.php" und den Navigationsdateien höchstens "versteckte" Dateien vorhanden sein. Als "versteckte" Dateien werden die Dateien bezeichnet, die in einen Unterordner des Systemordners "__ersetzt" verschoben wurden, damit sie nicht mehr aufrufbar sind.

Ein Bereich "xxx" kann nur dann gelöscht werden, wenn es keinen Mitgliederbereich (mehr) dazu gibt, keine Datenbankbanktabellen vorhanden sind, deren Namen mit der Zeichenfolge "xxx_" beginnt, und wenn außer den beiden Dateien "index.php" und "navigation.php" höchstens versteckte Dateien vorhanden sind.

Sofern andere Elemente vorhanden sind, müssen diese vorher gelöscht werden. Die Elemente können formularbasiert gelöscht werden (vgl. Management von Ordnern und Dateien).

Der Bereich "home" kann nicht gelöscht werden und auch nicht der Mitgliederbereich zu "home".

Alle anderen Bereiche können, wenn die zuvor genannten Bedingungen eingehalten werden, von den Personen gelöscht werden, die Bereiche dieses Typs anlegen dürfen.

Wenn ein Bereich "xxx" oder ein Mitgliederbereich "_mb_xxx" gelöscht wird, werden nicht die Links gelöscht, die in Seiten von anderen Bereichen auf die gelöschten Dateien aus dem Bereich "xxx" oder dem Mitgliederbereich "_mb_xxx" verweisen. Auch Links in Navigationsdateien bleiben erhalten. Das Löschen eines Bereichs/Mitgliederbereichs kann daher zu "verwaisten" Links führen. Diese Links können nur manuell gelöscht werden. Falls sich ein Link in einer Navigationsdatei des Bereichs mit dem internen Namen "home" befinden, muss u.U. vor dem Löschen der Links mit dem Formular "Systemdateien ..." --> "Löschen aus Navigation verhindern" der Pfad zur gelöschten Datei aus dem Feld $menue_home_behalten entfernt werden.

zum Anfang

Stammdaten der Bereiche

Die Stammdaten zu allen Bereichen werden in der Datenbanktabelle "_bereiche" gespeichert. Für jeden Bereich gibt es in dieser Tabelle einen eigenen Datensatz. Bei jedem Seitenaufruf werden die Informationen für den Bereich, dem die Seite zugeordnet wird, in einem eindimensionalen assoziativen Feld $bereich abgelegt, um jederzeit während der Skriptausführung auf die Informationen zum Bereich zugreifen zu können. Die Indizes des Feldes sind identisch mit den Spaltennamen in der Datenbanktabelle "_bereiche".

In der Spalte "bereich_ID" steht der interne Name des Bereichs. Dieser darf nur aus Kleinbuchstaben des ascii-Codes bestehen. Der Name aus "bereich_ID" wird als Namen für den Ordner verwendet, in welchem die von jedermann aufrufbaren Seiten des Bereichs gespeichert werden. Ist ein Mitgliederbereich vorhanden, wird dem Wert aus "bereich_ID" die Zeichenfolge "_mb_" vorangestellt, um den Namen für den Ordner des Mitgliederbereichs zu bilden. Außerdem wird der Wert aus "bereich_ID" als Bestandteil von Namen von Datenbanktabellen verwendet, um zu kennzeichnen, dass diese Datenbanktabellen zu dem Bereich gehören. Der Wert für "bereich_ID" kann nicht verändert werden. In dieser Spalte sind keine Duplikate zugelassen.

In der Spalte "name" dürfen beliebige Texte eingetragen werden, da es "nur" eine textuelle Bezeichnung für den Bereich ist. Es wird empfohlen, für den Bereich eine jeweils eindeutige Bezeichnung zu wählen, die inhaltlich zu dem Wert aus "bereich_ID" passt und nicht zu lang ist. Die textuelle Bezeichnung wird u.a. für Schaltertexte verwendet, mit dem zu einer Seite für den Bereich gewechselt werden kann.
Die Werte in der Spalte "name" können jederzeit von der zuständigen Person für den Bereich oder dem Inhaber des Bereichs geändert werden, sofern die System-Administratoren und Verwalter für den Bereichstyp dieses für den Bereich zulassen (Wert 1 in der Spalte "name_aendern").

In der Spalte "zustaendig" wird die Identifikationsnummer der Person erfasst, die für den Bereich zuständig ist. Für jeden Bereich muss eine zuständige Person erfasst sein. Eine Person kann für mehrere Bereiche zuständig sein. Damit eine Person für den Bereich "home" zuständig sein kann, muss sie im Bereich "home" Administrator-Rechte besitzen. Für alle anderen Bereiche reicht es dagegen aus, wenn die Person Zugriffsrechte zum System besitzt, also mindestens den Status "mitglied" im Bereich "home" besitzt. Wer für einen Bereich zuständig ist, besitzt für diesen Bereich immer Administrator-Rechte.

In der Spalte "inhaber" steht für den Kernbereich "home" immer der Wert NULL. Auch allgemeinen Bereichen wird kein Inhaber zugeordnet. Inhaber-Bereiche sind dadurch gekennzeichnet, dass ihnen in dieser Spalte die Identifikationsnummer einer Person zugeordnet ist. Mit der Eigenschaft Bereichs-Inhaber ist immer das Administrator-Recht für den Bereich verbunden. Inhaber eines Bereichs können nur solche Personen sein, die über Zugriffsrechte zum "zac4web"-Projekt verfügen.

Mit dem Integer-Wert in der Spalte "pos" kann in Zusammenwirken mit den Werten $nav_beginn und $nav_ende aus der Datei "__wm/__variablen/nav_gesamt.php" für die allgemeinen Bereiche die Sichtbarkeit der Navigationsmenüs des Bereichs und die Reihenfolge der Bereiche in der mobilen Navigation und der Sitemap gesteuert werden.

Der Wert 0 in der Spalte "mb" kennzeichnet, dass es zu dem Bereich keinen Mitgliederbereich gibt, und der Wert 1, dass es ein Bereich mit Mitgliederbereich ist. Zu dem Kernbereich "home" gibt es immer einen Mitgliederbereich. Zu allgemeinen Bereichen kann es einen Mitgliederbereich geben, muss es aber nicht. Inhaber-Bereiche müssen einen Mitgliederbereich besitzen. Die Elemente von allgemeinen Bereichen ohne Mitgliederbereich können nur von System-Administratoren (= den Administratoren des Bereichs "home") verändert werden. Bei Bereichen mit Mitgliederbereichen reicht dagegen schon das Recht "redaktion_intern" innerhalb des Bereichs aus, um Seiten mit dem Redaktionssystem erstellen und verändern zu können.

Steht in der Spalte "mitglied_fix_erlaubt der Wert 1 dürfen die Verantwortlichen eines Bereichs durch das Einfügen von Datensätzen in die Datenbanktabelle "_bereiche_personen_fix" verhindern, dass Bereichsmitglieder ihre Mitgliedschaft im Bereich selber löschen.

Der Integerwert in der Spalte "size" gibt an, wie viel Speicherplatz (in MB) von den Inhalten des Bereichs (Dateien, Datenbank- und Chat-Tabellen) belegt werden darf. Ein Wert von 0 für "size" gibt an, dass es keinerlei Beschränkung gibt. Allerdings wird der zur Verfügung stehende Speicherplatz durch die Menge an Speicherplatz begrenzt, die von Ihnen auf dem Datenträger genutzt werden kann. Statt 0 wird in manchen statistischen Auswertungen für die Menge des verfügbaren Speicherplatzes das Zeichen \"-\" angezeigt. Wurde einem Bereich eine ganze Zahl, die größer ist als 0 für den Speicherplatz zugeordnet, so versucht das System, dass die Dateien und Datenbanktabllen des Bereichs zusammen maximal diese Menge an Speicherplatz belegen.

Für Dateien funktioniert die Begrenzung sehr gut, solange die Dateien nur mit den Formularen des Systems erstellt, verändert oder hochgeladen werden. Das System lehnt es nämlich ab, neue Dateien im Bereich formularbasiert zu speichern oder Entwürfe zu erzeugen, wenn weniger als 20 KB freier Speicherplatz für diesen Bereich noch zur Verfügung stehen. Bei der Ermittlung des freien Speicherplatzes berücksichtigt das System alle vorhandenen Dateien im Bereich und zugehörigen Mitgliederbereich, die noch vorhandenen ersetzten Dateien, die sich im Ordner "__ersetzt" (= Papierkorb des Systems) befinden und sämtliche Tabellen innerhalb der Datenbanken, die dem Bereich zugeordnet sind. Stellt das System während des Speichervorgangs einer Datei fest, dass mit der neuen Datei für den Bereich mehr Speicherplatz beansprucht würde, als dem Bereich zugestanden wird, wird der Speichervorgang abgebrochen. Wird allerdings von Ihnen nachträglich als Vorgabewert für einen Bereich ein geringerer Wert eingestellt, als dieser Bereich bislang belegt, so hat dies keine Auswirkung auf die bereits existierenden Dateien. Erst wenn eine dieser Dateien verändert werden soll, wirkt sich der veränderte Wert aus, da er dann das Verändern der Datei verhindert. Die Dateien dürfen in diesem Fall nur noch formularbasiert gelöscht und heruntergeladen werden.

Während die Beschränkung des Speicherplatzes für Dateien sehr gut eingehalten wird, ist dieses für vorhandene Datenbanktabellen nicht möglich. Denn auch wenn die Elemente des Bereichs zusammen mehr Speicherplatz einnehmen, als dem Bereich zugewiesen wurde, können weiterhin Datensätze in die vorhandenen Datenbank-Tabellen und Chat-Tabellen des Bereichs eingefügt werden. Sie können also das Wachstum vorhandener Datenbank-Tabellen und Chat-Tabellen nicht mit dem Wert für den zur Verfügung gestellten Speicherplatz begrenzen. Lediglich die Neuanlage von Datenbank-Tabellen oder Chat-Tabellen für den Bereich ist nicht mehr möglich, wenn weniger als 100 KB für den Bereich noch frei verfügbar sind.
Um auf den Speicherplatzbedarf eines Bereichs durch Datenbank-Tabellen und Chat-Tabellen Einfluss nehmen zu können, kann lediglich für jeden Bereich in den Spalten "tabellen" und "chats" die maximale Anzahl an Datenbank-Tabellen und die maximale Anzahl an Chat-Tabellen, die gleichzeitig vorhanden sein dürfen, festgelegt werden. Der Wert 0 in diesen Spalten bedeutet, dass keine Datenbank-Tabelle des zugehörigen Tabellen-Typs im Bereich mit den System-Formularen angelegt werden darf. Ist dagegen der Wert -1 eingetragen, so dürfen beliebig viele Datenbank-Tabellen im Bereich vorhanden sein. Sofern die maximale Anzahl für einen Tabellen-Typ in einem Bereich nachträglich so verringert wird, dass dieser unterhalb der Anzahl der Tabellen liegt, die schon im Bereich vorhanden sind, hat dieses keine Auswirkung auf die bereits vorhandenen Tabellen. Sie können mit dem niedrigeren Wert dann nur verhindern, dass neue Tabellen dieses Tabellen-Typs angelegt werden. System- und Bereichs-Administratoren haben aber auch die Möglichkeit, Tabellen und Chat-Tabellen zu löschen und somit Speicherplatz wieder freizugeben. Wenn dann noch die Anlage neuer Chat-Tabellen durch den Wert für die maximale Anzahl an Chat-Tabellen unterbunden wird, und regelmäßig veraltete Beiträge aus den Chat-Tabellen gelöscht werden, kann der Speicherplatzverbrauch durch Chat-Tabellen wirksam gesteuert werden. Die Beschränkung der Anzahl wirkt allerdings nur, wenn mit den Formularen des Systems Datenbank-Tabellen oder Chat-Tabellen angelegt werden, nicht wenn die Tabellen mit einem Programm wie phpMyAdmin erzeugt werden.

Die beiden fettgedruckten Werte, mit denen die Neuanlage von Dateien und Datenbank-Tabelle verhindert werden kann, wenn schon zu viel Speicherplatz von den Elementen eines Bereichs belegt sind, können System-Administratoren übrigens mit dem Formular ändern, welches mit dem nachfolgenden Link aufrufbar ist: allgemeine Vorgabewerte für Bereiche verändern.

Das System stellt Formulare bereit, mit denen innerhalb von Chats Bilder, Videos und Audio-Dateien als Beiträge veröffentlicht werden können. Da aber insbesondere Videos oftmals viel Speicherplatz benötigen, kann bei der Bereichspflege angegeben werden, ob in den Chats des Bereichs diese Medien-Dateien prinzipiell als Beiträge zugelassen sind und welches Recht ein Chat-Zuständiger mindestens besitzen muss, damit er für seinen Chat diese Medien-Dateien als Beiträge erlauben kann. Außerdem kann in der Bereichspflege für jeden Bereich festgelegt werden, ob Videos und Audio-Dateien hochgeladen werden dürfen, die mit den Formularen des Redaktionssystems in Seiten des Bereichs "eingebaut" werden können. Diese Einstellungen können jederzeit geändert werden, wirken sich aber nicht auf bereits auf dem Server gespeicherte Dateien aus.

Die Werte in den Spalten "suchen_erlaubt" und "suchen_zeigen" werden nur für Inhaber-Bereiche berücksichtigt, da allgemeine Bereiche immer als Ergebnis einer Bereichssuche angezeigt werden sollen, sofern der Bereich die Suchbedingungen erfüllt. Mit dem Wert 1 in "suchen_erlaubt" können die Verwalter für den Bereichstyp die Anzeige von Inhaber-Bereichen in der Bereichssuche zulassen. Allerdings wird der Inhaber-Bereich nur dann angezeigt, wenn auch in der Spalte "suchen_zeigen" der Wert 1 steht. Den Wert in der Spalte "suchen_zeigen" dürfen alle Personen verändern, die für den Bereich Administrator-Rechte besitzen.

Die Werte in den Spalten "mitglied_werden_erlaubt" und "mitglied_werden_zeigen" werden für alle Bereiche berücksichtigt, zu denen ein Mitgliederbereich gehört.
Für den Bereich "home" können die System-Administratoren über die Bereichsverwaltung steuern, ob formularbasiert Zugangsdaten zum "zac4web"-Projekt beantragt werden können oder nicht. Wenn Zugangsdaten beantragt werden dürfen, trägt das System in beide Spalten die Zahl 1 ein. Nur wenn in beiden Spalten die Zahl 1 steht, kann das Formular aufgerufen werden, mit dem die Mitgliedschaft im "zac4web"-Projekt beantragt werden kann.
Für die anderen Bereiche, zu denen ein Mitgliederbereich gehört, kann im Rahmen der Bereichsvewaltung zugelassen werden, dass Personen mit Zugangsdaten zum System formularbasiert die Mitgliedschaft in dem Bereich beantragen können oder sich sogar selber dem Bereich als Mitglied zuordnen dürfen. Dies wird dann als "mitglied_werden_erlaubt" = 1 in der Datenbank eingetragen. Das Antragsformular kann allerdings nur dann aufgerufen werden, wenn zusätzlich in der Spalte "mitglied_werden_zeigen" der Wert 1 oder 2 steht. Der Wert 2 in der Spalte "mitglied_werden_zeigen" führt dazu, dass nicht nur der Antrag gestellt werden kann, sondern sich jede Person mit Zugangsdaten zum "zac4web"-Projekt selber dem Bereich als Mitglied zuordnen darf. Den Wert in der Spalte "mitglied_werden_zeigen" können über das Formular, mit dem die Bereichseinstellungen gepflegt werden, alle Personen verändern, die für den Bereich Administrator-Rechte besitzen.

Die Bereichadministratoren dürfen mit dem Wert in der Spalte "mitglieder_liste" festlegen, ob in ihrem Bereich mit den beiden Systemskripten __zac4web/_System/mitglieder_liste.php und __zac4web/_chats/mitglieder_liste.php allen Mitgliedern eine Mitgliederliste mit Angaben zu den Bereichsmitgliedern und den Chat-Mitgliedern von Einladungs- bzw. Anmelde-Chats die Mitgliederliste zum Chat angezeigt werden dürfen (1) oder nicht (0). Die Mitgliederlisten werden von den Systemskripten allerdings nur dann angezeigt, wenn die System-Administratoren in den Grundeinstellungen für das System festgelegt haben, dass mit den Systemskripten Mitgliederlisten ausgegeben werden dürfen (__wm/__variablen/sprunglinks.php - $mitglieder_listen_erlaubt). Die Systemskripte unterstützen nur bei der Bereitstellung der Daten aus den Datenbanktabellen __personen, __haushalt und _session und berücksichtigen dabei die Vorgaben der Mitglieder bzgl. der Veröffentlichung ihrer Daten. Die System-Administratoren können über anwendungsspezifische Funktionen (__wm/_admin/__funktion/mitglieder_listen.php) Inhalt und Optik der Listen festlegen.

Bereichsabhängig kann mit dem Wert in der Spalte "pruefling_du" gewählt werden, ob auf den System-Skripten für Arbeitsblätter die Prüflinge mit "du" (Wert 1) oder "Sie" (Wert 0) angeredet werden. Für diejenigen, welche Verwaltungsrechte im Bereich besitzen, richtet sich auf den Arbeitsblatt-Skripten die Anrede nach dem Wert in der Spalte "verwalten_du". Diese Vorgabewerte des Bereichs für die Arbeitsblatt-Skripte können nicht durch Systemvorgaben überschrieben werden.
Auf den anderen Skripten auf denen vorgesehen ist, zwischen der Anredeform wechseln zu können, richtet sich die gewählte Anredeform nach den Werten in den Spalten "mitglied_du" (Der Aufrufer ist entweder nicht eingeloggt oder besitzt ein geringeres Zugriffsrecht als "verwalten".) bzw. "verwalten_du", sofern nicht durch die System-Administratoren über die System-Konstanten die Anrede in diesen Skripten für alle Bereiche einheitlich festgelegt wurde.

zum Anfang

Zugriffsrechte zu Bereichen

Die Zugriffsrechte sind für jeden Mitgliederbereich gestaffelt. Folgende Rechtestufen sind grundsätzlich definiert:

kein Mitglied
Zugriffsverbot Person war einmal Mitglied mit Zugriffsrechten im Bereich, darf aber nicht mehr darauf zugreifen. Sie soll aber trotzdem als Mitglied registriert sein, damit das Personenkonto nicht gelöscht werden kann und die personenbezogene Daten weiterhin verfügbar sind.
mitglied Person darf auf Mitgliederseiten des Bereichs XXX zugreifen, die eigenen Daten verändern (und ggf. die Daten für jene Personen, für welche die Person das Bearbeitungsrecht besitzt), und evtl. an Chats teilnehmen.
pruefling Person besitzt sämtliche Rechte, die an den Status "mitglied" im Bereich XXX geknüpft sind, und darf außerdem mit dem integrierten Redaktionssystem in Arbeitsblätter Antworten notieren und ggf. Bilder, Videos, Audio-Dateien und Dateien hochladen, die per Link in Seiten eingebunden werden können. (Die bearbeiteten Arbeitsblätter können nur die Bereichsadministratoren und die Person selber aufrufen.)
redaktion_intern Person besitzt sämtliche Rechte, die an den Status "pruefling" im Bereich XXX geknüpft sind, und darf zusätzlich im Mitgliederbereich etwas veröffentlichen, was andere Mitglieder des Bereichs XXX lesen dürfen, aber niemand sonst.
redaktion_offen Person besitzt besitzt sämtliche Rechte, die an den Status"redaktion_intern" geknüpft sind, und darf zusätzlich von jedem aufrufbare (= öffentlich sichtbare) Seiten des Bereichs erstellen und bearbeiten.
redaktion_form Person darf mit dem integrierten Redaktionssystem Formulare in Dateien einfügen und Formulare verändern.
Über ein Datenbank-Verwaltungsprogramm wie phpMyAdmin darf dieses Recht als einziges der hier genannten Rechte innerhalb der Rangfolge verschoben werden. Das Recht "redaktion_form" kann von dem Rechteinhaber aber nur genutzt werden, wenn er mindestens auch das Recht "pruefling" besitzt. Eine Verschiebung innerhalb der Hierarchie wirkt sich auf alle Bereiche aus. Die Position dieses Rechtes innerhalb der Hierarchie sollte nur verändert werden, solange noch keiner Person in keinem Bereich dieses Recht als maximales Recht zugeordnet wurde. Anderenfalls sind über die Mitgliederverwaltung u.U. Korrekturen bzgl. des Rechtestatus dieser Personen erforderlich.
verwalten Person besitzt neben allen rangniederen Rechten das Recht zur Mitgliederverwaltung innerhalb des Bereichs. Durch Administratoren können ggf. weitere anwendungsspezifische Verwaltungsrechte zugewiesen werden.
Der Rechtestatus "verwalten" setzt voraus, dass die Person ihre eigenen Kontaktdaten verändern darf.
admin Person besitzt das volle Verfügungsrecht über alle Seiten des Bereichs, darf die Mitgliederverwaltung für den Bereich durchführen und ggf. einige Grundeinstellungen für den Bereich verändern.
Der Status "admin" darf nur jenen Person explizit zugeordnet werden, die ihre eigenen Kontaktdaten verändern dürfen.

Bis auf den Status "kein Mitglied des Bereichs" sind die Login-Rechte in der Datenbanktabelle "_login_rechte" definiert. Jedem Login-Recht ist dort ein Integer-Wert und ein Name zugeordnet. Die Login-Rechte sind hierarchisch geordnet. Je höher der Integer-Wert eines Rechts ist, desto höher ist der Rechtestatus. Die Hierarchie der vorhandenen Rechte sollte bis auf die Position des Rechts "redaktion_form" innerhalb der Rangfolge nicht verändert werden. Es dürfen allerdings zusätzliche Rechte in die Hierarchie eingefügt werden, jedoch sollten keine eingetragenen Rechtestufen gelöscht werden, da dieses zu Fehlern bei der Ausführung von "zac4web" führen kann. Der niedrigste Status muss aber immer der vorhandene Status "zugriffsverbot" und das höchste Login-Recht der Status "admin" sein.

Zu den Login-Rechten "mitglied", "pruefling", "redaktion_intern", "redaktion_offen", "verwalten" und "admin" können formularbasiert in jedem Mitgliederbereich Navigationsdateien erzeugt werden, deren Schalter dann angezeigt werden, wenn der Aufrufer einer Seite im System eingeloggt ist und über das entsprechende Zugriffsrecht für den Bereich verfügt. Zu dem Login-Recht "redaktion_form" ist keine Navigationsdatei vorgesehen, da es sich bei diesem Fall nur um einen Spezialfall zur Nutzung des Redaktionssystems handelt.

Die Zugriffsrechte zum Bereich "home" werden in der Datenbanktabelle "_bereich_home_personen" mit den Spalten "person_ID" und "recht" erfasst. Jeder Wert aus "person_ID" muss genau zu einem Datensatz aus der Datenbankbanktabelle "__personen" gehören, aber nicht zu jedem Datensatz aus "__personen" muss es einen Eintrag in "_bereich_home_personen" geben. Es können sich nur solche Personen in das System einloggen, denen in der Spalte "recht" in "_bereich_home_personen" der Integer-Wert für das Login-Recht "mitglied" zugeordnet ist. Personen, denen in der Datenbankbanktabelle "_bereich_home_personen" der Integer-Wert für das Login-Recht "admin" zugeordnet ist, werden als "System-Administratoren" bezeichnet. Die System-Administratoren besitzen die umfangreichsten Rechte im System. Es muss immer mindestens einen System-Administrator geben.

Die Zugriffsrechte zu allen anderen Bereichen, die einen Mitgliederbereich besitzen, werden in der Datenbankbanktabelle "_bereiche_personen" erfasst. Administratoren im Bereich "home" sind System-Administratoren und haben auch ohne einen Eintrag in die Datenbanktabelle "_bereiche_personen" auf jeden Bereich Zugriff als Administrator. Personen, die als Inhaber eines Bereichs "abc" und/oder als zuständige Person für einen Bereich "abc" eingetragen sind, besitzen in dem Bereich "abc" Administrator-Rechte. Sofern ein Eintrag in "_bereiche_personen" für einen Bereich eingetragen ist, in dem eine Person Administrator-Rechte besitzt, haben diese Einträge keinen Einfluss auf den tatsächlichen Rechtestatus der Person im Bereich.

zum Anfang

Rechtestatus in einem Bereich - Auswirkungen und Zusammenhänge

Um auf die Mitgliederseiten eines Bereichs zugreifen zu können, muss eine Person Zugangsdaten zum System besitzen und mindestens den Status "Mitglied" im jeweiligen Bereich besitzen.

Nur Personen, für die im Bereich "home" mindestens der Status "Mitglied" eingetragen ist, besitzen Zugangsdaten zum System.

Wenn für eine Person A kein Eintrag in der Datenbanktabelle "_bereich_home_personen" vorhanden ist (Person A ist also "kein Mitglied" im Kernbereich des Systems), darf für diese Person kein Eintrag in der Datenbanktabelle "_bereiche_personen" vorhanden sein. Der Rechtestatus "kein Mitglied" im Kernbereich "home" für eine Person schließt also aus, das für diese Person in einem anderen Bereich ein Rechtestatus notiert ist und notiert werden kann. Einer Person A kann daher nur dann ein Rechtestatus in einem anderen Bereich als "home" zugewiesen werden, wenn für die Person A ein Eintrag in der Datenbanktabelle "_bereich_home_personen" vorhanden ist. Umgekehrt kann der Datensatz der Person A aus der Datenbanktabelle "_bereich_home_personen" nur dann gelöscht werden, wenn für die Person A kein Eintrag in der Datenbanktabelle "_bereiche_personen" vorhanden ist. Allerdings darf der Datensatz für die Person A nur dann aus der Datenbanktabelle "_bereich_home_personen" gelöscht werden, wenn in der Datenbankbanktabelle "_bereich_home_personen_fix" kein Eintrag für Person A vorhanden ist.

Der Rechtestatus "Zugriffsverbot" kann für eine Person A nur dann für den Bereich "home" eingetragen werden, wenn sie in keinem Bereich besondere Rechte besitzt (z.B. Zuständigkeit für den Bereich oder einen Chat). Besitzt eine Person A eines oder mehrere dieser besonderen Rechte, kann das Zugriffsverbot im Bereich "home" erst dann eingetragen werden, wenn der Person A alle besonderen Rechte entzogen wurden. Wird für eine Person A der Rechtestatus "Zugriffsverbot" im Bereich "home" eingetragen, werden automatisch auch alle Datensätze für die Person A aus der Datenbanktabelle "_bereiche_personen" gelöscht und damit für die Person A in den anderen Bereichen der Status "kein Mitglied" hergestellt, es sei denn, für die Person A ist für einen Bereich ein "Zugriffsverbot" eingetragen oder per Eintrag in der Datenbanktabelle "_bereiche_personen_fix" die Zugehörigkeit zum Bereich fixiert worden. Liegt der Status "Zugriffsverbot" vor, bleibt der Eintrag erhalten und damit der Rechtestatus in dem Bereich unverändert. Liegt für die Person A in einem Bereich eine Fixierung vor, wird der bisherige Rechtestatus der Person A für diesen Bereich in "Zugriffsverbot" umgewandelt. Solange für eine Person A im Bereich "home" der Rechtestatus "Zugriffsverbot" vorliegt, können für die Person A nur die bestehenden Fixierungen zu und Zugriffsverbote in anderen Bereichen gelöscht, aber keine Datensätze für andere Bereiche in die Datenbanktabelle "_bereiche_personen" eingefügt werden.

Im System gibt es immer mindestens ein Personenkonto, dem der Status "admin" im Bereich "home" zugewiesen ist. Personen, die im Bereich "home" den Status "admin" besitzen, werden als System-Administrator bezeichnet. System-Administratoren besitzen implizit auch immer das Administrator-Recht in allen anderen Bereichen des Systems, zu denen ein Mitgliederbereich gehört, auch wenn die Person dem Bereich nicht als Mitglied zugeordnet ist.

System-Administratoren können weitere Personenkonten anlegen und diesen für jene Bereiche, zu denen ein Mitgliederbereich gehört, Zugriffsrechte gewähren und entziehen. Für jeden Bereich kann jeweils festgelegt werden, ob die Person dort Mitglied ist und welchen Status die Person im Bereich besitzt.

Das Recht zur Mitgliederverwaltung können System-Administratoren auch anderen Personen zuweisen, indem Sie diesen Personen das Recht erteilen, Bereiche zu verwalten.

Wenn die Systemadministratoren es wünschen, kann formularbasiert ein Antrag auf Mitgliedschaft im Bereich "home" gestellt werden. Im Rahmen der Mitgliederverwaltung kann dann - ausgehend von dem Antrag - ein Personenkonto für den Antragsteller angelegt und Zugriffsrechte für den Bereich "home" und ggf. weitere Bereiche erteilt werden.

Besitzt eine Person Zugangsdaten zum Bereich "home", aber keine Zugriffsrechte für einen der anderen Mitgliederbereiche des Systems, kann sich die Person, - wenn die Einstellungen für den Bereich dieses erlauben, - selber zum Mitglied in diesem Bereich erklären oder formularbasiert einen Antrag auf Mitgliedschaft im Bereich stellen.

Die Personen, die mindestens das Recht "verwalten" in einem Bereich besitzen, können für den jeweiligen Bereich die Mitgliederverwaltung durchführen, also anderen Personen Zugriffsrechte für den Bereich gewähren und diese entziehen. Sie dürfen aber den anderen Personen maximal das Recht zuweisen, welches sie selber besitzen. Allerdings dürfen sie den Status jener Personen nicht verändern, die ein höheres Recht im Bereich besitzen.

Eine Person darf niemals ihre eigenen Zugriffsrechte für den Bereich "home" bearbeiten.

Eine Person, die in einem Bereich den Status "zuständige Person" oder "Inhaber" besitzt, besitzt für diesen Bereich Administrator-Rechte.

Im Normalfall kann jede Person ihre Mitgliedschaft in einem Bereich selber aufheben. Es sei denn:

  • im Rahmen der Bereichspflege wurde für den Bereich festgelegt, dass die Mitgliedschaft von Personen fixiert werden darf, und die Verantwortlichen des Bereichs haben die Mitgliedschaft für diese Person fixiert. Dann kann die Aufhebung der Mitgliedschaft formularbasiert beantragt werden.
  • die Person ist für einen Chat im Bereich zuständig. Dann muss sie erst die Verantwortung für den Chat abgeben oder den Chat löschen.
  • die Person ist für den Bereich als Inhaber oder als zuständige Person eingetragen.
  • die Person möchte ihre Mitgliedschaft im Bereich "home" aufgeben, dann gelten zusätzliche Bedingungen:
    • die Person darf auch nicht in einem anderen Bereich als zuständige Person oder Inhaber eingetragen sein.
    • die Mitgliedschaft der Person darf auch nicht in einem anderen Bereich fixiert sein
    • die Person darf für keinen Chat verantwortlich sein
    • die Person darf nicht für die Verwaltung von Organisationsdaten zuständig sein
    • die Person darf nicht der einzige System-Administrator sein

zum Anfang

Redaktionsrechte

Wenn eine Person ein Zugriffsrecht besitzt, welches ihr gestattet, Seiten zu bearbeiten oder zu erstellen, kann sie im Redaktionsformular jene Formularelemente für Texteinaben nutzen, die später vom System durch html-Tags ergänzt werden. Damit die Redakteure aber noch differenziertere Seiteninhalte erstellen können oder die Seiten formatieren können, besteht die Möglichkeit, den Redakteuren spezifische Rechte zuzuweisen, die auch Eingaben in den Sprachen "html", "css", "javascript" und "php" gestatten. Für jede dieser Sprachen gibt es ein eigenständiges Redaktionsrecht.

html Das Recht gestattet dem Rechteinhaber, in Dateien formularbasiert Abschnitte in HTML-Code zu schreiben und vorhandene Abschnitte mit HTML-Code zu verändern. Dadurch kann der Rechteinhaber z.B. im Text Links zu beliebigen Seiten einfügen und differenzierter den Seiteninhalt formatieren.
css Das Recht gestattet dem Rechteinhaber bei der formularbasierten Bearbeitung einer Internetseite, für die Formatierung dieser Seite eine oder mehrere vorhandene css-Datei/en auszuwählen und einen Abschnitt mit css-Befehlen zu erzeugen. Es kann mit css-Befehlen auch zusätzlicher Inhalt zu dem Seiteninhalt hinzugefügt werden. Die css-Anweisungen wirken sich nur auch die Seite aus, in der sie notiert werden.
javascript Das Recht gestattet dem Rechteinhaber, in Dateien formularbasiert Bereiche mit Javascript-Befehlen und Javascript-Funktionen zu erstellen und zu verändern. Javascript-Befehle können den Browser, mit dem eine solche Seite aufgerufen wird, veranlassen etwas zu tun.
php Das Recht gestattet dem Rechteinhaber, in Dateien formularbasiert Bereiche mit php-Code zu erstellen und zu verändern. Im Gegensatz zu Abschnitten, die nur HTML-Code und Javascript-Befehle enthalten, veranlassen php-Befehle den Server, auf dem die Datei gespeichert ist, etwas zu tun, sobald die Datei oder eine Funktion daraus aufgerufen wird.
fileinfo Das Recht gestattet dem Rechteinhaber, auch solche Dateien hochzuladen, bei denen die Erweiterung fileinfo einen anderen MIME-Typ zu einer hochgeladenen Datei ermittelt, als für die Dateikennung der hochgeladenen Datei laut den Tabellen für die MIME-Typen erwartet wird. Da die Erweiterung fileinfo perfekt ist, erkennt sie nicht immer den korrekten MIME-typ. Deshalb kann es im Einzelfall nötig sein, fileinfo umgehen zu können. Das Recht fileinfo sollte nur jenen Personen gewährt werden, denen vertraut wird, nur Dateien mit zugelassenen MIME-Typen hochzuladen.,

Ein Mitglied kann die zugewiesenen Redaktionsrechte in allen Bereichen für die Erstellung/Bearbeitung von Seiten nutzen, in denen das Mitglied mindestens das Zugriffsrecht "redaktion_intern" besitzt.

Redaktionsrechte können nur von den Personen gesetzt werden, die Zugriffsrechte zum System vergeben dürfen. Das Redaktionsrecht "php" kann nur von den Personen vergeben werden, die im Bereich "home" das Zugriffsrecht "admin" besitzen.

Eine Person kann die eigenen Redaktionsrechte nur dann bearbeiten, wenn sie im Bereich "home" das Zugriffsrecht "verwalten" besitzt.

Sicherheitsrisiko in Bezug auf das Redaktionsrecht "php"

Sowohl durch das formularbasierte Erzeugen von php-Code und das formularbasiertes Hochladen von php-Dateien kann Code in das System gelangen, der das System zerstört.

Das Risiko wird insofern minimiert, als nur System-Administratoren das Recht erteilen dürfen, php-Code formularbasiert zu erstellen und php-Dateien hochladen zu dürfen.

zum Anfang

 

© zacher-info.de

- Seite zuletzt geändert: 04.12.2023 - Elisabeth Zacher