/* Do not remove the headers from this file! see /USAGE for more info. */
#include <security.h>
nomask int check_previous_privilege(mixed priv)
{
return SECURE_D->check_privilege(priv,2);
}
nomask int check_privilege(mixed priv)
{
return SECURE_D->check_privilege(priv,1);
}
nomask void require_privilege(mixed priv) {
if (!check_privilege(priv))
error("Permission denied: Do not have privilege " + priv + "\n");
}
nomask mixed get_protection(string file,string mode)
{
int rw;
switch (mode[0])
{
case 'w':
rw = 1;
break;
case 'r':
rw = 0;
break;
default:
error("Bad argument 2 to get_protection()\n");
break;
}
switch (mode[1])
{
case 'f':
file += "foo";
break;
case 'd':
if (file[<1]=='/')
file += "foo";
else
file += "/foo";
break;
default:
error("Bad argument 2 to get_protection()\n");
break;
}
return SECURE_D->query_protection(file,rw);
}
mixed get_privilege(object ob)
{
return function_exists("query_privilege",ob)==M_ACCESS && ob->query_privilege();
}