This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "quickfw".
The branch, master has been updated
via 6d9af60c09a44976417c83e7d9795f60746e7aa2 (commit)
via 72d844e4e4b8443dd125e19e78457c46bf7be478 (commit)
from c3728ed49cd2993b7963d40fc39ccb2a4813bcaa (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6d9af60c09a44976417c83e7d9795f60746e7aa2
Author: Ivan Borzenkov <iva...@li...>
Date: Fri Jun 25 04:54:57 2010 +0400
Описание авторизации
diff --git a/doc/asciidoc/auth.txt b/doc/asciidoc/auth.txt
index 5fbe094..f18cf59 100644
--- a/doc/asciidoc/auth.txt
+++ b/doc/asciidoc/auth.txt
@@ -6,8 +6,29 @@
В отличие от традиционных решений в данном фреймворке сессии являются частным случаем авторизации, так как в большинстве случаев сессии используются для авторизации пользователей, то такой подход оказался оправданным.
-Для того чтобы стартовать сессию не привязывая ее к конкретному пользователю нужно прямо или косвенно наследовать контроллер от класса QuickFW_Auth и для старта сессии вызвать $this->session(); После вызова $this->session(); с сессями можно работать через стандартный механизм - массив $_SESSION.
+В зависимости от значение параметра +$config[\'QFW'][\'cacheSessions']+ сессионные данные сохраняются в стандартном хранилище сессий или в кеше, указанном по умолчанию, ключами являются строки sess_<id сессии>, пустые сессии автоматически удаляются из хранилища и с помощью механизма очистки сессий также производится чистка кеша.
+
+Для того чтобы стартовать сессию не привязывая ее к конкретному пользователю нужно прямо или косвенно наследовать контроллер от класса QuickFW_Auth и для старта сессии вызвать $this->session() После вызова $this->session() с сессями можно работать через стандартный механизм - массив $_SESSION. Для уничтожения сессии нужно вызвать $this->sessionDestroy(), а для создания сесии с новым sessionID $this->sessionRestart().
При наличие у пользователя сессионной куки сессия автоматически поднимается при вызове конструктора класса QuickFW_Auth.
-Сессионные данные сохраняются в кеше, указанном по умолчанию, ключами являются строки sess_<id сессии>, пустые сессии автоматически удаляются из хранилища и с помощью механизма очистки сессий также производится чистка кеша.
+Логин пользователя
+~~~~~~~~~~~~~~~~~~
+
+Если сессия не поднята или в массиве $_SESSION нету ключа с именем, совпадающем с первым параметром конструктора, то вызывается функция checkUser(), которая может быть перегружена в наследуемом классе - если функция возвращает false, то авторизация не проходит, иначе возвращаемое значение заносится в $_SESSION[\'<name>'].
+
+Конструктор класса QuickFW_Auth принимает до двух параметров и возвращает флаг:
+
+[source,php]
+---------------------------------------------
+/**
+ * Инициализация пользователя - авторизация или восстановление сесии
+ *
+ * @param string $name ключ в $_SESSION для хранения данных авторизации
+ * @param boolean|string $redir адрес редиректа при неудачном логине
+ * @return boolean авторизован пользователь или нет
+ */
+public function __construct($name='user',$redir=false)
+---------------------------------------------
+
+Стандартная функция checkUser() подходит для авторизации в админке - проверяет совпадение логина и пароля со значениями в конфиге ($config[\'admin'][\'login'] и $config[\'admin'][\'passw']). Если функция checkUser() вернет массив в ключем \'redirect' то после логина произойдет переход на указанный адрес или на себя в случае true.
commit 72d844e4e4b8443dd125e19e78457c46bf7be478
Author: Ivan Borzenkov <iva...@li...>
Date: Fri Jun 25 04:54:24 2010 +0400
Функция авторизации по умолчанию - редирект после POST
diff --git a/QFW/QuickFW/Auth.php b/QFW/QuickFW/Auth.php
index 26feb23..05fea50 100644
--- a/QFW/QuickFW/Auth.php
+++ b/QFW/QuickFW/Auth.php
@@ -146,7 +146,10 @@ class QuickFW_Auth
if( (strcasecmp(QFW::$config['admin']['login'], trim($username)) == 0)
&& (strcasecmp(QFW::$config['admin']['passw'], trim($password)) == 0)
)
- return $username;
+ return array(
+ 'user' => $username,
+ 'redirect' => true,
+ );
else
return false;
}
-----------------------------------------------------------------------
Summary of changes:
QFW/QuickFW/Auth.php | 5 ++++-
doc/asciidoc/auth.txt | 25 +++++++++++++++++++++++--
2 files changed, 27 insertions(+), 3 deletions(-)
hooks/post-receive
--
quickfw
|