/* /secure/sefun/security.c * from Dead Souls 3.3 * returns the file privs for any file or directory * created by Descartes of Borg 940903 */ #include <privs.h> string file_privs(string file) { string *path; if(!sizeof(path = explode(file, "/"))) return 0; switch(path[0]) { case "adm": return PRIV_SECURE; case "cmds": return PRIV_CMDS; case "daemon": return PRIV_MUDLIB; case "estates": return PRIV_GENERAL; case "lib": return PRIV_GENERAL; case "obj": return PRIV_GENERAL; case "secure": return PRIV_SECURE; case "shadows": return PRIV_GENERAL; case "verbs": return PRIV_CMDS; case "www": return PRIV_GENERAL; case "realms": if(sizeof(path) > 1) return lower_case(path[1]); else return 0; case "domains": if(sizeof(path) > 1) return capitalize(lower_case(path[1])); else return 0; default: return 0; } } int member_group(mixed who, string grp) { string *ppl; if(objectp(who)) who = (string)who->GetKeyName(); if(!(ppl = (string *)master()->query_group(grp))) return 0; return (member_array(who, ppl) != -1); } mixed unguarded(function f) { return (mixed)master()->apply_unguarded(f); }