На самом деле, поскольку уровни доступа жестко заданы в базу данных в Joomla!1.5, это сравнение может быть неудачным, только если кто-то намеренно взломал новые группы.Строки могут быть изменены в .ini-файлах (так, чтобы неанглийские установки все еще использовали английские слова в базе данных - это не верно для других таблиц, таких как имена плагинов или компонентов).
Вы могли бы получить идентификатор группы через JFactory::getACL()
, а затем $acl->getGroupsByUser($userid, false)
(см. docs ), но допущение, что больший идентификатор также означает более высокие привилегии, также кажется немного хакерским (правда для стандартной установки).
Кроме этого, вы можете взять Joomla!возможность : более четко определить, что такое «пользователь-администратор»: кто может установить новое программное обеспечение?кто может изменить конфигурацию системы?Просто сделайте разумное предположение, что-то связанное с тем, что вы хотите, чтобы он делал как пользователь-администратор, используйте это в authorize()
-Call (см. docs ) и, возможно, задокументируйте это в своем интерфейсе.
Единственным чистым решением (которое я знаю) было бы определить новые записи для ACL-authorize-lookuptable (в настоящее время реализовано только в php, а не в SQL).Это единственный способ убедиться, что это будет Joomla!1.6-доказательство, где будут доступны пользовательские группы пользователей (и, таким образом, пользователь с правами администратора может предоставить эту авторизацию группе пользователей или нет).Например:
$acl =& JFactory::getACL();
$acl->addACL('{com_nameOfExtension}', '{action}', 'users', 'super administrator');
$acl->addACL('{com_nameOfExtension}', '{action}', 'users', 'administrator');
И вот они снова, жестко закодированные имена групп.Ну.