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

Cake authorization

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Serginho

цитировать



Зарегистрирован: 27 Ноя 2009 17:19:14
Сообщения: 26

СообщениеДобавлено: 30 Ноя 2009 01:11:51    Заголовок сообщения: Cake authorization Ответить с цитатой

Authorization

Делаю авторизацию на сайт.

UsersController:

Код:

<?php
class UsersController extends AppController{
   var $components = array('RequestHandler','Auth');
   var $name = 'Users';
   var $paginate;

   
   function beforeFilter() {
       $this->Auth->userModel = 'Member'; //загружаю модель
       $this->Auth->allow('index','view');
    }
   
   function login(){      
      
   }
   function logout() {
      $this->redirect($this->Auth->logout());
   }

........
?>   


Так как модель User занята пользователями, то для авторизации создал модель Member:
Код:

<?php
class Member extends AppModel{
   var $name = 'Member';
}
?>


И соответственно login.ctp:

Код:

 <?php
$session->flash('auth');
echo $form->create('User', array('User','action' => 'login'));
echo $form->input('username');
echo $form->input('password');
echo $form->end('Login');
?>


При попытке зайти на сайт получаю:

Missing Controller
Error: MembersController could not be found и генерится такой url: http://www.adressbook_cake/members/login, а должно быть http://www.adressbook_cake/users/login.

Что я сделал не так?! Уже сутки голову ломаю...Все мануалы скурил Sad
_________________
No pain, no gain.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 30 Ноя 2009 23:11:17    Заголовок сообщения: Ответить с цитатой

Цитата:
Так как модель User занята пользователями, то для авторизации создал модель Member:

что то не пойму... зачем для авторизации отдельная модель?

а ошибка говорит что у вас контролера нет. и правильно говорит)
_________________
Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Serginho

цитировать



Зарегистрирован: 27 Ноя 2009 17:19:14
Сообщения: 26

СообщениеДобавлено: 30 Ноя 2009 23:17:38    Заголовок сообщения: Ответить с цитатой

michas писал(а):
Цитата:
Так как модель User занята пользователями, то для авторизации создал модель Member:

что то не пойму... зачем для авторизации отдельная модель?

а ошибка говорит что у вас контролера нет. и правильно говорит)


Ну по-моему не айс в таблице с юзерами (id, first_name, last_name, city, country etc.) хранить логин/пароль администратора.

Пишу адрессную книгу, в юзерах - ползователи (которые в книге), а для авторизации нужна другая таблица, насколько я понимаю. Поправьте, если я не прав.

Код:
$this->Auth->userModel = 'Member';

Я ж указываю на модель, причём тут контроллер? Или надо создавать отдельный контроллер для авторизации?
_________________
No pain, no gain.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 30 Ноя 2009 23:32:11    Заголовок сообщения: Ответить с цитатой

1. Кто у вас авторизовывается? Пользователи или только админ?
2. $this->Auth->loginRedirect указан где-нибудь?
_________________
Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Serginho

цитировать



Зарегистрирован: 27 Ноя 2009 17:19:14
Сообщения: 26

СообщениеДобавлено: 01 Дек 2009 01:13:17    Заголовок сообщения: Ответить с цитатой

Авторизируется только админ.

Вот как у меня всё происходит, досихпор не понял откуда там ноги ростут

Код:

   
   function beforeFilter() {
      $this->Auth->userModel = 'Member';
      $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
      $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index');
       $this->Auth->allow('index','view');
    }
   


_________________
No pain, no gain.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
evilbloodydemon

цитировать



Зарегистрирован: 11 Окт 2007 20:32:19
Сообщения: 125

СообщениеДобавлено: 01 Дек 2009 10:45:32    Заголовок сообщения: Ответить с цитатой

если модель называется Member, то наверное же и MembersController должен быть создан и login в нём.

$this->Auth->userModel = 'Member'

это не "загружаю модель", а "указываю какой связкой контроллер+модель обрабатывать логин пользователей".
_________________
поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Serginho

цитировать



Зарегистрирован: 27 Ноя 2009 17:19:14
Сообщения: 26

СообщениеДобавлено: 01 Дек 2009 12:24:07    Заголовок сообщения: Ответить с цитатой

Т.е. в моём случае одним контроллером не обойтись, я правильно понял?
_________________
No pain, no gain.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 01 Дек 2009 13:51:52    Заголовок сообщения: Ответить с цитатой

Непонятно, чем плохо хранить в USer пароли?
сделал их sha1
и в выборках- не связанных с авторизацией, выгребать не SELECT *
а только нужные поля, это и скорость. и безопасность.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Serginho

цитировать



Зарегистрирован: 27 Ноя 2009 17:19:14
Сообщения: 26

СообщениеДобавлено: 01 Дек 2009 15:07:26    Заголовок сообщения: Ответить с цитатой

Ну я собственно так и сделал, просто думал, что это не рациональное решение.

Я просто добавил в таблицу два поля и оттуда выбираю.
_________________
No pain, no gain.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
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