blob: 2c9d232586e6698e521984bdf6d77aeeef04fb92 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001access_rights()
Zesstra953f9972017-02-18 15:37:36 +01002***************
MG Mud User88f12472016-06-24 23:31:02 +02003
MG Mud User88f12472016-06-24 23:31:02 +02004
Zesstra953f9972017-02-18 15:37:36 +01005FUNKTION
6========
MG Mud User88f12472016-06-24 23:31:02 +02007
Zesstra953f9972017-02-18 15:37:36 +01008 int access_rights(string euid, string file);
MG Mud User88f12472016-06-24 23:31:02 +02009
MG Mud User88f12472016-06-24 23:31:02 +020010
Zesstra953f9972017-02-18 15:37:36 +010011DEFINIERT IN
12============
MG Mud User88f12472016-06-24 23:31:02 +020013
Zesstra953f9972017-02-18 15:37:36 +010014 access_rights.c (muss man selber schreiben)
MG Mud User88f12472016-06-24 23:31:02 +020015
MG Mud User88f12472016-06-24 23:31:02 +020016
Zesstra953f9972017-02-18 15:37:36 +010017PARAMETER
18=========
MG Mud User88f12472016-06-24 23:31:02 +020019
Zesstra953f9972017-02-18 15:37:36 +010020 euid
21 Die euid desjenigen, der auf das Verzeichnis schreiben will
22 file
23 Name der Datei, auf die zugegriffen werden soll
MG Mud User88f12472016-06-24 23:31:02 +020024
MG Mud User88f12472016-06-24 23:31:02 +020025
Zesstra953f9972017-02-18 15:37:36 +010026BESCHREIBUNG
27============
MG Mud User88f12472016-06-24 23:31:02 +020028
Zesstra953f9972017-02-18 15:37:36 +010029 access_rights() wird immer dann aufgerufen, wenn jemand, der nicht
30 sowieso schon schreibberechtigt ist, in die Datei/das Verzeichnis file
31 schreiben oder loeschen will.
MG Mud User88f12472016-06-24 23:31:02 +020032
Zesstra953f9972017-02-18 15:37:36 +010033 Anhand von euid kann man dann entscheiden, ob der Schreibzugriff erlaubt
34 wird oder nicht.
MG Mud User88f12472016-06-24 23:31:02 +020035
MG Mud User88f12472016-06-24 23:31:02 +020036
Zesstra953f9972017-02-18 15:37:36 +010037RUECKGABEWERT
38=============
MG Mud User88f12472016-06-24 23:31:02 +020039
Zesstra953f9972017-02-18 15:37:36 +010040 0, wenn der Zugriff verweigert wird,
41 1, wenn der Zugriff erlaubt wird.
MG Mud User88f12472016-06-24 23:31:02 +020042
MG Mud User88f12472016-06-24 23:31:02 +020043
Zesstra953f9972017-02-18 15:37:36 +010044BEISPIELE
45=========
46
47 /* /d/inseln/wargon/access_rights.c */
48
49 int access_rights(string euid, string file)
50 {
51 string dir, rest;
52
53 // Catweazle darf auf alles zugreifen (*argl* ;^)
54 if (euid == "catweazle")
55 return 1;
56
57 // Rechte auf einzelne Verzeichnisse ermitteln:
58 if (sscanf(file, "%s/%s", dir, rest) != 2)
59 rest = file;
60
61 // Jof und Boing duerfen an Tarko Reub rumpfuschen:
62 if (dir == "tarko" && (euid == "jof" || euid == "boing"))
63 return 1;
64
65 // Anthea darf die Karten von Aurora und der Piratenhoehle bearbeiten:
66 if (dir == "MAPS" &&
67 member( ({"Aurora", "Piratenhoehle" }), rest) >= 0 &&
68 euid == "anthea")
69 return 1;
70
71 // alle anderen duerfen nicht!
72 return 0;
73 }
74
75
76BEMERKUNGEN
77===========
78
79 file ist immer relativ zu dem Verzeichnis, in dem das access_rights.c
80 liegt! Will also jemand auf /d/inseln/wargon/tarko/macros.h schreiben,
81 wird file "tarko/macros.h" uebergeben.
82
83 In Verzeichnissen von Magiern mit einem Level >= ELDER_LVL wird das
84 access_rights.c NICHT ausgewertet (da damit andere Magier zB. an
85 Erzmagierrechte gelangen koennten).
86
87 Es wird immer nur EIN access_rights.c ausgewertet, naemlich das in der
88 tiefsten Verzeichnisebene.
89
90 Man kann sowohl in seinen Regionsverzeichnissen als auch in seinen
91 Homeverzeichnissen access_rights.c-Dateien anlegen.
92
93 GANZ WICHTIG!!!
94 Fuer die Dateien, die evtl. von anderen angelegt werden, ist man immer
95 noch selbst verantwortlich! Wenn jemand also ein Gebiet bei Dir an-
96 schliesst, muss es erst von den verantwortlichen Regionsmagiern abgesegnet
97 sein!