Permissions

A permission is a list of UIDs followed by a list of groups. If P is a permission list, then a UID x matches the permission if it either appears in the list P, or is a member of one of the groups that appear in P.

An example of a permission list is

({ "frege", "dino", "$baboon" })
The UIDs that match this permission list are "frege", "dino", and members of the group "$baboon".

The following efuns work with permission lists.

int match_perm(mixed uid, string *perm)
Argument uid can be an object or a UID. If it is an object, the object's EUID is used. The function returns 1 if uid matches permission perm, and 0 otherwise.