Форум программистов, компьютерный форум, киберфорум
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
4 / 4 / 6
Регистрация: 23.05.2012
Сообщений: 445
1

Как в Yii можно выполнить действие обратное Yii::app()->user->checkAccess('3')?

18.12.2014, 11:17. Показов 2230. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Руководствовался рецептом yiiframework.ru/doc/cookbook/ru/access.rbac.file . Только изменил ключи массива в auth.php га целочисленные индексы, но этот:

PHP
1
2
3
if(Yii::app()->user->checkAccess('3')){
    echo "hello, I'm administrator";
}
Не выходит . Хочется посмотреть что лежит в этом аксесе, помогите пожалуйста.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2014, 11:17
Ответы с готовыми решениями:

Почему в yii может быть пустым Yii::app()->request->urlReferrer?
Добрый день, Засунул в экшн контроллера (users/registration) такую конструкцию: if(!$role ||...

В папке с поддоменами найти yii, и выполнить команду php yii migrate
Приветствую, форумчане. Не могу разобраться требуется помощь исходные данные есть папка с...

Yii::app()->params
Нужны переменные уровня приложения. Использовать массив params неудобно. Кто-нибудь реализовывал...

Yii::app()->controller->id пуст
Доброго времени суток господа! Подскажите мне в чем дело. У меня Yii::app()->controller->id пуст, я...

7
PHP developer
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
21.12.2014, 01:25 2
Цитата Сообщение от EVOSandru6 Посмотреть сообщение
Не выходит . Хочется посмотреть что лежит в этом аксесе, помогите пожалуйста.
Ну в нем ничего не лежит, а вот возвращает true или false. Поэтому передавая какие то параметры, он должен вернуть true или false. Вот и все.
Первым параметром передавать надо экшен например createPost, а Вы передаете 3, что такое 3???
Посмотрите вот этот мануал http://yiiframework.ru/doc/guide/ru/topics.auth : Проверка доступа
1
6 / 6 / 2
Регистрация: 06.11.2011
Сообщений: 25
21.12.2014, 05:16 3
Зачем там экшен?

"3" - это очевидно в БД так обозначается админ в поле, которое хранит инфу о роли пользователя.

Соответственно, автор проверяет "если текущий юзер имеет права админа, то чего-то там выводим". Все норм.

Экшен был бы уместен, если бы автор хотел проверить разрешено ли текущему пользователю совершать действия, определенные в указанном экшене, автор же просто хочет вывести сообщение в зависимости от роли пользователя.

А помочь автору основываясь только на предоставленных данных весьма проблематично.
1
PHP developer
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
21.12.2014, 15:07 4
Цитата Сообщение от JeannieGold Посмотреть сообщение
Экшен был бы уместен, если бы автор хотел проверить разрешено ли текущему пользователю совершать действия, определенные в указанном экшене, автор же просто хочет вывести сообщение в зависимости от роли пользователя.
Можете показать что у Вас лежит в accessRules() ?

Добавлено через 4 минуты
Я вот увидел что там должно лежать примерно:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public function accessRules()
    {
        return array(
            array('deny',
                'actions'=>array('create', 'edit'),
                'users'=>array('?'),
            ),
            array('allow',
                'actions'=>array('delete'),
                'roles'=>array('admin'),
            ),
            array('deny',
                'actions'=>array('delete'),
                'users'=>array('*'),
            ),
        );
    }
Для проверки доступа нам необходимо знать имя элемента авторизации. К примеру, чтобы проверить, может ли текущий пользователь создать запись, необходимо узнать, имеет ли он права, описанные операцией createPost:
PHP
1
2
3
4
if(Yii::app()->user->checkAccess('createPost'))
{
    // создаём запись
}
Как видите тут не передается id-шник роли, а передается действие, можно это выполнить или нет.
Можно и доп параметры передать для доппроверки в этот checkAccess.
Прочитайте внимательнее то что я Вам дал.
0
6 / 6 / 2
Регистрация: 06.11.2011
Сообщений: 25
21.12.2014, 18:43 5
masik49, почитайте про RBAC и описание ролей в файле http://yiiframework.ru/doc/coo... .rbac.file
1
PHP developer
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
21.12.2014, 20:23 6
Лучший ответ Сообщение было отмечено EVOSandru6 как решение

Решение

Цитата Сообщение от JeannieGold Посмотреть сообщение
почитайте про RBAC и описание ролей в файле
Так, а что я там упустил? Тыкните меня на раздел, где возможна передача id-шника роли как у Вас в checkAccess первым параметром.
Цитата Сообщение от masik49 Посмотреть сообщение
Можете показать что у Вас лежит в accessRules() ?
Вы мануал дополнительно смотрели по этому методу?
http://www.yiiframework.com/do... ess-detail

checkAccess() method
public boolean checkAccess(string $operation, array $params=array ( ), boolean $allowCaching=true)

$operation - string - the name of the operation that need access check.

.......
etc....
И так далее. Первым параметром передается что? строка, а что должно быть в ней? Да да, название операции(экшен), которые должны проверку доступа.
Вторым параметром смотрите что и как.


Добавлено через 2 минуты
Все то что я Вам писал выше, но Вы пытаетесь сунуть id-шник роли, как Вы назвали.
1
4 / 4 / 6
Регистрация: 23.05.2012
Сообщений: 445
23.12.2014, 03:21  [ТС] 7
Всем Спасибо!
0
PHP developer
259 / 157 / 26
Регистрация: 20.03.2013
Сообщений: 1,018
23.12.2014, 08:12 8
Цитата Сообщение от EVOSandru6 Посмотреть сообщение
Всем Спасибо!
Не за что
0
23.12.2014, 08:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2014, 08:12
Помогаю со студенческими работами здесь

Как в yii выполнить findAll в модели, унаследованной от CActiveRecord?
Добрый день. Унаследовал ActiveRecord от CActiveRecord и в свою очередь все модели от...

Как в Yii используя ActiveRecord выполнить условие ИЛИ?
Добрый день, $user_model =...

Почему в Yii может не отрабатываться $app->run(); ?
Добрый вечер! У меня такая проблема, закинул на хостинг сайт ыышный, и первый раз столкнулся с...

Как выполнить AR Запрос в Yii на выборку записей по значению связанных данных?
Добрый день, Есть 2 таблицы: m_bids ------------ id mc_points ------------


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru