Hallo BB-BF-BM,
ich habe noch eine Inkosistenz im MOD entdeckt, die beseitigt werden müsste.
Es geht um die Vergabe der Rechte fürs Hinzufügen neuer Termine.
Die Haupteinstellung ist in der Config-Tabelle gespeichert und wird dann als CAL_AUTH_ADD definiert.
In der Kategorienverwaltung kann ich aber einstellen, wer welche Terminkategorien hinzufügen kann.
Konkretes Beispiel:
ich habe 2 Benutzergruppen.
Die eine soll das Leserecht haben, die andere auch das Schreibrecht.
Es sind beides Benutzergruppen, die zweite ist keine Mods-Gruppe.
Daher muss ich in der Kalendereinstellung bestimmen, dass Registrierte den Kalender lesen und neue Termine erfassen können.
In der Kategorienverwaltung lege ich die Kategorie(n) an und lege fest, dass die zweite Gruppe diese Kategorie von Terminen hinzufügen kann.
Die erste Gruppe bekommt keine Kategorie zugewiesen.
Wenn die erste Gruppe auf Kalender klickt, bekommt sie auch den Link "Termin hinzufügen" angezeigt, obwohl sie eigentlich keine Termine erfassen kann, weil sie keine Terminkategorie vergeben darf.
Die erste Gruppe kann also auch das Terminerfassungsfenster öffnen und versuchen, einen Termin zu erfassen. Dieser wird nicht angenommen, weil keine Kategorie vergeben ist.
Das führt zu Irritationen.
Deshalb dürfte sich die Tatsache, ob jemand den Link "Termin hinzufügen" sieht und ob bei ihm die Tage verlinkt sind, nicht nur danach richten, ob sein CAL_AUTH_ADD wahr ist, sondern ob es überhaupt eine Kategorie gibt, die er dem Termin zuordnen kann.
Ich habe das jetzt so gelöst, dass ich eine weitere Konstante CAT_AUTH_ADD eingeführt habe, die auf wahr gesetzt wird, wenn beim Auslesen der Arrays für $CATS irgendwo bei $CATS[??][edit] eine 1 gefunden wird.
Code: Alles auswählen
while( $row = $db->sql_fetchrow($result) )
{
$CATS[$row['cat_id']] = array(
'id' => $row['cat_id'],
'name' => $row['cat_name'],
'read' => get_auth($row['read_user_level'], $row['read_user_ids'], $row['read_group_ids'], $row['read_black_uids']),
'edit' => get_auth($row['edit_user_level'], $row['edit_user_ids'], $row['edit_group_ids'], $row['edit_black_uids'])
);
//********** Anpassung ***************
if ($CATS[$row['cat_id']]['edit'] == 1) {$editcat = true;}
//********** Anpassung ***************
}
//********** Anpassung ***************
if ($editcat )
{
define('CAT_AUTH_ADD', 1);
}
else
{
define('CAT_AUTH_ADD', 0);
}
//********** Anpassung ***************
Und dann habe ich den If-Ausdruck an den entsprechenden Stellen erweitert:
Anstelle von
zu
Vielleicht kannst Du das schon mal einbauen, damit die Rechtevergabe in sich schlüssig wird.
Und noch eine Sache:
In den Templates sollten die Optionsfelder, z.B.
auf wenigstens 5 Zeilen gesetzt werden, weil sonst die Scrollleisten nicht sichtbar sind:
Danke
Stanley