2010-01-15 3 views
1

я использую аутентификацию componnet в моем CakePHP проектеКак улучшить компонент cakephp auth для использования типа пользователя?

добавить поле типа в пользователь MySql таблице

что перечисление: администратор, клиент

мне нужен аутентификация компонент для перенаправления админа на CP страницу, и клиент на страницу своего профиля и только могут иметь доступ к conttroller ..

конечно, не используя ACL или любые другие связанные

ответ

1

Я рекомендовал бы, воспользовавшись isAuthoriz ed(), которую вы можете добавить в контроллер или модель. Установите AuthComponent :: authorize = {'controller' | 'model'}, чтобы выбрать, который вы хотите использовать.

Затем вы пишете функцию isAuthorized() в контроллере model |, которая возвращает t/f на auth/not auth для каждого действия. Вы можете сделать некоторую проверку на уровне строк, если хотите.

Теперь, если вместо этого вы просто хотите перенаправить администратора на свои правильные страницы при входе/etc, вы можете добавить код к методу beforeFilter() (либо в определенном контроллере, либо в app_controller.php). В этом случае просто проверьте, соответствует ли значение администратора, установленное приложением, как административное значение пользователя (которое будет храниться AuthComponent в данных сеанса, доступное через $ this-> Auth-> User()). Затем соответствующим образом пройдите в области admin/non admin.

0

isAuthorized() - лучший выбор. Я бы рекомендовал отделить пользователей от своих групп в базе данных, поэтому User habtm Group ... но это не проблема, если пользователь принадлежит к одной и только одной группе. . Я не рекомендую ACL для не-записи система разрешений

+0

да, мне нужно только простую только авторизацию. Спасибо....... – assaqqaf

0

Только что обратить внимание, но если что-то не изменилось недавно, CakePHP не поддерживает типы столбцов ENUM.

Ваш лучший выбор - групповая модель (группы mysql table) и поле group_id в таблице users. Тогда вы можете $ hasOne = array ('Group'); в вашей модели пользователя.

Оттуда вы можете следовать любой из огромного числа групповых обучающих программ управления доступом для Auth компонента с помощью простого поиска Google для «CakePHP Auth User Group»

Смежные вопросы