Есть ли какая-либо причина, позволяющая зарегистрированным пользователям просматривать руководство пользователя?
Я бы добавил что-то подобное в загрузчик
//Add modules that are only relevant to local development
if(Kohana::$environment == Kohana::DEVELOPMENT)
{
Kohana::modules(array_merge(Kohana::modules(), array(
'codebench' => MODPATH.'codebench', // Benchmarking tool
'userguide' => MODPATH.'userguide', // User guide and API documentation
'unittest' => MODPATH.'unittest', // Unit testing
)));
}
тогда любые общедоступные сайты просто меняют $environment
на что-то еще, например STAGING
или TESTING
Kohana::$environment = Kohana::TESTING //In the bootstrap file
С другой стороны
SetEnv KOHANA_ENV TESTING //to the .htaccess file
ВАРИАНТ 2 - Сначала загрузить модуль авторизации
Я только что попробовал это, похоже, работает для меня. В своем файле начальной загрузки загрузите модули так:
/**
* Enable modules. Modules are referenced by a relative or absolute path.
*/
Kohana::modules(array(
'auth' => MODPATH.'auth', // Basic authentication
'cache' => MODPATH.'cache', // Caching with multiple backends
'database' => MODPATH.'database', // Database access
'image' => MODPATH.'image', // Image manipulation
'orm' => MODPATH.'orm', // Object Relationship Mapping
));
//Add modules that are only relevant to testing
if(Kohana::$environment == Kohana::DEVELOPMENT and Auth::instance()->logged_in())
{
Kohana::modules(array_merge(Kohana::modules(), array(
'codebench' => MODPATH.'codebench', // Benchmarking tool
'userguide' => MODPATH.'userguide', // User guide and API documentation
'unittest' => MODPATH.'unittest', // Unit testing
)));
}
Вариант 3 - Изоляция браузера API
В пользовательской конфигурации есть опция конфигурации:
// Enable the API browser. TRUE or FALSE
'api_browser' => TRUE,
, который вы можете установить в false, если пользователь не вошел в систему, аналогично загрузке модулей выше. В настоящее время это ошибка, которая приводит к сбою шаблона руководства пользователя, поскольку он не может найти маршрут к API.
Если вы хотите приложить все усилия, чтобы заставить это работать (до обновления), затем скопируйте /modules/userguide/views/userguide/template.php
в /application/views/userguide/template.php
и затем замените строки с 28 по 30 следующим:
<li class="api">
<a href="<?php echo (Kohana::$config->load('userguide.api_browser') === TRUE)?Route::url('docs/api'):'#'; ?>"><?php echo __('API Browser') ?></a>
</li>
и поместите это в /application/config/userguide.php
:
<?php defined('SYSPATH') or die('No direct script access.');
$config = array();
if(Kohana::$environment == Kohana::DEVELOPMENT and Auth::instance()->logged_in())
{
$config['api_browser'] = FALSE;
}
return $config;