1

opencart 用のモジュール/プラグインを作成しています。ユーザー グループのアクセス許可を自動作成するとよいでしょう。

モジュールがインストールされたら、ユーザーはユーザー権限制御に入り、手動で権限を追加する必要があります。それは不必要なステップです。ジャンプするのはとてもいいことです。

私は現在 VqMod を使用していくつかの変更 (管理メニューに追加の項目を追加するなど) を行っているため、許可制御クラスの無視ルート リストにルートを追加することは可能ですが、これは良い方法ではないと思います。オプションであり、可能であればアクセス許可を挿入することを好みます。

コンストラクターで user_group モデルを使用してアクセス許可を追加しようとしましたが、それをコンストラクターに追加してもうまくいきませんでした。クラスはおそらく許可前にインスタンス化されていません。

$this->load->model('user/user_group');

$this->model_user_user_group->addPermission($this->user->getId(), 'access', 'test/import');
$this->model_user_user_group->addPermission($this->user->getId(), 'modify', 'test/import');
4

3 に答える 3

1

通常、モジュールの概要内からモジュール/拡張機能をインストールするため、ADMIN -> 拡張機能 -> モジュールの下にあります。ここで、ユーザーは、モジュールをインストール/アンインストール/変更できるようにするためmodifyのアクセス許可を持っている必要があります。extension/modules

拡張機能のコントローラーにinstallメソッドがある場合、メソッド内から呼び出されますadmin/controller/extension/module.php::install()。とにかく、アクセス許可は前述の方法で既に追加されているため、手動で追加する必要はありません ( の 115 ~ 118 行を確認してくださいadmin/controller/extension/module.php)。

        $this->load->model('user/user_group');

        $this->model_user_user_group->addPermission($this->user->getId(), 'access', 'module/' . $this->request->get['extension']);
        $this->model_user_user_group->addPermission($this->user->getId(), 'modify', 'module/' . $this->request->get['extension']);

したがって、新しいモジュールが OC のモジュール内に配置され、通常の方法でインストールされる場合、アクションは必要ありません。そうでない場合(他の場所にあるので)、何かを見逃しているか、OCの標準に従っていないか、拡張機能/モジュールについて話していないと思います...

于 2013-05-30T15:32:59.850 に答える
1

このコードはinstall()、コントローラーのメソッドに配置する必要があります。EXTENSIONS > MODULESこれは、mod が管理者領域にインストールされたときに実行されます。これをコントローラーに追加するだけで動作するはずです(テストされていません)

protected function install() {
    $this->load->model('user/user_group');

    $this->model_user_user_group->addPermission($this->user->getId(), 'access', 'test/import');
    $this->model_user_user_group->addPermission($this->user->getId(), 'modify', 'test/import');
}
于 2013-05-29T15:56:55.487 に答える