public static function can($action, $objectType = null, $objectId = null)
    {
        if (!isset($_SESSION['ACL_INFO'])) {
            return false;
        };
        $acl = $_SESSION['ACL_INFO'];

        foreach (array('*', $action) as $act) {
            if (array_key_exists($act, $acl)) {
                $acl2 = $acl[$act];
                foreach (array('*', $objectType) as $typ) {
                    if (array_key_exists($typ, $acl2)) {
                        $acl3 = $acl2[$typ];
                        if (in_array(0, $acl3) || in_array($objectId, $acl3)) {
                            return true;
                        };
                    };
                };
            };
        };

        return false;
    }