blob: 9859761dba7761ea2441de1a7c14c9fdfb538aed [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001access_rights()
2
3FUNKTION:
4 int access_rights(string euid, string file);
5
6DEFINIERT IN:
7 access_rights.c (muss man selber schreiben)
8
9PARAMETER:
10 euid
11 Die euid desjenigen, der auf das Verzeichnis schreiben will
12 file
13 Name der Datei, auf die zugegriffen werden soll
14
15BESCHREIBUNG:
16 access_rights() wird immer dann aufgerufen, wenn jemand, der nicht
17 sowieso schon schreibberechtigt ist, in die Datei/das Verzeichnis file
18 schreiben oder loeschen will.
19
20 Anhand von euid kann man dann entscheiden, ob der Schreibzugriff erlaubt
21 wird oder nicht.
22
23RUECKGABEWERT:
24 0, wenn der Zugriff verweigert wird,
25 1, wenn der Zugriff erlaubt wird.
26
27BEISPIELE:
28 /* /d/inseln/wargon/access_rights.c */
29
30 int access_rights(string euid, string file)
31 {
32 string dir, rest;
33
34 // Catweazle darf auf alles zugreifen (*argl* ;^)
35 if (euid == "catweazle")
36 return 1;
37
38 // Rechte auf einzelne Verzeichnisse ermitteln:
39 if (sscanf(file, "%s/%s", dir, rest) != 2)
40 rest = file;
41
42 // Jof und Boing duerfen an Tarko Reub rumpfuschen:
43 if (dir == "tarko" && (euid == "jof" || euid == "boing"))
44 return 1;
45
46 // Anthea darf die Karten von Aurora und der Piratenhoehle bearbeiten:
47 if (dir == "MAPS" &&
48 member( ({"Aurora", "Piratenhoehle" }), rest) >= 0 &&
49 euid == "anthea")
50 return 1;
51
52 // alle anderen duerfen nicht!
53 return 0;
54 }
55
56BEMERKUNGEN:
57 file ist immer relativ zu dem Verzeichnis, in dem das access_rights.c
58 liegt! Will also jemand auf /d/inseln/wargon/tarko/macros.h schreiben,
59 wird file "tarko/macros.h" uebergeben.
60
61 In Verzeichnissen von Magiern mit einem Level >= ELDER_LVL wird das
62 access_rights.c NICHT ausgewertet (da damit andere Magier zB. an
63 Erzmagierrechte gelangen koennten).
64
65 Es wird immer nur EIN access_rights.c ausgewertet, naemlich das in der
66 tiefsten Verzeichnisebene.
67
68 Man kann sowohl in seinen Regionsverzeichnissen als auch in seinen
69 Homeverzeichnissen access_rights.c-Dateien anlegen.
70
71 GANZ WICHTIG!!!
72 Fuer die Dateien, die evtl. von anderen angelegt werden, ist man immer
73 noch selbst verantwortlich! Wenn jemand also ein Gebiet bei Dir an-
74 schliesst, muss es erst von den verantwortlichen Regionsmagiern abgesegnet
75 sein!