2013-08-26 8 views
-1

Я следил за http://www.larryullman.com/2010/01/04/simple-authentication-with-the-yii-framework/ для создания системы входа в систему с использованием базы данных.
, но после входа в систему и попытке доступа к страницам администратора я получил Ошибка 403 У вас нет прав для выполнения этого действия в yii framework

Error 403 You are not authorized to perform this action

любая идея, почему, как решить эту проблему?
см мое правило доступа
public function accessRules() 
{ 
    return array(
    array('allow', // allow all users to perform 'index' and 'view' actions 
     'actions'=>array('index','view'), 
     'users'=>array(''), 
    ), 
    array('allow', // allow authenticated user to perform 'create' and 'update' actions 
     'actions'=>array(), 
     'users'=>array('@'), 
    ), 
    array('allow', // allow admin user to perform 'admin' and 'delete' actions 
     'actions'=>array('admin','delete','create','update'), // 
     'users'=>array('admin'), 
     'expression'=>'isset($user->role) && ($user->role==="admin")', 
    ), 
    array('deny', // deny all users 
     'users'=>array(''), 
     ), 
    ); 
}

+0

Вам необходимо добавить разрешение (разрешения пользователя) в вашей модели. Проверьте руководство Yii. –

+0

У меня есть разрешение по умолчанию, которое поставляется с Model, мне нужно изменить это? – Shamsher

+0

Можете ли вы проверить, что есть на страницах администратора, к которым вы обращаетесь. Возможно, вам потребуется добавить accessRules для типа создаваемого вами пользователя. Также см. Мой ответ. Кроме того, публикация (добавление внизу вашего вопроса) поможет вам в этом. –

ответ

0

1- Убедитесь, что accessRules() позволило админ действие на & (подписан в), и он находится на вершине всех других правил, или хотя бы просто положить его СВЕРХУ ВСЕГО ПРАВИЛА. Не поймите меня неправильно, не обязательно всегда быть в курсе всех других правил, но последнее правило в книге - отрицать *, поэтому, если вы поместите свое правило администратора ниже, у вас не будет шанс получить доступ к администратору действий.

public function accessRules() 
     { 
       return array(
         array('allow', // allow all users to perform 'index' and 'view' actions 
         'actions'=>array('index','view', 'checkout'), 
         'users'=>array('*'), 
        ) 
       ); 
     } 

2- Если вы правильно обновляли accessRules(), вам нужно проверить, чтобы убедиться, что ваш аккаунт вы используете, чтобы войти в систему, является пользователь, который имеет доступ к админ страниц. Эта операция, очевидно, находится в управлении пользователями задач и назначена владельцу роли. Таким образом, пользователь должен быть владельцем проекта, который вы просматриваете в настоящее время. Перейдите в свою базу данных, чтобы убедиться в этом.

+0

см. Мое редактирование по правилам доступа – Shamsher

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