/** * Looks up a privilege by its parameters. * * @param midcom_core_dbaobject $object The DBA object we're working on * @param string $privilege The name of the privilege. * @param mixed $assignee Either a valid magic assignee (SELF, EVERYONE, USERS, ANONYMOUS), a midcom_core_user or a * midcom_core_group object or subtype thereof. * @param string $classname An optional class name to which a SELF privilege is restricted to. * @return midcom_core_privilege The privilege record from the database. */ public static function get_privilege(midcom_core_dbaobject $object, $privilege, $assignee, $classname = '') { if (!$object->can_do('midgard:privileges')) { debug_add("Failed to get a privilege, midgard:update or midgard:privileges on the " . get_class($object) . " {$object->guid} not granted for the current user.", MIDCOM_LOG_ERROR); return false; } if (is_object($assignee)) { $assignee = $assignee->id; } $obj = midcom_core_privilege::get_privilege($object, $privilege, $assignee, $classname); return $obj; }