2

Yii の権利拡張を使用していますが、次のエラーが発生します。

There must be at least one superuser!

superuserユーザー admin と demo でデフォルトの認証を使用しているため、これが何を意味するのかわかりません。権利拡張のドキュメントを読んだ後、次のもので権利を構成しようとしました。

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

しかし、うまくいきません。インターネットで検索しましたが、結果が得られませんでした。

4

7 に答える 7

7

ユーザーテーブルを、配列設定で名前が宣言されているテーブルAuthAssignmentに接続する必要があります

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

次に、テーブル user のフィールド id を参照するテーブル AuthAssignment userid フィールドを変更する必要があります。

于 2012-11-22T08:37:41.103 に答える
5

ここのようにユーザーと権限をインストールした場合は、データベースでこれを実行するだけです:

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;'); 

注:チュートリアルでは、権利モジュールのテーブル名はすべて小文字です。

于 2015-04-25T06:58:05.293 に答える
2

命名は少し誤解を招くものです。私もその問題に出くわしました。

superuserNamesuperuserRoleつまり、そこで指定された役割に割り当てられているすべてのユーザーがスーパーユーザーです。

Yii::app()->user->checkAccess('whatever')常にスーパーユーザーreturn true向けであることに注意してください。

RAuthorizer.phpも参照してください。

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

およびRWebUser.php

于 2012-11-21T15:30:45.093 に答える
1

FWIW(非常に長い間)、ユーザーの1人にスーパーユーザーの役割を付与する必要があります。

そのロール名はsuperuserName、投稿に示されているように、構成ファイルのプロパティに示されています。これは、テーブルを更新することにより、SQLを介して直接実行できauthAssignmentます(名前は場合によって異なる場合があり、構成可能です)。

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

次に、適切なユーザー(この特定の場合はID#1に対応するユーザー)としてログインします。

于 2012-10-03T19:24:16.500 に答える
1

小さなハックがあります。それを機能させるにはコメントアウトする必要がある行です...

公式拡張ページのコメントを確認する

編集: 自己宣伝のように見えるので、自分のブログへのリンクを投稿したくありませんでしたが、それはあなたの問題に対する非常に包括的な解決策だと思います: yii-rights 拡張機能のインストール

于 2012-07-03T02:58:31.260 に答える
0

yii-forums の投稿に従ってインストールすることができました - ここに私の投稿へのパーマリンクがあります: http://www.yiiframework.com/forum/index.php/topic/10556-extension-rights/page__view__findpost__p__229721

于 2013-11-26T14:52:59.077 に答える
0

デフォルトの認証ではなく、mysqlデータベースとテーブルユーザーを使用する必要があると思います-これは認証の単なる例です-。ユーザー テーブルをインポートした後、ユーザー テーブルに「admin」というユーザー名を持つユーザーを追加する必要があります。

于 2011-12-15T06:50:35.343 に答える