3

「登録済み」ユーザーの1人が注文すると、「顧客」と呼ばれる別のユーザーグループに正常に追加するプラグインがあります。これは、を使用するものの流れの中で非常にうまく機能しJUserHelper::addUserToGroup()ます。

問題は、ユーザーレコードが正しく更新されていても、既にログインしているため、必要なACLを取得するために、ログアウトしてから再度ログインする必要があることです。

私はすべてのjUserコードとドキュメントを調べましたが、によって生成された現在ログインしているユーザーを変更する方法を見つけることができません$user =& JFactory::getUser();

答えは私よりもJoomlaMVCをよく理解している人には明らかかもしれないと思いますが、これを達成する方法を見つけようとして、私が読んだすべてのコードに頭を悩ませています。

アップデート:

以下のLodderの回答は技術的には機能しますが、「ユーザーグループ」は実際に更新されていますが、AuthGroupsとAuthLevelsは更新されていません。私のコードが実行された後、$ userオブジェクトはそこにあるグループを表示しますが、オブジェクトのさらに下に表示されます。

        [_authGroups:protected] => Array
            (
                [0] => 1
                [1] => 2
            )

        [_authLevels:protected] => Array
            (
                [0] => 1
                [1] => 1
                [2] => 2
            )

現在のセッションではすべて保護されているため、これを変更する方法はないようです。更新されるのはuser.php at$identities = $this->getAuthorisedGroups();だけで、最初に遭遇したときにのみ実行されます。

4

1 に答える 1

0

私はこれを見つけましたが、それがあなたの状況で機能するかどうかは100%わかりません。試してみてください:

$user = JFactory::getUser();
if ($user->id == $user['id']){
   $session = JFactory::getSession();
   $session->set('user', new JUser($user->id));
}

数人で働くことが知られています。

それが機能するかどうかを教えてください。機能しない場合は、他に何が見つかるかを確認します。

于 2012-11-16T15:52:28.230 に答える