Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 02 Апр 2008 18:57:34 Заголовок сообщения: BasicAuth |
|
|
Скачал пример с регистрацией пользователей, подтвержденим почты, восстановлением пароля, логином
с /wiki/Code/Misc/BasicAuth
Раскидал всё по папкам.
Страничка перестала грузиться.
Если я удаляю app_controller из app/
Страничка загружается.
В чем проблема ? |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 02 Апр 2008 21:07:58 Заголовок сообщения: |
|
|
Вопросы правильно задавай пожалуйста - какая такая страничка - как не грузится? а что грузится? Телепатов тут нету
Опять же нифига не понятно что работает что нет? прошла ли попытка регистрации? прошло ли после подтверждение мыла?
И что такое 'страничка'? Статический .html?
в AppController прописан компонент авторизации (там всего то три строчки кода) - нет AppController - нет авторизации |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 02 Апр 2008 22:49:45 Заголовок сообщения: |
|
|
Не грузится верстка и соответственно данное view
Если я удаляю AppController, загружается верстка и соот. view(появляется формы ввода пароля, мыла, captcha) |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 02 Апр 2008 23:42:14 Заголовок сообщения: |
|
|
значит надо файл поправить |
|
Вернуться к началу |
|
|
nws
цитировать
Зарегистрирован: 25 Фев 2008 15:42:23 Сообщения: 96
|
Добавлено: 03 Апр 2008 19:19:14 Заголовок сообщения: |
|
|
Хз что тут можно подправить =)
Код: |
<?php
//
//
//
class AppController extends Controller {
var $components = array('Auth2');
// Parameters for AuthComponent
var $loginRedirect = '/';
var $userScope = array('User.is_active = 1');
}
?> |
|
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 05 Апр 2008 00:25:20 Заголовок сообщения: |
|
|
ХЗ что тебе ответить - задавай вопросы на которые телепатировать не надо (сам то ты не понял телепатического ответа)
чтото там гдето там не работает - не есть вопрос |
|
Вернуться к началу |
|
|
Ratso Гость цитировать
|
Добавлено: 19 Апр 2008 23:08:12 Заголовок сообщения: |
|
|
Вот все-таки интегрировал данное решение к себе на сайт. Но сразу возник вопрос. У меня на сайте две категории зарегистрированных пользователей: читатели, которые могут писать комментарии и админ сайта, у которого есть доступ к admin_* функциям контроллеров. В БД у каждого юзера есть поле admin. Если там 1 - значит этот юзер - админ, если нет, то просто пользователь.
Проблема в том, что данный пример использует "экзотический" метод использования библиотеки Auth (Auth2).
Собсвтенно, чтобы Auth (если без Auth2) мог определять кто-есть кто, нужно было в app_controller.php приписать такой код:
function isAuthorized() {
if (isset($this->params[Configure::read('Routing.admin')])) {
if ($this->Auth->user('admin') != 1) {
return false;
}
}
return true;
}
Но в случае использования auth2 это не работает Менять строчку $this->Auth->user('admin') != 1 на $this->Auth2->user('admin') != 1
пробовал - не работает...
Как быть? Что от чего наследуется и куда этот код нужно приписать, чтоб работал? Или придется через beforeFilter все переписывать (затыков еще больше будет ) |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 19 Апр 2008 23:41:05 Заголовок сообщения: |
|
|
Ratso
Цитата: | пробовал - не работает... |
как не работает? просто 'не работает' или есть всетаки какието признаки\сообщения\отклонения в поведение? |
|
Вернуться к началу |
|
|
Ratso
цитировать
Зарегистрирован: 19 Апр 2008 23:10:04 Сообщения: 23
|
Добавлено: 19 Апр 2008 23:56:26 Заголовок сообщения: |
|
|
Просто если включить DebugMode прекращяет работать функция динамичной генерации картинок - не включить Но можно проверить...
Вообще сайт работает, но любой юзверь может зайти в админку (т.е. по видимому функция игнорируется). Пробовал для проверке написать в теле function isAuthorized() { echo "Функция сработала"; } Но при выводе не заметил, что этот текст выводится...
Добавлено позже: P.S. $this->log("Что-то не работает!", LOG_DEBUG); в isAuthorized тоже не фиксируется в логах |
|
Вернуться к началу |
|
|
Ratso
цитировать
Зарегистрирован: 19 Апр 2008 23:10:04 Сообщения: 23
|
Добавлено: 20 Апр 2008 17:39:08 Заголовок сообщения: |
|
|
Вопрос решен.
Решение:
В app_controller.php добавить срочку:
var $authorize = 'controller';
После этого
function isAuthorized() {
if (isset($this->params[Configure::read('Routing.admin')])) {
if ($this->Auth2->user('admin') != 1) {
return false;
}
}
return true;
}
будет работать |
|
Вернуться к началу |
|
|
KPOTOB
цитировать
Зарегистрирован: 09 Дек 2007 14:46:20 Сообщения: 127
|
Добавлено: 20 Апр 2008 17:50:19 Заголовок сообщения: |
|
|
Ratso
Не судьба почитать сорцы AuthComponent?
Чтобы вызывался в контроллере isAuthorized необходимо чтобы у Auth поле $authorize было не false как по дефолту а 'controller'
При работе через Auth2 это означает что в контроллере надо добавить var $authorize='controller'; |
|
Вернуться к началу |
|
|
|