10

スタッフがサイトの独自のセクションを持つサイトを構築しています: example.com/jones、example.com/smith など。jones と smith は、内部に同じテンプレートを持つテンプレート グループです (Stash と Low 変数を使用して保持します)。それはすべて乾燥しています)。一部のユーザーは、プライバシーに対してさまざまなニーズを持っています。一方では、そのセクションは公開されます。一方、一部のユーザーは、自分のコンテンツにアクセスできるユーザーを管理する必要があります (Solspace フレンドを使用)。

ただし、その範囲の中間には、ランダムな人が自分のコンテンツを閲覧するのを防ぎたいだけの人もいます. これを管理するためにメンバー/メンバー グループを使用したくありません。訪問者がコンテンツを見るために登録する必要はありません。共有メンバー アカウントはオプションですが、他の問題 (パスワードがリセットされた場合、同じアカウントにコメントが残されている場合など) のために除外しました。

私たちが望むのは、テンプレート グループをパスワードで保護することです。スタッフは、自分のページをどこで見ることができるかを人々に知らせ、ユーザーにパスワードを知らせることができます。これはすべてサーバー レベルで可能ですが、ユーザーがパスワードを直接管理できるようにすることは可能ですか? これを管理するために必要な作業を最小限に抑えるためにできることは何でも良いです。この種のセキュリティを可能にするカスタム フィールドとアドオンはありますか? 私はDevot-eeで何も見ませんでしたし、フォーラムのメソッドはこれを行いません. ちょっと大袈裟ですが、聞いてみようと思いました。

4

4 に答える 4

11

実際のメンバー アカウントに縛られたくないとおっしゃっていたので、カスタム フィールドを使用して編集可能なパスワードを保存することに問題はありませんでした...

私は最近、カスタム フィールドを使用してエントリのグループを保護する同様のことを行いました。これは、この記事「パスワードで保護されたコンテンツをシンプルに」で概説されているアプローチに似ています。しかし、テンプレートで PHP を使用する代わりに、Mo' Variablesを使用しました。また、url_title を使用する代わりに、カスタム フィールド (以下では client_password と呼ばれます) を使用しました。

さらに、セッション変数プラグインを使用して、その後のページの読み込み時にユーザーがすでに「ログイン」しているかどうかを確認し、パスワードを何度も入力する必要がないようにしました。

{!-- PASSWORD REQUIRED --}
{if client_password != ""}

    {!-- if passed show content and set session --}
    {if post:password == client_password}

        {!-- protected content here --}
        {!-- set session --}
        {embed='embeds/_set_session' entry_id="{entry_id}"}

    {!-- if session is valid show content --}
    {if:elseif "{exp:session_variables:get name='logged_in'}" == "{entry_id}"}

        {!-- protected content here --}

    {!-- if failed show login --}   
    {if:elseif post:password != "" AND post:password != client_password}

        <div id="protected">
            <p>Incorrect password. Please try again.</p>
            <br>
            <form action="" method="post">
                <strong>Password</strong><br />
                <div>
                    <input name="password">
                </div>
                <input type="submit" class="submit" value="submit">
            </form>             
        </div>

    {!-- if first attempt show login and prompt --}
    {if:else}

        <div id="protected">
            <p>This page is password protected. Please provide the password.</p>
            <br>
            <form action="" method="post">
                <strong>Password</strong><br />
                <div>
                    <input name="password">
                </div>
                <input type="submit" class="submit" value="submit">
            </form>             
        </div>

    {/if}

{!-- NO PASSWORD REQUIRED --}
{if:else}

    {!-- protected content here --}

{/if}
于 2012-10-24T18:13:13.110 に答える
5

テンプレートグループで保護するためにhtaccessとhtpasswdを機能させるために使用しているコードでこれを更新したかったのです。Alexと同じように使用できますが、オールオアナッシングのアプローチです。独自の長所と短所がありますが、オプションとして共有したいと考えていました。

まず、ネイティブテンプレートの動作(example.com/group/template/url_title)を使用しています。一部のテンプレートグループをパスワードで保護したいのですが、EEのメンバーとメンバーグループの外にあります。つまり、単一のユーザーとパスワード。

私のhtaccessファイルは次のようになります(http://perishablepress.com/enable-file-or-directory-access-to-your-htaccess-password-protected-site/から):

# We set some variables, matching URL's for which we do not wish to active
# the password protection
SetEnvIf Request_URI "^/privategroup.*$" private

# Setup the password protection
AuthName "Password Needed"
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /Users/user/Sites/example/.htpasswd
Require valid-user

# Add the exceptions for matched URL's
Order Deny,Allow
Deny from env=private
Satisfy any

htpasswdファイルはwebrootの上にあるはずですが、テストのためにwebrootのままにしました。AuthUserFile行は、ユーザー名とパスワードを含むファイルの場所をApacheに指示します。これは...絶対パスである必要があります。親戚を使用していて、500エラーが発生しました。このファイルを作成するには、ターミナルまたはその他のツールを使用する必要があります。http://developer.apple.com/library/Mac/#documentation/Darwin/Reference/ManPages/man1/htpasswd.1.html

その結果、ディレクトリにはユーザー名とパスワードが必要になります。現在、htpasswdファイル内の有効なユーザーを受け入れます。ただし、特定のユーザー(ユーザーjohn tim lisaが必要)またはグループを指定することで、これを変更できます。

そこにあります。ネイティブEE機能を使用せずに、特定のテンプレートグループにユーザーを参加させないでください。

于 2012-10-26T18:17:05.487 に答える
0

I will be honest, I'm not sure if this fits your needs or not. It's not clicking that it will though, I've never tried it before and would need to actually give it a go to know for sure that it does or does not fit.

I will post it just the same as it may help you or someone else down the road:

http://koivi.com/ee-entry-auth-dir/

于 2012-10-24T17:51:05.047 に答える
0

Template Access Restrictionsの下にある HTTP Authentication オプションの使用について調べましたか? 認証にメンバー パスワードを使用しますが、メンバーが実際にログインする必要はありません。

「メンバー/メンバーグループを使って管理したくない」と言いながら、「パスワードをユーザーに直接管理させたい」…確かに組み込みのメンバーシステムを使用するのが最も簡単な方法です。 ?

于 2012-10-24T18:10:49.127 に答える