Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

BasicAuth

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 это не работает Sad Менять строчку $this->Auth->user('admin') != 1 на $this->Auth2->user('admin') != 1
пробовал - не работает...
Как быть? Что от чего наследуется и куда этот код нужно приписать, чтоб работал? Или придется через beforeFilter все переписывать (затыков еще больше будет Sad )
Вернуться к началу
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 прекращяет работать функция динамичной генерации картинок - не включить Smile Но можно проверить...

Вообще сайт работает, но любой юзверь может зайти в админку (т.е. по видимому функция игнорируется). Пробовал для проверке написать в теле 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';
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru