0

locomotivecmsgithub )に簡単な機能を追加しようとしています。非常にシンプルな機能:現在、ユーザーは、別のページを編集しようとしても、ログイン後に「メイン管理ハブ」(/ admin /)にリダイレクトされます。代わりに、ログイン後にそのページに誘導されるようにします。

追加するのは非常に簡単で合理的なことのようですが、2日間試した後、助けを求めることにしました。

これは私がこれまでに見つけたものです。

  • このアプリはActiveRecordを使用していませんが、Mongoid(バックエンドデータベースはMongoDBです)
  • Locomotiveは、単純な「ユーザー」スキーマを使用しません。認証は、「アカウント」(メール、パスワード、名前など)と「サイト」(マルチサイトのCMS)の2つの部分に分かれています。「サイト」には多くの「メンバーシップ」があります。メンバーシップには、1つのsite_idとaccount_idがあります(また、ロールもありますが、これは重要ではないと思います)。
  • 機関車の「行動」のほとんどは、/admin/ルートの背後にあります。たとえば、ログインパスは/admin/log_inです。ほとんどのコントローラーも/admin/サブフォルダー内にあります。
  • ルートにログインした後にアクセスするURLを明らかに「修正」するこのビットを見つけました。/admin/sessions_controller/admin/

関連するビットは次のとおりです。

def after_sign_in_path_for(resource)
  admin_pages_url
end

代わりに、私が必要としているのはこれだとほぼ確信しています。

def after_sign_in_path_for(resource)
  stored_location_for(resource) || admin_pages_url
end

Deviseのドキュメントを正しく理解stored_location_forしている場合は、セッションで値を検索して(session['admin_return_to']Locomotiveの場合)、「誰かがどこかに戻りたいかどうかを確認します」。空の場合、|| 管理者ルートへの安全なパスを確保します。

残念ながら、これは機能しません。必要なセッション変数が設定されていないようです。Deviseがこの種のことを自動的に行ったと思いました。

セッション値を自分で設定する必要がありますか?もしそうなら、どこ?それとも私の仮定は間違っていますか?

どうもありがとう!

4

1 に答える 1

0

最善の解決策は、LocomotiveCMSの最新バージョンに更新することです。

于 2012-07-13T21:04:40.093 に答える