web-dev-qa-db-ja.com

このサイトのプライベートセクションにアクセスできません

2.5(当時の最新バージョン)からアップグレードされたJoomla 3.3.3サイトで、ユーザーのログインに関して問題が発生しています。一部のユーザーは、登録後、ログインできず、次の警告を受け取ると報告していますメッセージ:

You cannot access the private section of this site.

奇妙なことに、これはアップグレード後にログインしようとしている人に対してのみ発生します。

アップグレード前は、ユーザー管理としてCommunity Builderを使用していたため、登録、ログインなどを処理していました。これをAkeeba Subsとともに削除したので、持っているかもしれないこの問題に関係があるのはKunena 3.0.6でした。

Web上の多くのフォーラム投稿を確認した後、私は次のことを試しました。

  1. Joomlaバックエンドを介してカテゴリマネージャでカテゴリを再構築します
  2. それを保証するRoot Asset の中に #__assetsテーブルにはparent_idは0で、他の行には同じparent_id
  3. @Elinの AssetFix スクリプトを使用する
  4. すべてのゴミ箱の記事とカテゴリを削除し、グローバルチェックインを実行する

私の人生にとって、なぜこれが起こっているのか理解できません。

誰かが以前にこの問題を抱えていたり、Joomla 3.3の実用的な解決策を知っていたりしますか?

4
Lodder

最後に問題が何であるかを発見しました。

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`);
5
Lodder