Mật khẩu bảo vệ


7

những ngày này tôi đã triển khai một ví dụ magento, nhưng webshop chưa trực tuyến, vì vậy tôi đã thêm một .htaccessbảo vệ mật khẩu cho trang web thực sự hoạt động tốt, nhưng gây ra sự cố khi khách hàng của tôi muốn tải lên hình ảnh cho các sản phẩm của mình.

Có cách nào để mật khẩu bảo vệ toàn bộ cửa hàng cho mục đích phát triển, sử dụng chính khả năng của magento, để người dùng đã đăng nhập có toàn quyền truy cập vào trang, nhưng không công khai?

Tôi đã xem qua mô-đun này , nhưng rất tiếc là nó không tương thích với magento 1.8 hoặc tôi không biết cách cài đặt nó.

Cảm ơn vì sự giúp đỡ!


Bạn đã quản lý để giải quyết vấn đề của bạn?
Sander Mangel

Câu trả lời của bạn có vẻ rất tốt, tôi sẽ thử nhanh nhất có thể, nhưng ngay bây giờ tôi không may làm phiền với điều gì khác, nhưng tôi sẽ cho bạn biết sớm nhất có thể!
philipp

Một cách giải quyết để làm cho tải lên flash hoạt động mà không cần xác thực có thể được tìm thấy ở đây: stackoverflow.com/questions/9675004/ mẹo (Cảnh báo: điều này không an toàn vì nó không ngăn chặn truy cập vào trang web, chỉ khiến việc truy cập nó trở nên phức tạp. quan tâm)
Fabian Schmengler 04/03/2015

Câu trả lời:


3

Bạn có thể viết một tiện ích mở rộng tùy chỉnh nhỏ để kiểm tra xem người dùng có quyền truy cập trang web hay không.

Bạn config.xmlsẽ trông giống như thế này

<?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>

Và lớp người quan sát của bạn một cái gì đó như thế này

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!');
      }
   }
}

Cái này có hoạt động không, @sander? Tôi đã có kết quả khác nhau khi cố gắng bắt đầu phiên adminhtml và sau đó khôi phục lại phiên khởi đầu ...
philwinkle

Tôi có một cái gì đó như thế này làm việc trên một cửa hàng 1.5. Tôi đang thử nghiệm ngay bây giờ vào ngày 1.8 :)
Sander Mangel

1
Tôi đã cập nhật mã, mã này đã được thử nghiệm trên Magento 1.8.0.0
Sander Mangel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.