Представленный здесь метод доступа пользователя требует небольшой модификации
модуль (wiki.cgi) для доступа с любой страницы:
$par{ 'extra' } = " <ahref =pass .cgi?$page>изменить<br>пароль</a>", если
$ENV{REMOTE_USER)
экв.
$страница;
Кроме того, эту ссылку можно просто отредактировать в шаблоне.
232
ПРОВЕРЕННЫЕ КОМПОНЕНТЫ WIKI
Доступ пользователей управляется двумя модулями: user. cgi и пройти. компьютерная графика Бывший
определяет, кто является участником, а последний используется для смены пароля.
Включены описания того, как работают эти модули, а также скриншоты.
в главе 9, где вопрос аутентификации пользователя обсуждается с
точка зрения администратора.
Управление участниками
Сначала мы рассмотрим пользовательский модуль, используемый администратором для определения участников.
быть разрешен доступ.
пользователь.cgi
#! /USR/бен/перл
#(c) 1999, Cunningham & Cunningham, Inc.
использовать строгий;
my $link = "[AZ][az]+([AZ][az]+)+" ;
print "Тип контента: text/html\n\n";
error("должен быть системным администратором\n")
если только $ ENV{REMOTE_USER} eq "SystemAdministrator";
Разрешить модуль только для указанного администратора.
мой $файл;
открыть (F, ".htaccess") или ошибку ("$!:
пока (<F>) {
$file = $1, если /^AuthUserFile (.*)/
.htaccess");
}
закрыть (F);
Этот код читает обычный файл веб-каталога .htaccess, который используется для ограничения
доступ к этому каталогу и его подкаталогам. В зависимости от веб-сервера
ситуации, это может быть создано скриптом или написано вручную. Файлы с префиксом точки
обычно невидим для команд оболочки (не в Windows). Как вы создаете и
изменить этот файл в зависимости от ситуации. Важной частью здесь является то, что этот файл
указывает файл, используемый для хранения имени пользователя и пароля, который
модуль будет изменяться.
мой% пар;
$par{'title'} = "Добавить или удалить пользователей";
если ($ ENV{REQUEST_METHOD} eq 'GET') {
open (F, "$flie") или error("$file: $!");
моя форма $ = "";
пока (<F>) {
следующий, если /^Системный администратор:/;
ДОПОЛНИТЕЛЬНЫЕ ДОПОЛНИТЕЛЬНЫЕ КОМПОНЕНТЫ
233
$form .= <<"EOF!" если / Λ ($ ссылка):/;
<br><input type=text name=user size=30 value=$l>
E0F1
}
$form .= <<"E0F2" х ($.<8 ? 11-$. : 3) ;
<br><input type=text name=user size=30>
EOF2
закрыть (F);