パスワード保護


7

最近、magentoインスタンスをデプロイしましたが、ウェブショップはまだオンラインではないため.htaccess、ウェブサイトにパスワード保護を追加しましたが、実際には問題なく機能しましたが、クライアントが彼の製品の画像をアップロードするときに問題が発生しました。

ログインしたユーザーがページにフルアクセスできるが、パブリックにはアクセスできないように、magento機能自体を使用して、開発目的でストア全体をパスワードで保護する方法はありますか?

私はこのモジュールを見つけましたが、残念ながらmagento 1.8と互換性がないか、インストール方法がわかりません。

手伝ってくれてありがとう!


問題を解決することができましたか?
サンダーマンゲル

あなたの答えはとてもよさそうです。できるだけ早くお試ししますが、今は残念ながら他のことに迷惑をかけていますが、できるだけ早くお知らせします!
フィリップ2014

認証なしのフラッシュのアップロード作業を行うための回避策はここで見つけることができます:stackoverflow.com/questions/9675004/...(警告:これは、サイトへのアクセスを防ぐことはできませんので、これは安全でないですが、ちょうどそれが複雑にアクセス可能だから、使用してケア)
Fabian Schmengler 2015年

回答:


3

ユーザーがサイトにアクセスする権限を持っているかどうかをチェックする小さなカスタム拡張機能を作成できます。

あなたconfig.xmlはこのようなものになるでしょう

<?xml version="1.0"?>
<config>
   <modules>
      <[Namespace]_[Module]>
         <version>1.0.0</version>
      </[Namespace]_[Module]>
   </modules>
   <global>
      <models>
         <[module]>
            <class>[Namespace]_[Module]_Model</class>
         </[module]>
      </models>
      <events>
         <controller_front_init_before>
            <observers>
               <[namespace]_[module]_access_observer>
                  <type>singleton</type>
                  <class>[Namespace]_[Module]_Model_Observer</class>
                  <method>checkAccess</method>
               </[namespace]_[module]_access_observer>
            </observers>
         </controller_front_init_before>
      </events>
   </global>
</config>

そしてあなたのオブザーバークラスはこのようなものです

class [Namespace]_[Module]_Model_Observer
{
   public function checkAccess()
   {
      $adminurl = (string)Mage::getConfig()->getNode('admin/routers/adminhtml/args/frontName');

      $urlstring = Mage::helper('core/url')->getCurrentUrl();
      $url = Mage::getSingleton('core/url')->parseUrl($urlstring);

      if (strstr($url->path, "/{$adminurl}"))   return $this; // this is the admin section

      // get admin session
      Mage::getSingleton('core/session', array('name' => 'adminhtml'))->start();

      $admin_logged_in = Mage::getSingleton('admin/session', array('name' => 'adminhtml'))->isLoggedIn();

      // return to frontend section
      Mage::getSingleton('core/session', array('name' => 'frontend'))->start();

      if (!$admin_logged_in)
      {
         die('No access!');
      }
   }
}

これは機能しますか、@ sander?adminhtmlセッションを開始し、それをオリジネーションセッションに復元しようとすると、さまざまな結果が発生しました...
philwinkle

1.5のストアでこのような作業をしています。私は現在1.8でテストしています:)
Sander Mangel

1
コードを更新しました。これはMagento 1.8.0.0でテストされています
Sander Mangel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.