Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions antiflood/_antiflood.html
Original file line number Diff line number Diff line change
@@ -1,61 +1,61 @@
# ���������� ����� ��� ��� �������. ��� ����� ������� � �������� auto.p
# подключаем класс или его потомка. это можно сделать в корневом auto.p
@USE
antiflood.p


###########################################################################
@main[][sUid;bShowForm]
# �������� uid
# получаем uid
$sUid[^antiflood:get[$form:uid]]

$bShowForm(1)

^if(def $form:uid){
^rem{ *** ������ $form:uid - ������ ����� *** }
^rem{ *** пришло $form:uid - постят форму *** }
^try{
^antiflood:exec{
^rem{ *** ��������� ���-�� � ����� ��������� ��� ���� *** }
^rem{ *** проверяем все-ли в форме заполнено как надо *** }
^check[]

^rem{ *** ��� ��� ��� �� ���������� ��������� ������ ���� ��� ������ ������� *** }
^rem{ *** тут ваш код по добавлению пришедших данных куда вам больше хочется *** }
...

<p>���� ��������� ���� ������� ���������.</p>
<p>Ваше сообщение было успешно добавлено.</p>
$bShowForm(0)
}
}{
^if($exception.type eq "antiflood"){
$exception.handled(1)
<p>���� ��������� ��� ���� ��������� <b>�����</b>.</p>
<p>Ваше сообщение уже было добавлено <b>ранее</b>.</p>
$bShowForm(0)
}
^if($exception.type eq "check"){
$exception.handled(1)
<p>�� ��������� ������������ ���� �����.</p>
<p>Не заполнены обязательные поля формы.</p>
}
}
}{
^rem{ *** ���� ������ ������ � ��� $form:uid - ��� ������ *** }
^rem{ *** если постят данные и нет $form:uid - это спамер *** }
^if(def $env:REQUEST_METHOD && ^env:REQUEST_METHOD.upper[] eq "POST"){
$response:status(404)
}
}

^if($bShowForm){
^rem{ *** ���� ���� - ���������� ����� *** }
^rem{ *** если надо - показываем форму *** }
<form method="post">
<input type="hidden" name="uid" value="$sUid" />

<i>* ���:</i><br />
<i>* Имя:</i><br />
<input type="text" name="name" value="$form:name" /><br />

<i>E-mail:</i><br />
<input type="text" name="email" value="$form:email" /><br />

<i>���������:</i><br />
<i>Сообщение:</i><br />
<textarea name="text">$form:text</textarea><br />

<input type="submit" name="action" value="���������" />
<input type="submit" name="action" value="Отправить" />
</form>
}
#end @main[]
Expand All @@ -64,6 +64,6 @@
###########################################################################
@check[]
^if(!def $form:name){
^throw[check;�� ��������� ������������ ���� �����.]
^throw[check;Не заполнены обязательные поля формы.]
}
#end @check[]
26 changes: 13 additions & 13 deletions auth/_auth_forgot.html
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# ��������! �� �������� ������� ���� ���� � �������� �����!
# ВНИМАНИЕ! НЕ ЗАБУДЬТЕ УДАЛИТЬ ЭТОТ ФАЙЛ С РАБОЧЕГО САЙТА!

