Что означает суперпользователь в расширении прав Yii? - PullRequest
2 голосов
/ 14 декабря 2011

Я использую расширение прав Yii и получаю эту ошибку:

There must be at least one superuser!

Я не знаю, что означает это superuser, так как я использую аутентификацию по умолчанию с администратором пользователя и демо.Прочитав документацию по расширению прав, я попытался настроить права следующим образом:

'rights'=>array(
    'superuserName'=>'admin',
    'install'=>true
),

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

Ответы [ 7 ]

7 голосов
/ 22 ноября 2012

вам необходимо связать пользовательскую таблицу с таблицей AuthAssignment, имя которой было объявлено в настройке массива

'modules'=>array(
'rights'=>array(
    'superuserName'=>'admin',
     ),
 ),

, затем вам нужно изменить поле идентификатора пользователя таблицы AuthAssignment, которое ссылается на идентификатор поля напользователь таблицы

4 голосов
/ 25 апреля 2015

Если вы установили пользователя и права, такие как здесь , просто запустите это в своей базе данных:

INSERT INTO `AuthAssignment` (`itemname`, `userid`, `bizrule`, `data`) VALUES ('Admin', '1', NULL, 'N');
INSERT INTO `AuthItem` (`name`, `type`, `description`, `bizrule`, `data`) VALUES ('Admin', 0, 'Admin', NULL, 'N;'); 

Примечание: В руководстве все имена таблицмодуль прав в нижнем регистре.

2 голосов
/ 21 ноября 2012

Название немного вводит в заблуждение, я тоже наткнулся на эту проблему.

superuserName должно иметь имя superuserRole, что означает, что все пользователи, которым назначена указанная роль, являются суперпользователями .

Обратите внимание, что Yii::app()->user->checkAccess('whatever') всегда будет return true для супер-пользователей .

См. Также RAuthorizer.php :

/**
* @property string the name of the superuser role.
*/
public $superuserName;

и RWebUser.php .

1 голос
/ 03 октября 2012

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

Это имя роли обозначается в свойстве superuserName в файле конфигурации, как показано на вашемсообщение.Это можно сделать напрямую через SQL, обновив таблицу authAssignment (ее имя может отличаться в вашем случае, это настраивается).

INSERT INTO `authassignment` (`itemname`, `userid`, `bizrule`, `data`) VALUES ('admin', '1', NULL, 'N;');

Затем войдите в систему как соответствующий пользователь (тот,соответствует id # 1, в данном конкретном случае).

1 голос
/ 03 июля 2012

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

проверить официальные комментарии на странице расширения

РЕДАКТИРОВАТЬ : я нехочу опубликовать ссылку на мой собственный блог , потому что это выглядит как самореклама, но это очень всеобъемлющее решение вашей проблемы, я думаю: установка расширения yii-rights

0 голосов
/ 26 ноября 2013

Мне удалось установить его, следуя сообщению на форумах yii - постоянная ссылка на мой пост: http://www.yiiframework.com/forum/index.php/topic/10556-extension-rights/page__view__findpost__p__229721

0 голосов
/ 15 декабря 2011

Я думаю, что вы должны использовать базу данных mysql и таблицу user, а не аутентификацию по умолчанию - это всего лишь пример аутентификации.после импорта таблицы пользователей вы должны добавить пользователя с именем пользователя «admin» - если у вас есть «admin» в конфигурации superuserName - в таблице пользователей.

...