2.5(当時の最新バージョン)からアップグレードされたJoomla 3.3.3サイトで、ユーザーのログインに関して問題が発生しています。一部のユーザーは、登録後、ログインできず、次の警告を受け取ると報告していますメッセージ:
You cannot access the private section of this site.
奇妙なことに、これはアップグレード後にログインしようとしている人に対してのみ発生します。
アップグレード前は、ユーザー管理としてCommunity Builderを使用していたため、登録、ログインなどを処理していました。これをAkeeba Subsとともに削除したので、持っているかもしれないこの問題に関係があるのはKunena 3.0.6でした。
Web上の多くのフォーラム投稿を確認した後、私は次のことを試しました。
Root Asset
の中に #__assets
テーブルにはparent_id
は0で、他の行には同じparent_id
私の人生にとって、なぜこれが起こっているのか理解できません。
誰かが以前にこの問題を抱えていたり、Joomla 3.3の実用的な解決策を知っていたりしますか?
最後に問題が何であるかを発見しました。
Joomla 2.5から3.3への移行時に、最新の登録者の多くが「Registered」ユーザーグループに割り当てられていないため、まったく許可がありませんでした。
PhpMyAdminで次のMySQLクエリを実行してしまいました。
SELECT `id` FROM `jos_users` WHERE `id` NOT IN (SELECT `user_id` FROM `jos_user_usergroup_map`)
users
テーブルからすべてのユーザーIDを取得しますではないはuser_usergroup_map
テーブルに属しています。
次に、結果をエクスポートし、テキストエディターでファイルを開いて変更しました。
INSERT INTO `jos_users` (`id`) VALUES
に
INSERT INTO `jos_user_usergroup_map` (`user_id`, `group_id`) VALUES
次に、すべての値(98), (99), (100),
などについて、大量の検索と置換を行いました。
),
これとともに
, 2)
これにより、このデータベーステーブルの2つの列に必要な2つの引数があることが保証されます。 2
は、「登録済み」ユーザーグループのデフォルトIDです。
ファイルの最後の行にはコンマではなくセミコロンが含まれているため、一括検索と置換ではこれに対応していません。そのため、これを手動で変更しただけです。
他の誰かが同じ問題を抱えている場合、私はもう少し役立つかもしれないいくつかのスクリーンショットを投稿させていただきます。
上記の回避策は1行で:
INSERT INTO `jos_user_usergroup_map` (`user_id`, `group_id`) SELECT `id`, '2' FROM `jos_users` WHERE `id` NOT IN (SELECT `user_id` FROM `jos_user_usergroup_map`);