@main[]
^rem{ *** ������������� ���������� � sql �������� *** }
^rem{ *** устанавливаем соединение с sql сервером *** }
^oSql.server{
^rem{ *** ������� ������ ������ auth *** }
^rem{ *** создаем объект класса auth *** }
$auth[^auth::init[$cookie:CLASS;$form:fields;$.csql[$oSql]]]

&lt^;&lt^; <a href="./_auth_info.html">���������� � ������</a>
&lt^;&lt^; <a href="./_auth_info.html">Информация о сессии</a>

^rem{ *** ������������� �������������� ��������� *** }
^rem{ *** устанавливаем антикеширующие заголовки *** }
^auth.setExpireHeaders[]

<h2>������ ������?</h2>
<h2>Забыли пароль?</h2>
$is_show_form(1)

^if(def $form:code){
Expand All @@ -23,12 +23,12 @@
$.[auth.passwd][$form:code]
]
$is_show_form(0)
<p>������������ '$form:name' ������� ���������� ����� ������ '$form:code'.</p>
<p>������������ ������������� ����� � <a href="/_auth_profile.html">�������</a> � �������� ���.</p>
<p>Пользователю '$form:name' успешно установлен новый пароль '$form:code'.</p>
<p>Настоятельно рекомендуется зайти в <a href="/_auth_profile.html">профайл</a> и изменить его.</p>
}{
$exception.handled(1)
$errors[^auth.decodeError[]]
<p>��� ��������� ������ ������ �������� ��������� ��������: ^errors.menu{$errors.name}[, ].</p>
<p>При активации нового пароля возникли следующие проблемы: ^errors.menu{$errors.name}[, ].</p>
}
}

Expand All @@ -44,23 +44,23 @@
]

$is_show_form(0)
<p>�� ��� ����������� ����� ������� ������, ����� �� ������� �� ���������� ����� ������ ������������ '$form:[auth.name]'.</p>
<p>На ваш электронный адрес выслана ссылка, зайдя по которой вы установете новый пароль пользователю '$form:[auth.name]'.</p>
}{
$exception.handled(1)
$errors[^auth.decodeError[]]
<p>��� �������� ������ ������ �������� ��������� ��������: ^errors.menu{$errors.name}[, ].</p>
<p>При создании нового пароля возникли следующие проблемы: ^errors.menu{$errors.name}[, ].</p>
}
}

^if($is_show_form){
^untaint[html]{
<form method="post" action="/_auth_forgot.html">
<input type="hidden" name="do" value="do" />
�����:<br />
Логин:<br />
<input type="text" name="auth.name" value="^if(def $form:[auth.name]){$form:[auth.name]}{$auth.last_name}" /><br />
E-mail:<br />
<input type="text" name="auth.email" value="$form:[auth.email]"/><br />
<input type="submit" name="action" value="�������� ������" />
<input type="submit" name="action" value="Прислать пароль" />
</form>
}
}
Expand Down
50 changes: 25 additions & 25 deletions auth/_auth_info.html
Original file line number Diff line number Diff line change
@@ -1,64 +1,64 @@
# ��������! �� �������� ������� ���� ���� � �������� �����!
# ВНИМАНИЕ! НЕ ЗАБУДЬТЕ УДАЛИТЬ ЭТОТ ФАЙЛ С РАБОЧЕГО САЙТА!

