| access_rights() |
| *************** |
| |
| |
| FUNKTION |
| ======== |
| |
| int access_rights(string euid, string file); |
| |
| |
| DEFINIERT IN |
| ============ |
| |
| access_rights.c (muss man selber schreiben) |
| |
| |
| PARAMETER |
| ========= |
| |
| euid |
| Die euid desjenigen, der auf das Verzeichnis schreiben will |
| file |
| Name der Datei, auf die zugegriffen werden soll |
| |
| |
| BESCHREIBUNG |
| ============ |
| |
| access_rights() wird immer dann aufgerufen, wenn jemand, der nicht |
| sowieso schon schreibberechtigt ist, in die Datei/das Verzeichnis file |
| schreiben oder loeschen will. |
| |
| Anhand von euid kann man dann entscheiden, ob der Schreibzugriff erlaubt |
| wird oder nicht. |
| |
| |
| RUECKGABEWERT |
| ============= |
| |
| 0, wenn der Zugriff verweigert wird, |
| 1, wenn der Zugriff erlaubt wird. |
| |
| |
| BEISPIELE |
| ========= |
| |
| /* /d/inseln/wargon/access_rights.c */ |
| |
| int access_rights(string euid, string file) |
| { |
| string dir, rest; |
| |
| // Catweazle darf auf alles zugreifen (*argl* ;^) |
| if (euid == "catweazle") |
| return 1; |
| |
| // Rechte auf einzelne Verzeichnisse ermitteln: |
| if (sscanf(file, "%s/%s", dir, rest) != 2) |
| rest = file; |
| |
| // Jof und Boing duerfen an Tarko Reub rumpfuschen: |
| if (dir == "tarko" && (euid == "jof" || euid == "boing")) |
| return 1; |
| |
| // Anthea darf die Karten von Aurora und der Piratenhoehle bearbeiten: |
| if (dir == "MAPS" && |
| member( ({"Aurora", "Piratenhoehle" }), rest) >= 0 && |
| euid == "anthea") |
| return 1; |
| |
| // alle anderen duerfen nicht! |
| return 0; |
| } |
| |
| |
| BEMERKUNGEN |
| =========== |
| |
| file ist immer relativ zu dem Verzeichnis, in dem das access_rights.c |
| liegt! Will also jemand auf /d/inseln/wargon/tarko/macros.h schreiben, |
| wird file "tarko/macros.h" uebergeben. |
| |
| In Verzeichnissen von Magiern mit einem Level >= ELDER_LVL wird das |
| access_rights.c NICHT ausgewertet (da damit andere Magier zB. an |
| Erzmagierrechte gelangen koennten). |
| |
| Es wird immer nur EIN access_rights.c ausgewertet, naemlich das in der |
| tiefsten Verzeichnisebene. |
| |
| Man kann sowohl in seinen Regionsverzeichnissen als auch in seinen |
| Homeverzeichnissen access_rights.c-Dateien anlegen. |
| |
| GANZ WICHTIG!!! |
| Fuer die Dateien, die evtl. von anderen angelegt werden, ist man immer |
| noch selbst verantwortlich! Wenn jemand also ein Gebiet bei Dir an- |
| schliesst, muss es erst von den verantwortlichen Regionsmagiern abgesegnet |
| sein! |