blob: 7a99a99d53a9f2150c523143bdf8c21a588fb98d [file] [log] [blame]
Zesstra953f9972017-02-18 15:37:36 +01001
MG Mud User88f12472016-06-24 23:31:02 +02002access_rights()
Zesstra953f9972017-02-18 15:37:36 +01003***************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006FUNKTION
7========
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 int access_rights(string euid, string file);
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 access_rights.c (muss man selber schreiben)
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018PARAMETER
19=========
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 euid
22 Die euid desjenigen, der auf das Verzeichnis schreiben will
23 file
24 Name der Datei, auf die zugegriffen werden soll
MG Mud User88f12472016-06-24 23:31:02 +020025
MG Mud User88f12472016-06-24 23:31:02 +020026
Zesstra953f9972017-02-18 15:37:36 +010027BESCHREIBUNG
28============
MG Mud User88f12472016-06-24 23:31:02 +020029
Zesstra953f9972017-02-18 15:37:36 +010030 access_rights() wird immer dann aufgerufen, wenn jemand, der nicht
31 sowieso schon schreibberechtigt ist, in die Datei/das Verzeichnis file
32 schreiben oder loeschen will.
MG Mud User88f12472016-06-24 23:31:02 +020033
Zesstra953f9972017-02-18 15:37:36 +010034 Anhand von euid kann man dann entscheiden, ob der Schreibzugriff erlaubt
35 wird oder nicht.
MG Mud User88f12472016-06-24 23:31:02 +020036
MG Mud User88f12472016-06-24 23:31:02 +020037
Zesstra953f9972017-02-18 15:37:36 +010038RUECKGABEWERT
39=============
MG Mud User88f12472016-06-24 23:31:02 +020040
Zesstra953f9972017-02-18 15:37:36 +010041 0, wenn der Zugriff verweigert wird,
42 1, wenn der Zugriff erlaubt wird.
MG Mud User88f12472016-06-24 23:31:02 +020043
MG Mud User88f12472016-06-24 23:31:02 +020044
Zesstra953f9972017-02-18 15:37:36 +010045BEISPIELE
46=========
47
48 /* /d/inseln/wargon/access_rights.c */
49
50 int access_rights(string euid, string file)
51 {
52 string dir, rest;
53
54 // Catweazle darf auf alles zugreifen (*argl* ;^)
55 if (euid == "catweazle")
56 return 1;
57
58 // Rechte auf einzelne Verzeichnisse ermitteln:
59 if (sscanf(file, "%s/%s", dir, rest) != 2)
60 rest = file;
61
62 // Jof und Boing duerfen an Tarko Reub rumpfuschen:
63 if (dir == "tarko" && (euid == "jof" || euid == "boing"))
64 return 1;
65
66 // Anthea darf die Karten von Aurora und der Piratenhoehle bearbeiten:
67 if (dir == "MAPS" &&
68 member( ({"Aurora", "Piratenhoehle" }), rest) >= 0 &&
69 euid == "anthea")
70 return 1;
71
72 // alle anderen duerfen nicht!
73 return 0;
74 }
75
76
77BEMERKUNGEN
78===========
79
80 file ist immer relativ zu dem Verzeichnis, in dem das access_rights.c
81 liegt! Will also jemand auf /d/inseln/wargon/tarko/macros.h schreiben,
82 wird file "tarko/macros.h" uebergeben.
83
84 In Verzeichnissen von Magiern mit einem Level >= ELDER_LVL wird das
85 access_rights.c NICHT ausgewertet (da damit andere Magier zB. an
86 Erzmagierrechte gelangen koennten).
87
88 Es wird immer nur EIN access_rights.c ausgewertet, naemlich das in der
89 tiefsten Verzeichnisebene.
90
91 Man kann sowohl in seinen Regionsverzeichnissen als auch in seinen
92 Homeverzeichnissen access_rights.c-Dateien anlegen.
93
94 GANZ WICHTIG!!!
95 Fuer die Dateien, die evtl. von anderen angelegt werden, ist man immer
96 noch selbst verantwortlich! Wenn jemand also ein Gebiet bei Dir an-
97 schliesst, muss es erst von den verantwortlichen Regionsmagiern abgesegnet
98 sein!