@main[]
^rem{ *** ������������� ���������� � sql �������� *** }
^rem{ *** устанавливаем соединение с sql сервером *** }
^oSql.server{
^rem{ *** ������� ������ ������ auth *** }
^rem{ *** создаем объект класса auth *** }
$auth[^auth::init[$cookie:CLASS;$form:fields;$.csql[$oSql]]]

^if(def $form:[auth.logout] || (def $form:[auth.logon] && $auth.is_logon)){
^rem{ *** ��� logon/logout ������ external redirect �� ���� *** }
^rem{ *** при logon/logout делаем external redirect на себя *** }
$response:location[http://${env:SERVER_NAME}^request:uri.match[\?.*][]{}?^math:random(100)]
}

^rem{ *** ������������� �������������� ��������� *** }
^rem{ *** устанавливаем антикеширующие заголовки *** }
^auth.setExpireHeaders[]

<a href="./_auth_profile.html">^if($auth.is_logon){�������� ���������}{�����������}</a> &gt^;&gt^;<br />
<a href="./_auth_profile.html">^if($auth.is_logon){Изменить параметры}{Регистрация}</a> &gt^;&gt^;<br />

^if(!$auth.is_logon){

^rem{ *** ���� ������������ �� ��������� - ������� ����� ��� ������ *** }
^rem{ *** если пользователь не залогинен - выводим форму для логина *** }
^auth.htmlFormLogon[
$.target_url[./_auth_info.html]
]

^if(def $form:[auth.logon]){
<p>������ ������?<br />�������������� <a href="/_auth_forgot.html">������ ������</a> ��� ���� ����� ���������� ���� ����� ������.</p>
<p>Забыли пароль?<br />Воспользуйтесь <a href="/_auth_forgot.html">данной формой</a> для того чтобы установить себе новый пароль.</p>
}
}

^rem{ *** ���������� � ������ *** }
^rem{ *** информация о сессии *** }
<p>
<b>���������� � ������:</b><br />
��� �������������: $auth.init_type<br />
������������� ������: $auth.session.session_id<br />
���������� ����: $auth.session.sid<br />
���������������� ����: $auth.session.uid<br />
���� ���������� �������: $auth.session.dt_access<br />
<b>Информация о сессии:</b><br />
Тип инициализации: $auth.init_type<br />
Идентификатор сессии: $auth.session.session_id<br />
Сессионная кука: $auth.session.sid<br />
Пользовательская кука: $auth.session.uid<br />
Дата последнего доступа: $auth.session.dt_access<br />
</p>

^rem{ *** ���������� � �������, ������������������ � ������� *** }
^rem{ *** информация о группах, зарегистрированных в системе *** }
<p>
<b>������:</b><br />
<b>Группы:</b><br />
^auth.groups.menu{$auth.groups.name}[<br />]
</p>

^if($auth.is_logon){
^rem{ *** ���������� � ������������ *** }
^rem{ *** информация о пользователе *** }
<p>
<b>���������� � ������������:</b><br />
�����: $auth.user.name<br />
<b>Информация о пользователе:</b><br />
Логин: $auth.user.name<br />
Email: $auth.user.email<br />
������� � �������: ^auth.user.groups.menu{$auth.user.groups.name}[, ]<br />
���� �����������: $auth.user.dt_register<br />
���� ���������� ������: $auth.user.dt_logon
Состоит в группах: ^auth.user.groups.menu{$auth.user.groups.name}[, ]<br />
Дата регистрации: $auth.user.dt_register<br />
Дата последнего логина: $auth.user.dt_logon
</p>
}{
<p>��������� ��� ����������� ������������: $auth.last_name</p>
<p>Последний раз подключался пользователь: $auth.last_name</p>
}

^rem{ *** ������� ����� ��� �������. ���� ������������ �� ��������� ����� �������� �� ����� *** }
^rem{ *** выводим форму для логаута. если пользователь не залогинен форма показана не будет *** }
^auth.htmlFormLogout[$.target_url[./_auth_info.html]]
}

28 changes: 14 additions & 14 deletions auth/_auth_profile.html
Original file line number Diff line number Diff line change
@@ -1,53 +1,53 @@
# ��������! �� �������� ������� ���� ���� � �������� �����!
# ВНИМАНИЕ! НЕ ЗАБУДЬТЕ УДАЛИТЬ ЭТОТ ФАЙЛ С РАБОЧЕГО САЙТА!

@main[]
^rem{ *** ������������� ���������� � sql �������� *** }
^rem{ *** устанавливаем соединение с sql сервером *** }
^oSql.server{
^rem{ *** ������� ������ ������ auth. �� ���� �������� �� �� �������� ������ $form:fields ��-��. ��� �����/logout ��������� �� ����� *** }
^rem{ *** создаем объект класса auth. на этой странице мы не передаем классу $form:fields сл-но. тут логин/logout произойти не может *** }
$auth[^auth::init[$cookie:CLASS;;$.csql[$oSql]]]

^rem{ *** ������ �������������� ��������� *** }
^rem{ *** выдаем антикеширующие заголовки *** }
^auth.setExpireHeaders[]

&lt^;&lt^; <a href="./_auth_info.html">���������� � ������</a>
&lt^;&lt^; <a href="./_auth_info.html">Информация о сессии</a>

<h2>^if($auth.is_logon){��������� ����������}{�����������}</h2>
<h2>^if($auth.is_logon){Изменение параметров}{Регистрация}</h2>
$is_show_form(1)

^if(def $form:do){
^if($auth.is_logon){
^try{
^rem{ *** ��������� ��������� ������������� ������������ *** }
^rem{ *** сохраняем параметры существующего пользователя *** }
^auth.updateUser[$form:fields]
<p>��������� ������������ ���������.</p>
<p>Параметры пользователя сохранены.</p>
$is_show_form(0)
}{
$exception.handled(1)
$errors[^auth.decodeError[]]
<p>��� ���������� ����� ���������� ������������ �������� ��������� ��������: ^errors.menu{$errors.name}[, ].</p>
<p>При сохранении новых параметров пользователя возникли следующие проблемы: ^errors.menu{$errors.name}[, ].</p>
}
}{
^try{
^rem{ *** ����������� ������ ������������ *** }
^rem{ *** регистрация нового пользователя *** }
^auth.insertUser[$form:fields]

^rem{ *** ���� ����������� ������ ������� - ������� ������������ *** }
^rem{ *** если регистрация прошла успешно - логиним пользователя *** }
^auth.logon[
$form:fields
$.[auth.logon][do]
]
<p>������������ ������� ���������������.</p>
<p>Пользователь успешно зарегистрирован.</p>
$is_show_form(0)
}{
$exception.handled(1)
$errors[^auth.decodeError[]]
<p>��� ����������� ������ ������������ �������� ��������� ��������: ^errors.menu{$errors.name}[, ].</p>
<p>При регистрации нового пользователя возникли следующие проблемы: ^errors.menu{$errors.name}[, ].</p>
}
}
}

^if($is_show_form){
^rem{ *** ���� ���� ���������� ����� �����������/��������� ���������� *** }
^rem{ *** если надо показываем форму регистрации/изменения параметров *** }
^auth.htmlFormProfile[
$.fields[$form:fields]
$.target_url[./_auth_profile.html]
Expand Down
18 changes: 9 additions & 9 deletions auth/_auth_setpwd.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# ��������! �� �������� ������� ���� ���� � �������� �����!
# ВНИМАНИЕ! НЕ ЗАБУДЬТЕ УДАЛИТЬ ЭТОТ ФАЙЛ С РАБОЧЕГО САЙТА!

@main[]
&lt^;&lt^; <a href="./_auth_info.html">���������� � ������</a>
<h2>���������� ������ ������ ������������ Admin</h3>
&lt^;&lt^; <a href="./_auth_info.html">Информация о сессии</a>
<h2>Назначение нового пароля пользователю Admin</h3>

#^if(!def $env:REMOTE_ADDR || !^env.REMOTE_ADDR.match[^^127\.]){^throw[auth;Permission denied]}

^if(def $form:code && def $form:do){
^rem{ *** ������������� ���������� � sql �������� *** }
^rem{ *** устанавливаем соединение с sql сервером *** }
^oSql.server{
^rem{ *** ������� ������ ������ auth *** }
^rem{ *** создаем объект класса auth *** }
$auth[^auth::init[$cookie:CLASS;;$.csql[$oSql]]]

$admin_id(3)
Expand All @@ -22,16 +22,16 @@
auser_id = $admin_id
}
^auth.clearUserSessions[$admin_id;$auth.session.session_id]
<p>������������ Admin ������� ���������� ������ $form:code</p>
<p>Пользователю Admin успешно установлен пароль $form:code</p>
}
}{
^rem{ *** ���������� ����� *** }
^rem{ *** показываем форму *** }
$password[^math:md5[^math:random(1000)]]

<form method="post">
<input type="hidden" name="do" value="do" />
����� ������:<br />
Новый пароль:<br />
<input type="text" name="code" value="^password.left(10)" size="20" /><br />
<input type="submit" name="action" value="����������" />
<input type="submit" name="action" value="Установить" />
</form>
}
Loading