. */ /** * General access levels * * @version 1.0 * @date 27.11.2009 * @author Wim van Ravesteijn * @license http://opensource.org/licenses/gpl-license.php GNU Public License */ abstract class Access { const ADMIN = 999; // administrator const BOARD = 400; // board member of any local const MEMBER = 300; // normal AEGEE member (and nowhere board member) const ANCIEN = 200; // AEGEE ancien (alumni) const VISITOR = 100; // Logged in visitor (not confirmed member of any local) const ANONYMOUS = 0; // Anonymous user /** * Get a textual representation of the provided access level * * @param int access: access level * @return string: textual representation of the access level */ public static function getAccess($access) { switch( $access ) { case self::ADMIN: return "Administrator"; break; case self::BOARD: return "Board"; break; case self::MEMBER: return "Member"; break; case self::ANCIEN: return "Ancien"; break; case self::VISITOR: return "Visitor"; break; case self::ANONYMOUS: return "Anonymous"; break; default: return "Unknown"; break; } } /** * Get a numeric representation of the provided access level * * @param string access: textual representation of the access level * @return int: access level or NULL in case the param isNotAccess */ public static function getAccessNumber($access) { switch( ucwords(strtolower($access) ) ) { case "Administrator": return self::ADMIN; break; case "Board": return self::BOARD; break; case "Member": return self::MEMBER; break; case "Ancien": return self::ANCIEN; break; case "Visitor": return self::VISITOR; break; case "Anonymous": return self::ANONYMOUS; break; default: return NULL; break; } } /** * Check if the provided access level exists * * @param int access: access level * @return boolean: true in case the access level exists, false otherwise */ public static function isAccess($access) { if ( ! is_numeric($access) ) return false; return in_array($access, self::getAccesses()); } /** * Get an array of all access levels * * @return array: array of all access levels currently supported */ public static function getAccesses() { return array(self::ANONYMOUS, self::VISITOR, self::ANCIEN, self::MEMBER, self::BOARD, self::ADMIN); } /** * Check if the current logged in user has a certain access level * * @param int requiredLevel: required access level * @return boolean: true in case user has required access level, false otherwise */ public static function hasAccess($requiredLevel) { if( self::isAccess($requiredLevel) AND $_SESSION['sess_access']>=$requiredLevel ) { return true; }else { return false; } } } ?>