#include "/secure/master.h"#include "/sys/files.h"
gehe zum Quellcode dieser Datei
Funktionen | |
| int | domain_master (string user, string domain) |
| int | domain_member (string user, string domain) |
| int | add_domain_master (string user, string dom) |
| int | remove_domain_master (string user, string dom) |
| string * | get_domains () |
| string * | get_domain_homes (string wiz) |
| int add_domain_master | ( | string | user, | |
| string | dom | |||
| ) |
Definiert in Zeile 29 der Datei domain.c.
Benutzt domains, find_userinfo(), get_userinfo(), get_wiz_level(), GOD_LVL, LORD_LVL, SendWizardHelpMail(), set_domains(), SIMUL_EFUN_FILE, update_wiz_level() und USER_DOMAIN.
Wird benutzt von _addmaster().
00030 { 00031 string *domains; 00032 00033 if ((call_other(SIMUL_EFUN_FILE, "process_call") || 00034 call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) || 00035 !find_userinfo(user)) 00036 return 0; 00037 domains=get_userinfo(user)[USER_DOMAIN+1]; 00038 if (!domains) 00039 set_domains(user,({dom})); 00040 else 00041 { 00042 // Doppelte Eintraege vermeiden 00043 domains=domains-({dom})+({dom}); 00044 set_domains(user, domains); 00045 } 00046 if (get_wiz_level(user) < LORD_LVL+5) { 00047 update_wiz_level(user,LORD_LVL+5); 00048 SendWizardHelpMail(user, LORD_LVL+5); 00049 } 00050 return 1; 00051 }


| int domain_master | ( | string | user, | |
| string | domain | |||
| ) |
Definiert in Zeile 12 der Datei domain.c.
Benutzt domains, find_userinfo(), get_userinfo(), i und USER_DOMAIN.
Wird benutzt von ShowEPObjects(), valid_read() und valid_write().
00013 { 00014 string *domains; 00015 int i; 00016 00017 if (!find_userinfo(user)|| 00018 !pointerp(domains=get_userinfo(user)[USER_DOMAIN+1])) 00019 return 0; 00020 return (member(domains,domain) != -1); 00021 }


| int domain_member | ( | string | user, | |
| string | domain | |||
| ) |
Definiert in Zeile 23 der Datei domain.c.
Benutzt IS_DOMAINMEMBER.
Wird benutzt von valid_write().
00024 { 00025 if (domain=="erzmagier") return 0; 00026 return (IS_DOMAINMEMBER(user)&&file_size("/d/"+domain+"/"+user)==-2); 00027 }

| string* get_domain_homes | ( | string | wiz | ) |
Definiert in Zeile 80 der Datei domain.c.
Benutzt FSIZE_DIR, get_domains(), query_wiz_level() und WIZARD_LVL.
Wird benutzt von create_wizard() und stat().
00081 { 00082 string *homes=({}); 00083 string tmp; 00084 00085 if (query_wiz_level(wiz)<=WIZARD_LVL) return ({}); 00086 00087 tmp = "/d/%s/"+wiz; 00088 foreach(string dir: get_domains()) { 00089 if (dir[0]!='.' && file_size(sprintf(tmp,dir)) == FSIZE_DIR) 00090 //Magierverzeichnis da und faengt nicht mit "." an: aufnehmen. 00091 homes+=({dir}); 00092 } 00093 return homes; 00094 }


| string* get_domains | ( | ) |
Definiert in Zeile 67 der Datei domain.c.
Benutzt DOMAINDIR und FSIZE_DIR.
Wird benutzt von epilog() und get_domain_homes().
00067 { 00068 string *regions=({}); 00069 // alle Verzeichnisse in /d/ ermitteln 00070 foreach(string region: (get_dir("/"DOMAINDIR"/*") 00071 || ({}))-({".","..","erzmagier"})) { 00072 if (region[0]!='.' && file_size("/d/"+region) == FSIZE_DIR) 00073 //Verzeichnis, kein File und faengt nicht mit "." an: aufnehmen. 00074 regions+=({region}); 00075 } 00076 return regions; 00077 }

| int remove_domain_master | ( | string | user, | |
| string | dom | |||
| ) |
Definiert in Zeile 53 der Datei domain.c.
Benutzt domains, find_userinfo(), get_userinfo(), IS_GOD, set_domains() und USER_DOMAIN.
Wird benutzt von _removemaster().
00054 { 00055 string *domains; 00056 00057 if (!IS_GOD(geteuid(previous_object())) 00058 ||!find_userinfo(user) 00059 ||!(domains=get_userinfo(user)[USER_DOMAIN+1]) 00060 || member(domains,dom)==-1) 00061 return 0; 00062 domains-=({dom}); 00063 set_domains(user,domains); 00064 return 1; 00065 }


1.6.3