ログインフォームをアクセス拒否ページに追加するにはどうすればよいですか?


7

アクセス拒否ページにログインフォームを追加しようとしていますが、これはUIを介して可能かどうか疑問に思います。

提案/アイデアはありますか?


1
ログインブロックを404ページのコールバックに配置して、このモジュールdrupal.org/project/blocks404を使用するか、Drupal 7を使用している場合はこのモジュールを使用します。drupal.org / project / navigation404
Rupesh

これは、「アクセスが拒否されました」エラーではなく、「ページが見つかりません」エラー用です。
kiamlaluno

回答:


4

ここでの別のソリューションは、LoginTobogganモジュールです。ログイン機能に多くの異なる拡張機能を提供します。

logintobogganモジュールは、次の機能と使いやすさの向上を提供することにより、外部モジュールでdrupalログインシステムのいくつかの変更を提供します。

  1. ユーザーがユーザー名または電子メールアドレスを使用してログインできるようにします。
  2. ユーザーがすぐにログインできるようにします。
  3. ログインしていない(匿名)ユーザーのアクセス拒否ページにログインフォームを提供します。
  4. モジュールは2つのログインブロックオプションを提供します。1つはJavaScriptを使用して、[ログイン]をクリックするとすぐにブロック内のフォームを表示します。もう1つは、ユーザーを別のページに移動しますが、ログイン時にユーザーを元のページに戻します。
  5. 正確を期すために、2つの電子メールフィールドで登録フォームをカスタマイズします。
  6. 「即時ログイン」機能を使用する場合、オプションでユーザーを特定のページにリダイレクトします。
  7. オプションで、電子メールアドレスの検証時にユーザーを特定のページにリダイレクトします。
  8. 必要に応じて、ログインの成功を示すユーザーメッセージを表示します。
  9. オプションで、ログインフォームと登録フォームの両方を1つのページに結合します。
  10. オプションで、事前定義された間隔で未検証のユーザーをシステムから削除します(この機能の構成に関する重要な情報については、install.txtの警告セクションをお読みください)。
  11. ルールモジュールと統合して、ユーザーが電子メール検証プロセスで検証するときにさまざまなタスクを実行します(例については、http://drupal.org/node/880904を参照してください )

設定構成フォームには、「アクセス時にログインフォームを表示する」というオプション(403)があり、この機能を正確にオン/オフに切り替えます。


LoginTobogganモジュールは、403ページを含める必要があるチャームのように機能しましたが、ありがとうございます。
jelly46 2015

10

オプション1:CustomErrorモジュールを使用する

CustomErrorのモジュールは、サイト管理者は、HTTPステータスコード403(アクセスが拒否された)と404のカスタムエラーページを作成することができ、それらのそれぞれのノードを作成することなく、(見られません)。機能に関する詳細(プロジェクトページから):

  • 構成可能なページのタイトルと説明。
  • 通常のノードのように、作者と日付/時刻ヘッダーはありません。
  • HTML形式のテキストはページの本文に配置できます。
  • エラーページはtheableです。
  • ログインしていないユーザーがログインが必要な領域にアクセスしようとすると、ログイン後にアクセスしようとしていたページにリダイレクトされます。
  • 404のカスタムリダイレクトを許可します。

ログインしていないユーザーがログインを必要とする領域にアクセスしようとすると、ログイン後にアクセスしようとしたページにリダイレクトされます。」に関する部分に関心があるはずです。

オプション2:ルールモジュールを使用してユーザー/ログインにリダイレクトする

「「アクセス拒否ページ」の設定を追加し、そのページに「ユーザーログイン」ブロックを表示することは、実際に機能するソリューションです。ただし、これをもう少し進めて、ユーザーエクスペリエンスをAbitMOREで強化することもできます。「ルールモジュールを使用して匿名ユーザーをログインページにリダイレクトする方法」に関する質問への回答で説明されているアプローチのバリエーションを使用する。

これを行うには、「Default 403」ページのパスが「no_access」に設定されていると想定します(/admin/config/system/site-information管理ページの下部にあるを介して)。次に、Rulesモジュールを使用して、「ノード「no_access」にアクセスした後」のようなイベントを含むルールを作成します。したがって、ルール全体は次のようになります。

  • イベント:ノード「no_access」にアクセスした後
  • 条件:

    1. ユーザーには役割があります -Parameter: User: [site:current-user], Roles: anonymous user
    2. NOTテキスト比較 -Parameter: Text: [site:current-page:url], Matching text: user/login
  • アクション: ページのリダイレクト -Parameter: URL: user/login

そうする必要がある場合は、「ログインが必要なページにアクセスしようとしました...」のような(情報)メッセージをDrupalメッセージ領域に表示する別のアクションを追加することもできます。

確かに、追加の貢献モジュール(ルール)を有効にする必要があるかもしれません。ただし、その人気の高まりからもわかるように、このモジュールには数十のユースケースがあるため、そのモジュールはおそらく(Viewsモジュールと同様に)ほとんどのサイトですでに有効になっています。この質問の1つのバリエーション:「ページが見つかりません」のユーザーエクスペリエンスを同様の方法で強化してみませんか?

オプション3:専用ページにユーザーログインブロックを表示する

ルール「アクション」(にリダイレクトするuser/login)の代替としての別のバリエーションは、「my_login_page_with_login_block」のようなパスを使用して、指定されたノードを作成することです。次に、これを「」を介して「ユーザーログイン」ブロックを次のように構成することと組み合わせますadmin/structure/block

  • 選択したテーマ領域にそのブロックを表示します。
  • configureそのユーザーログインブロックの右側にある「」リンクを使用して、「ページ」の「表示設定」を設定します。つまり、「特定のページにブロックを表示」のオプションを「リストされたページのみ」に変更し、その下のテキストボックス内にパス()を指定します。何らかの理由でパスを使用したくない場合は、代わりにパスとしてnode / nid(nid =ノードのID)を指定します。my_login_page_with_login_block

こんにちはピエール、これは大きな助けです。私はこれを試して、私がどのように乗り込んだかをお知らせします。ありがとう
jelly46

1
フィードバックをありがとう...うまくいけば、いつかそれについてのフィードバックを「取り戻す」ことを忘れないでください(試した後)。「後で思い出させる」(戻って来る)などの問題はありません。たとえば、「Rules Scheduler」や「Flag」などを使用して実装します(Drupalの場合と同じです)。 ..自分への注意: "ArrayShift"ディストリビューションにそのような機能を追加する...
Pierre.Vriens 2015

まあ、それは私の知識を広げましたが、まだ質問には答えていません、それは大きな助けですが、それでも約束の地に到達していません。
jelly46

LoginTobogganモジュールは魅力のように機能しました
jelly46

1
もちろん問題はありません。それをDrupalの柔軟性とみなし、誰にとっても適切なものを個別に選択できるようにしましょう!
Pierre.Vriens 2015

5

サイト構成(admin / config / system / site-information)に「デフォルト403(アクセス拒否)ページ」の設定を追加できます。次に、このページに「ユーザーログイン」ブロック(admin / structure / block / manage / user / login / configure)を表示します。


3

LoginTobogganモジュールがなければ、指定されたページに表示され、匿名ユーザーに制限されるようにユーザーログインブロックを構成できます。User loginブロックのVisibility settingsブロックで:

  1. 「ページ」タブで、「特定のページにブロックを表示」を「リストされたページのみ」に設定し、ページを入力します。

  2. [ロール]タブで、特定のロール設定の[ブロックを表示]の[匿名ユーザー]をオンにします。


2

理論的には、[サイト情報]の[デフォルト403(アクセス拒否)]ページを/ admin / config / system / site-informationのuser / loginに設定できます。

試したことはありませんが、それは単なるアイデアですか?


1
悪いアイデア。アクセスが拒否されたログインユーザーは、ブラウザのクラッシュを引き起こす無限のリダイレクトループに終わります。
Giles B
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.