| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		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.
 
 
Что я сделал не так?! Уже сутки голову ломаю...Все мануалы скурил   _________________ 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. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
	
	
	
		 |