フロントエンドメンバーエリア

メンバー専用のサイトを作成していますが、すべてのテンプレートをラップする必要があります

{if logged_in} template {/if}
{if logged_out} {redirect='login'} {/if}

より良い、より柔軟な方法がありますか?私は複数のメンバーグループを持っているでしょう、私はレイアウトを使用しています、それはレイアウトタグの周りに "if"ステートメントを実行するたびに私のifステートメントがラッパーテンプレートになければならないことを意味します。

0
nl ru de

1 答え

私はあなたの実際のセットアップが何であるか分かりませんが、一般的に、コントロール機能と一貫性のために埋め込みを利用するのがベストプラクティスです。次に例を示します:2つのテンプレートグループ、1つは embeds 、もう1つは pages です。

  1. Embeds
    1. index.html (unused)
    2. _header.html
    3. _footer.html
  2. Pages
    1. index.html
    2. random_template.html

pages テンプレートは、次のようになります。

{embed="embeds/_header"}

    Whatever you want in here, cochise.

{embed="embeds/_footer"}

_header.html テンプレートは次のようになります。

{if logged_out && segment_1 != "login"}
    {if segment_1 == "account" && segment_2 == "password"}

        <!-- don't redirect, we're on a password reset request page -->

    {if:elseif segment_1 == "account" && segment_2 == "reset_password"}

        <!-- don't redirect, we're on a the actual page were you set a new password -->

    {if:else}

        <!-- not logged in and not trying to reset password -->
        {redirect="login"}
    {/if}
{/if}
<!DOCTYPE HTML>

    <head>
    <!-- and so on -->

この例では、ログインしていないユーザーは強制的にログインページに入り、ヘッダーを埋め込んだすべてのページで自動的に処理されます。私は本当にレイアウトに精通していないので、これは完全に適用されない可能性があります。また、この例は、登録が閉じられ、ユーザーが管理者によって手動で登録されているアプリケーションでも機能します。登録ページを許可するためにいくつかの追加条件文を追加することができます。

3
追加された
私は、動物園訪問者を使用して多少関連する問題を解決しました。基本的に各メンバーに直接関連付けられたチャンネルエントリを持つことができます。その後、許可フラグとして機能するカスタムフィールドをそのチャンネルに追加しました。通常のメンバーフィールドでネイティブに行うこともできます。
追加された 著者 Nazgob,
最後のコメントは私のフルタイムの開発者の仕事の解決策であったことに注意してください。私はいくつかのカスタムアドオンを書いて、チャンネルエントリ(厳密なアクセス制御を必要とする政府の仕事)へのアクセスを安全にロックダウンする必要がありました。このアプリは、基本的にロックされたドキュメントストレージシステムです。まっすぐなページへのアクセス許可の場合は、その必要はありませんが、セキュリティを常に慎重に確認してください。私は何とか助けてくれると願っています。
追加された 著者 Nazgob,
ありがとう、これは私が持っているものとほとんど同じです。それがいかに安全であるか、またはそれが最良の方法であるかどうかはわかりませんでした。私はメンバーを自分で登録していますが、テンプレートが2つの特定のメンバーグループにロックされていて、誰かがよく言うような、ユニークなシナリオを実行すると痛い複数のメンバーグループがあります。別のメンバグループ内のいくつかを選択して一時的にアクセスすることもできます。つまり、それらのメンバIDを一時的にそれらのテンプレートにハードコードする必要があります。テンプレートへのアクセスを制限するより柔軟な方法はありますか?
追加された 著者 Paŭlo Ebermann,