#!/bin/bash # Patch apllying tool template # v0.1.2 # (c) Copyright 2013. Magento Inc. # # DO NOT CHANGE ANY LINE IN THIS FILE. # 1. Check required system tools _check_installed_tools() { local missed="" until [ -z "$1" ]; do type -t $1 >/dev/null 2>/dev/null if (( $? != 0 )); then missed="$missed $1" fi shift done echo $missed } REQUIRED_UTILS='sed patch' MISSED_REQUIRED_TOOLS=`_check_installed_tools $REQUIRED_UTILS` if (( `echo $MISSED_REQUIRED_TOOLS | wc -w` > 0 )); then echo -e "Error! Some required system tools, that are utilized in this sh script, are not installed:\nTool(s) \"$MISSED_REQUIRED_TOOLS\" is(are) missed, please install it(them)." exit 1 fi # 2. Determine bin path for system tools CAT_BIN=`which cat` PATCH_BIN=`which patch` SED_BIN=`which sed` PWD_BIN=`which pwd` BASENAME_BIN=`which basename` BASE_NAME=`$BASENAME_BIN "$0"` # 3. Help menu if [ "$1" = "-?" -o "$1" = "-h" -o "$1" = "--help" ] then $CAT_BIN << EOFH Usage: sh $BASE_NAME [--help] [-R|--revert] [--list] Apply embedded patch. -R, --revert Revert previously applied embedded patch --list Show list of applied patches --help Show this help message EOFH exit 0 fi # 4. Get "revert" flag and "list applied patches" flag REVERT_FLAG= SHOW_APPLIED_LIST=0 if [ "$1" = "-R" -o "$1" = "--revert" ] then REVERT_FLAG=-R fi if [ "$1" = "--list" ] then SHOW_APPLIED_LIST=1 fi # 5. File pathes CURRENT_DIR=`$PWD_BIN`/ APP_ETC_DIR=`echo "$CURRENT_DIR""app/etc/"` APPLIED_PATCHES_LIST_FILE=`echo "$APP_ETC_DIR""applied.patches.list"` # 6. Show applied patches list if requested if [ "$SHOW_APPLIED_LIST" -eq 1 ] ; then echo -e "Applied/reverted patches list:" if [ -e "$APPLIED_PATCHES_LIST_FILE" ] then if [ ! -r "$APPLIED_PATCHES_LIST_FILE" ] then echo "ERROR: \"$APPLIED_PATCHES_LIST_FILE\" must be readable so applied patches list can be shown." exit 1 else $SED_BIN -n "/SUP-\|SUPEE-/p" $APPLIED_PATCHES_LIST_FILE fi else echo "" fi exit 0 fi # 7. Check applied patches track file and its directory _check_files() { if [ ! -e "$APP_ETC_DIR" ] then echo "ERROR: \"$APP_ETC_DIR\" must exist for proper tool work." exit 1 fi if [ ! -w "$APP_ETC_DIR" ] then echo "ERROR: \"$APP_ETC_DIR\" must be writeable for proper tool work." exit 1 fi if [ -e "$APPLIED_PATCHES_LIST_FILE" ] then if [ ! -w "$APPLIED_PATCHES_LIST_FILE" ] then echo "ERROR: \"$APPLIED_PATCHES_LIST_FILE\" must be writeable for proper tool work." exit 1 fi fi } _check_files # 8. Apply/revert patch # Note: there is no need to check files permissions for files to be patched. # "patch" tool will not modify any file if there is not enough permissions for all files to be modified. # Get start points for additional information and patch data SKIP_LINES=$((`$SED_BIN -n "/^__PATCHFILE_FOLLOWS__$/=" "$CURRENT_DIR""$BASE_NAME"` + 1)) ADDITIONAL_INFO_LINE=$(($SKIP_LINES - 3))p _apply_revert_patch() { DRY_RUN_FLAG= if [ "$1" = "dry-run" ] then DRY_RUN_FLAG=" --dry-run" echo "Checking if patch can be applied/reverted successfully..." fi PATCH_APPLY_REVERT_RESULT=`$SED_BIN -e '1,/^__PATCHFILE_FOLLOWS__$/d' "$CURRENT_DIR""$BASE_NAME" | $PATCH_BIN $DRY_RUN_FLAG $REVERT_FLAG -p0` PATCH_APPLY_REVERT_STATUS=$? if [ $PATCH_APPLY_REVERT_STATUS -eq 1 ] ; then echo -e "ERROR: Patch can't be applied/reverted successfully.\n\n$PATCH_APPLY_REVERT_RESULT" exit 1 fi if [ $PATCH_APPLY_REVERT_STATUS -eq 2 ] ; then echo -e "ERROR: Patch can't be applied/reverted successfully." exit 2 fi } REVERTED_PATCH_MARK= if [ -n "$REVERT_FLAG" ] then REVERTED_PATCH_MARK=" | REVERTED" fi _apply_revert_patch dry-run _apply_revert_patch # 9. Track patch applying result echo "Patch was applied/reverted successfully." ADDITIONAL_INFO=`$SED_BIN -n ""$ADDITIONAL_INFO_LINE"" "$CURRENT_DIR""$BASE_NAME"` APPLIED_REVERTED_ON_DATE=`date -u +"%F %T UTC"` APPLIED_REVERTED_PATCH_INFO=`echo -n "$APPLIED_REVERTED_ON_DATE"" | ""$ADDITIONAL_INFO""$REVERTED_PATCH_MARK"` echo -e "$APPLIED_REVERTED_PATCH_INFO\n$PATCH_APPLY_REVERT_RESULT\n\n" >> "$APPLIED_PATCHES_LIST_FILE" exit 0 SUPEE-6285 | CE_1.8.1.0 | v1 | b2fac29e26174150c655a15a6aae41634cb4420f | Tue Jun 23 08:57:53 2015 +0300 | 76d0bc3c0b..b2fac29e26 __PATCHFILE_FOLLOWS__ diff --git app/Mage.php app/Mage.php index e2efba4..d6cb9cd 100644 --- app/Mage.php +++ app/Mage.php @@ -814,12 +814,12 @@ final class Mage if (!is_dir($logDir)) { mkdir($logDir); - chmod($logDir, 0777); + chmod($logDir, 0750); } if (!file_exists($logFile)) { file_put_contents($logFile, ''); - chmod($logFile, 0777); + chmod($logFile, 0640); } $format = '%timestamp% %priorityName% (%priority%): %message%' . PHP_EOL; diff --git app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php index 73f1720..fd39eff 100644 --- app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php +++ app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php @@ -84,4 +84,14 @@ class Phoenix_Moneybookers_MoneybookersController extends Mage_Adminhtml_Control } $this->getResponse()->setBody($response); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('system/config/moneybookers'); + } } diff --git app/code/core/Mage/Adminhtml/Controller/Action.php app/code/core/Mage/Adminhtml/Controller/Action.php index 9c4067d..dcf87bc 100644 --- app/code/core/Mage/Adminhtml/Controller/Action.php +++ app/code/core/Mage/Adminhtml/Controller/Action.php @@ -71,7 +71,7 @@ class Mage_Adminhtml_Controller_Action extends Mage_Core_Controller_Varien_Actio protected function _isAllowed() { - return true; + return Mage::getSingleton('admin/session')->isAllowed('admin'); } /** diff --git app/code/core/Mage/Adminhtml/controllers/AjaxController.php app/code/core/Mage/Adminhtml/controllers/AjaxController.php index 2726224..205ebc9 100644 --- app/code/core/Mage/Adminhtml/controllers/AjaxController.php +++ app/code/core/Mage/Adminhtml/controllers/AjaxController.php @@ -52,4 +52,14 @@ class Mage_Adminhtml_AjaxController extends Mage_Adminhtml_Controller_Action echo Mage::helper('core/translate')->apply($translation, $area); exit(); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return true; + } } diff --git app/code/core/Mage/Adminhtml/controllers/Catalog/Category/WidgetController.php app/code/core/Mage/Adminhtml/controllers/Catalog/Category/WidgetController.php index 5ca1eef..4128546 100644 --- app/code/core/Mage/Adminhtml/controllers/Catalog/Category/WidgetController.php +++ app/code/core/Mage/Adminhtml/controllers/Catalog/Category/WidgetController.php @@ -69,4 +69,14 @@ class Mage_Adminhtml_Catalog_Category_WidgetController extends Mage_Adminhtml_Co 'use_massaction' => $this->getRequest()->getParam('use_massaction', false) )); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('cms/widget_instance'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/Catalog/Product/DatafeedsController.php app/code/core/Mage/Adminhtml/controllers/Catalog/Product/DatafeedsController.php index 4cd9c48..1fa33ba 100644 --- app/code/core/Mage/Adminhtml/controllers/Catalog/Product/DatafeedsController.php +++ app/code/core/Mage/Adminhtml/controllers/Catalog/Product/DatafeedsController.php @@ -32,4 +32,14 @@ class Mage_Adminhtml_Catalog_DatafeedsController extends Mage_Adminhtml_Controll { } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return true; + } } diff --git app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php index 9cbe01a..ebadcb6 100644 --- app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php +++ app/code/core/Mage/Adminhtml/controllers/Catalog/Product/ReviewController.php @@ -367,7 +367,8 @@ class Mage_Adminhtml_Catalog_Product_ReviewController extends Mage_Adminhtml_Con protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'pending': return Mage::getSingleton('admin/session')->isAllowed('catalog/reviews_ratings/reviews/pending'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Catalog/Product/WidgetController.php app/code/core/Mage/Adminhtml/controllers/Catalog/Product/WidgetController.php index f32e6b2..eddae50 100644 --- app/code/core/Mage/Adminhtml/controllers/Catalog/Product/WidgetController.php +++ app/code/core/Mage/Adminhtml/controllers/Catalog/Product/WidgetController.php @@ -67,4 +67,14 @@ class Mage_Adminhtml_Catalog_Product_WidgetController extends Mage_Adminhtml_Con $this->getResponse()->setBody($html); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('cms/widget_instance'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/Cms/Block/WidgetController.php app/code/core/Mage/Adminhtml/controllers/Cms/Block/WidgetController.php index a45d1da..762cac8 100644 --- app/code/core/Mage/Adminhtml/controllers/Cms/Block/WidgetController.php +++ app/code/core/Mage/Adminhtml/controllers/Cms/Block/WidgetController.php @@ -45,4 +45,14 @@ class Mage_Adminhtml_Cms_Block_WidgetController extends Mage_Adminhtml_Controlle )); $this->getResponse()->setBody($pagesGrid->toHtml()); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('cms/widget_instance'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/Cms/Page/WidgetController.php app/code/core/Mage/Adminhtml/controllers/Cms/Page/WidgetController.php index cad3d1e..f5d93f7 100644 --- app/code/core/Mage/Adminhtml/controllers/Cms/Page/WidgetController.php +++ app/code/core/Mage/Adminhtml/controllers/Cms/Page/WidgetController.php @@ -45,4 +45,15 @@ class Mage_Adminhtml_Cms_Page_WidgetController extends Mage_Adminhtml_Controller )); $this->getResponse()->setBody($pagesGrid->toHtml()); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('cms/widget_instance'); + } + } diff --git app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php index 74bff81..aaeb253 100644 --- app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php +++ app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php @@ -222,7 +222,8 @@ class Mage_Adminhtml_Cms_PageController extends Mage_Adminhtml_Controller_Action */ protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'new': case 'save': return Mage::getSingleton('admin/session')->isAllowed('cms/page/save'); diff --git app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php index b5be63f..5b91232 100644 --- app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php +++ app/code/core/Mage/Adminhtml/controllers/Cms/WysiwygController.php @@ -63,4 +63,14 @@ class Mage_Adminhtml_Cms_WysiwygController extends Mage_Adminhtml_Controller_Act */ } } + + /** + * Check the permission to run it + * + * @return boolean + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('cms'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/Customer/System/Config/ValidatevatController.php app/code/core/Mage/Adminhtml/controllers/Customer/System/Config/ValidatevatController.php index 4e0f2fe..fb6bb7e 100644 --- app/code/core/Mage/Adminhtml/controllers/Customer/System/Config/ValidatevatController.php +++ app/code/core/Mage/Adminhtml/controllers/Customer/System/Config/ValidatevatController.php @@ -88,4 +88,14 @@ class Mage_Adminhtml_Customer_System_Config_ValidatevatController extends Mage_A )); $this->getResponse()->setBody($body); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('system/config'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/JsonController.php app/code/core/Mage/Adminhtml/controllers/JsonController.php index 72908bb..67cf27c 100644 --- app/code/core/Mage/Adminhtml/controllers/JsonController.php +++ app/code/core/Mage/Adminhtml/controllers/JsonController.php @@ -56,4 +56,14 @@ class Mage_Adminhtml_JsonController extends Mage_Adminhtml_Controller_Action $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($arrRes)); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return true; + } } diff --git app/code/core/Mage/Adminhtml/controllers/NotificationController.php app/code/core/Mage/Adminhtml/controllers/NotificationController.php index 176cd68..74a909e 100644 --- app/code/core/Mage/Adminhtml/controllers/NotificationController.php +++ app/code/core/Mage/Adminhtml/controllers/NotificationController.php @@ -160,12 +160,13 @@ class Mage_Adminhtml_NotificationController extends Mage_Adminhtml_Controller_Ac protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { - case 'markAsRead': + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { + case 'markasread': $acl = 'system/adminnotification/mark_as_read'; break; - case 'massMarkAsRead': + case 'massmarkasread': $acl = 'system/adminnotification/mark_as_read'; break; @@ -173,7 +174,7 @@ class Mage_Adminhtml_NotificationController extends Mage_Adminhtml_Controller_Ac $acl = 'system/adminnotification/remove'; break; - case 'massRemove': + case 'massremove': $acl = 'system/adminnotification/remove'; break; diff --git app/code/core/Mage/Adminhtml/controllers/Report/CustomerController.php app/code/core/Mage/Adminhtml/controllers/Report/CustomerController.php index 7630484..6e889d2 100644 --- app/code/core/Mage/Adminhtml/controllers/Report/CustomerController.php +++ app/code/core/Mage/Adminhtml/controllers/Report/CustomerController.php @@ -161,7 +161,8 @@ class Mage_Adminhtml_Report_CustomerController extends Mage_Adminhtml_Controller protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'accounts': return Mage::getSingleton('admin/session')->isAllowed('report/customers/accounts'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Report/ProductController.php app/code/core/Mage/Adminhtml/controllers/Report/ProductController.php index 13bf03a..68849a8 100644 --- app/code/core/Mage/Adminhtml/controllers/Report/ProductController.php +++ app/code/core/Mage/Adminhtml/controllers/Report/ProductController.php @@ -267,7 +267,8 @@ class Mage_Adminhtml_Report_ProductController extends Mage_Adminhtml_Controller_ */ protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'viewed': return Mage::getSingleton('admin/session')->isAllowed('report/products/viewed'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Report/ReviewController.php app/code/core/Mage/Adminhtml/controllers/Report/ReviewController.php index 208243d..67042dd 100644 --- app/code/core/Mage/Adminhtml/controllers/Report/ReviewController.php +++ app/code/core/Mage/Adminhtml/controllers/Report/ReviewController.php @@ -160,7 +160,8 @@ class Mage_Adminhtml_Report_ReviewController extends Mage_Adminhtml_Controller_A protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'customer': return Mage::getSingleton('admin/session')->isAllowed('report/review/customer'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php index fa92865..e91c147 100644 --- app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php +++ app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php @@ -389,7 +389,8 @@ class Mage_Adminhtml_Report_SalesController extends Mage_Adminhtml_Controller_Re protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'sales': return $this->_getSession()->isAllowed('report/salesroot/sales'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Report/ShopcartController.php app/code/core/Mage/Adminhtml/controllers/Report/ShopcartController.php index 36ea2cc..96cf7a3 100644 --- app/code/core/Mage/Adminhtml/controllers/Report/ShopcartController.php +++ app/code/core/Mage/Adminhtml/controllers/Report/ShopcartController.php @@ -155,7 +155,8 @@ class Mage_Adminhtml_Report_ShopcartController extends Mage_Adminhtml_Controller protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'customer': return Mage::getSingleton('admin/session')->isAllowed('report/shopcart/customer'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Report/TagController.php app/code/core/Mage/Adminhtml/controllers/Report/TagController.php index 3cd935c..3a7def1 100644 --- app/code/core/Mage/Adminhtml/controllers/Report/TagController.php +++ app/code/core/Mage/Adminhtml/controllers/Report/TagController.php @@ -282,14 +282,15 @@ class Mage_Adminhtml_Report_TagController extends Mage_Adminhtml_Controller_Acti protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'customer': return Mage::getSingleton('admin/session')->isAllowed('report/tags/customer'); break; case 'product': return Mage::getSingleton('admin/session')->isAllowed('report/tags/product'); break; - case 'productAll': + case 'productall': return Mage::getSingleton('admin/session')->isAllowed('report/tags/product'); break; case 'popular': diff --git app/code/core/Mage/Adminhtml/controllers/ReportController.php app/code/core/Mage/Adminhtml/controllers/ReportController.php index 2a3147e..5c93633 100644 --- app/code/core/Mage/Adminhtml/controllers/ReportController.php +++ app/code/core/Mage/Adminhtml/controllers/ReportController.php @@ -131,7 +131,8 @@ class Mage_Adminhtml_ReportController extends Mage_Adminhtml_Controller_Action protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'search': return Mage::getSingleton('admin/session')->isAllowed('report/search'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Rss/CatalogController.php app/code/core/Mage/Adminhtml/controllers/Rss/CatalogController.php index 763bf58..a3a6709 100644 --- app/code/core/Mage/Adminhtml/controllers/Rss/CatalogController.php +++ app/code/core/Mage/Adminhtml/controllers/Rss/CatalogController.php @@ -34,17 +34,21 @@ class Mage_Adminhtml_Rss_CatalogController extends Mage_Adminhtml_Controller_Action { - public function preDispatch() + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() { $path = ''; - if ($this->getRequest()->getActionName() == 'review') { + $action = strtolower($this->getRequest()->getActionName()); + if ($action == 'review') { $path = 'catalog/reviews_ratings'; - } elseif ($this->getRequest()->getActionName() == 'notifystock') { + } elseif ($action == 'notifystock') { $path = 'catalog/products'; } - Mage::helper('adminhtml/rss')->authAdmin($path); - parent::preDispatch(); - return $this; + return Mage::getSingleton('admin/session')->isAllowed($path); } public function notifystockAction() diff --git app/code/core/Mage/Adminhtml/controllers/Rss/OrderController.php app/code/core/Mage/Adminhtml/controllers/Rss/OrderController.php index be43d8d..cdbc522 100644 --- app/code/core/Mage/Adminhtml/controllers/Rss/OrderController.php +++ app/code/core/Mage/Adminhtml/controllers/Rss/OrderController.php @@ -34,12 +34,6 @@ class Mage_Adminhtml_Rss_OrderController extends Mage_Adminhtml_Controller_Action { - public function preDispatch() - { - Mage::helper('adminhtml/rss')->authAdmin('catalog/reviews_ratings'); - parent::preDispatch(); - return $this; - } public function newAction() { @@ -48,4 +42,14 @@ class Mage_Adminhtml_Rss_OrderController extends Mage_Adminhtml_Controller_Actio $this->loadLayout(false); $this->renderLayout(); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/view'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/Sales/Billing/AgreementController.php app/code/core/Mage/Adminhtml/controllers/Sales/Billing/AgreementController.php index ac05821..cc38029 100644 --- app/code/core/Mage/Adminhtml/controllers/Sales/Billing/AgreementController.php +++ app/code/core/Mage/Adminhtml/controllers/Sales/Billing/AgreementController.php @@ -203,7 +203,8 @@ class Mage_Adminhtml_Sales_Billing_AgreementController extends Mage_Adminhtml_Co */ protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'index': case 'grid' : case 'view' : diff --git app/code/core/Mage/Adminhtml/controllers/Sales/Order/View/GiftmessageController.php app/code/core/Mage/Adminhtml/controllers/Sales/Order/View/GiftmessageController.php index 2b9b2bb..75cbd48 100644 --- app/code/core/Mage/Adminhtml/controllers/Sales/Order/View/GiftmessageController.php +++ app/code/core/Mage/Adminhtml/controllers/Sales/Order/View/GiftmessageController.php @@ -76,4 +76,14 @@ class Mage_Adminhtml_Sales_Order_View_GiftmessageController extends Mage_Adminht return Mage::getSingleton('adminhtml/giftmessage_save'); } + /** + * Acl check for admin + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('sales/order'); + } + } diff --git app/code/core/Mage/Adminhtml/controllers/Sales/Recurring/ProfileController.php app/code/core/Mage/Adminhtml/controllers/Sales/Recurring/ProfileController.php index 87dbad3..2204b3f 100644 --- app/code/core/Mage/Adminhtml/controllers/Sales/Recurring/ProfileController.php +++ app/code/core/Mage/Adminhtml/controllers/Sales/Recurring/ProfileController.php @@ -202,4 +202,14 @@ class Mage_Adminhtml_Sales_Recurring_ProfileController extends Mage_Adminhtml_Co Mage::register('current_recurring_profile', $profile); return $profile; } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('sales/recurring_profile'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/Sales/TransactionsController.php app/code/core/Mage/Adminhtml/controllers/Sales/TransactionsController.php index 238a414..f6b3537 100644 --- app/code/core/Mage/Adminhtml/controllers/Sales/TransactionsController.php +++ app/code/core/Mage/Adminhtml/controllers/Sales/TransactionsController.php @@ -130,7 +130,8 @@ class Mage_Adminhtml_Sales_TransactionsController extends Mage_Adminhtml_Control */ protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'fetch': return Mage::getSingleton('admin/session')->isAllowed('sales/transactions/fetch'); break; diff --git app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php index 9552cad..b72d30c 100644 --- app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php +++ app/code/core/Mage/Adminhtml/controllers/System/Config/System/StorageController.php @@ -180,4 +180,14 @@ class Mage_Adminhtml_System_Config_System_StorageController extends Mage_Adminht $result = Mage::helper('core')->jsonEncode($result); Mage::app()->getResponse()->setBody($result); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('system/config'); + } } diff --git app/code/core/Mage/Adminhtml/controllers/TagController.php app/code/core/Mage/Adminhtml/controllers/TagController.php index 7625bff..a8ffa25 100644 --- app/code/core/Mage/Adminhtml/controllers/TagController.php +++ app/code/core/Mage/Adminhtml/controllers/TagController.php @@ -345,7 +345,8 @@ class Mage_Adminhtml_TagController extends Mage_Adminhtml_Controller_Action */ protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'pending': return Mage::getSingleton('admin/session')->isAllowed('catalog/tag/pending'); break; diff --git app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php index 9311c23..2719c12 100644 --- app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php +++ app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php @@ -466,8 +466,9 @@ class Mage_Adminhtml_Tax_RateController extends Mage_Adminhtml_Controller_Action protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { - case 'importExport': + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { + case 'importexport': return Mage::getSingleton('admin/session')->isAllowed('sales/tax/import_export'); break; case 'index': diff --git app/code/core/Mage/Adminhtml/controllers/TaxController.php app/code/core/Mage/Adminhtml/controllers/TaxController.php index 285a69b..214cda1 100644 --- app/code/core/Mage/Adminhtml/controllers/TaxController.php +++ app/code/core/Mage/Adminhtml/controllers/TaxController.php @@ -50,4 +50,14 @@ class Mage_Adminhtml_TaxController extends Mage_Adminhtml_Controller_Action } $this->_redirectReferer(); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return true; + } } diff --git app/code/core/Mage/Api2/controllers/Adminhtml/Api2/AttributeController.php app/code/core/Mage/Api2/controllers/Adminhtml/Api2/AttributeController.php index dfd0c27..6e9d5fb 100644 --- app/code/core/Mage/Api2/controllers/Adminhtml/Api2/AttributeController.php +++ app/code/core/Mage/Api2/controllers/Adminhtml/Api2/AttributeController.php @@ -145,4 +145,14 @@ class Mage_Api2_Adminhtml_Api2_AttributeController extends Mage_Adminhtml_Contro $this->_redirect('*/*/edit', array('type' => $type)); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('system/api'); + } } diff --git app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/SelectionController.php app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/SelectionController.php index 832ff9e..2acedc6 100644 --- app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/SelectionController.php +++ app/code/core/Mage/Bundle/controllers/Adminhtml/Bundle/SelectionController.php @@ -59,5 +59,13 @@ class Mage_Bundle_Adminhtml_Bundle_SelectionController extends Mage_Adminhtml_Co ->toHtml() ); } - + /** + * Check for is allowed + * + * @return boolean + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('catalog/products'); + } } diff --git app/code/core/Mage/Captcha/controllers/Adminhtml/RefreshController.php app/code/core/Mage/Captcha/controllers/Adminhtml/RefreshController.php index bb26b8e..199c899 100755 --- app/code/core/Mage/Captcha/controllers/Adminhtml/RefreshController.php +++ app/code/core/Mage/Captcha/controllers/Adminhtml/RefreshController.php @@ -47,4 +47,14 @@ class Mage_Captcha_Adminhtml_RefreshController extends Mage_Adminhtml_Controller $this->getResponse()->setBody(json_encode(array('imgSrc' => $captchaModel->getImgSrc()))); $this->setFlag('', self::FLAG_NO_POST_DISPATCH, true); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return true; + } } diff --git app/code/core/Mage/Centinel/controllers/Adminhtml/Centinel/IndexController.php app/code/core/Mage/Centinel/controllers/Adminhtml/Centinel/IndexController.php index 59f682d..97b2eee 100644 --- app/code/core/Mage/Centinel/controllers/Adminhtml/Centinel/IndexController.php +++ app/code/core/Mage/Centinel/controllers/Adminhtml/Centinel/IndexController.php @@ -116,5 +116,15 @@ class Mage_Centinel_Adminhtml_Centinel_IndexController extends Mage_Adminhtml_Co } return false; } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/review_payment'); + } } diff --git app/code/core/Mage/Checkout/controllers/MultishippingController.php app/code/core/Mage/Checkout/controllers/MultishippingController.php index 9e944ae..9e8293f 100644 --- app/code/core/Mage/Checkout/controllers/MultishippingController.php +++ app/code/core/Mage/Checkout/controllers/MultishippingController.php @@ -86,7 +86,7 @@ class Mage_Checkout_MultishippingController extends Mage_Checkout_Controller_Act return $this; } - $action = $this->getRequest()->getActionName(); + $action = strtolower($this->getRequest()->getActionName()); $checkoutSessionQuote = $this->_getCheckoutSession()->getQuote(); /** diff --git app/code/core/Mage/Connect/controllers/Adminhtml/Extension/LocalController.php app/code/core/Mage/Connect/controllers/Adminhtml/Extension/LocalController.php index b5e46e0..048f995 100644 --- app/code/core/Mage/Connect/controllers/Adminhtml/Extension/LocalController.php +++ app/code/core/Mage/Connect/controllers/Adminhtml/Extension/LocalController.php @@ -42,4 +42,14 @@ class Mage_Connect_Adminhtml_Extension_LocalController extends Mage_Adminhtml_Co $url = Mage::getBaseUrl('web') . 'downloader/?return=' . urlencode(Mage::getUrl('adminhtml')); $this->getResponse()->setRedirect($url); } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('system/extensions/local'); + } } diff --git app/code/core/Mage/ImportExport/Model/Abstract.php app/code/core/Mage/ImportExport/Model/Abstract.php index 3f371d2..aacce28 100644 --- app/code/core/Mage/ImportExport/Model/Abstract.php +++ app/code/core/Mage/ImportExport/Model/Abstract.php @@ -89,7 +89,7 @@ abstract class Mage_ImportExport_Model_Abstract extends Varien_Object $dirPath = Mage::getBaseDir('var') . DS . Mage_ImportExport_Model_Scheduled_Operation::LOG_DIRECTORY . $dirName; if (!is_dir($dirPath)) { - mkdir($dirPath, 0777, true); + mkdir($dirPath, 0750, true); } $fileName = substr(strstr(Mage_ImportExport_Model_Scheduled_Operation::LOG_DIRECTORY, DS), 1) . $dirName . $fileName . '.log'; diff --git app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php index 9b79db4..aea74d8 100644 --- app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php +++ app/code/core/Mage/Oauth/controllers/Adminhtml/Oauth/AuthorizeController.php @@ -298,4 +298,14 @@ class Mage_Oauth_Adminhtml_Oauth_AuthorizeController extends Mage_Adminhtml_Cont { $this->_initRejectPage(); } + + /** + * Check admin permissions for this controller + * + * @return boolean + */ + protected function _isAllowed() + { + return true; + } } diff --git app/code/core/Mage/Paygate/controllers/Adminhtml/Paygate/Authorizenet/PaymentController.php app/code/core/Mage/Paygate/controllers/Adminhtml/Paygate/Authorizenet/PaymentController.php index 37b17b0..bbb6506 100644 --- app/code/core/Mage/Paygate/controllers/Adminhtml/Paygate/Authorizenet/PaymentController.php +++ app/code/core/Mage/Paygate/controllers/Adminhtml/Paygate/Authorizenet/PaymentController.php @@ -76,4 +76,14 @@ class Mage_Paygate_Adminhtml_Paygate_Authorizenet_PaymentController extends Mage $output = $layout->getOutput(); return $output; } + + /** + * Check is allowed access to action + * + * @return bool + */ + protected function _isAllowed() + { + return Mage::getSingleton('admin/session')->isAllowed('sales/order/actions/review_payment'); + } } diff --git app/code/core/Mage/Paypal/controllers/Adminhtml/Paypal/ReportsController.php app/code/core/Mage/Paypal/controllers/Adminhtml/Paypal/ReportsController.php index ef643b3..0ade62b 100644 --- app/code/core/Mage/Paypal/controllers/Adminhtml/Paypal/ReportsController.php +++ app/code/core/Mage/Paypal/controllers/Adminhtml/Paypal/ReportsController.php @@ -127,7 +127,8 @@ class Mage_Paypal_Adminhtml_Paypal_ReportsController extends Mage_Adminhtml_Cont */ protected function _isAllowed() { - switch ($this->getRequest()->getActionName()) { + $action = strtolower($this->getRequest()->getActionName()); + switch ($action) { case 'index': case 'details': return Mage::getSingleton('admin/session')->isAllowed('report/salesroot/paypal_settlement_reports/view'); diff --git app/code/core/Mage/Rss/controllers/CatalogController.php app/code/core/Mage/Rss/controllers/CatalogController.php index d1e011f..fcc484f 100644 --- app/code/core/Mage/Rss/controllers/CatalogController.php +++ app/code/core/Mage/Rss/controllers/CatalogController.php @@ -118,11 +118,12 @@ class Mage_Rss_CatalogController extends Mage_Core_Controller_Front_Action */ public function preDispatch() { - if ($this->getRequest()->getActionName() == 'notifystock') { + $action = strtolower($this->getRequest()->getActionName()); + if ($action == 'notifystock') { $this->_currentArea = 'adminhtml'; Mage::helper('rss')->authAdmin('catalog/products'); } - if ($this->getRequest()->getActionName() == 'review') { + if ($action == 'review') { $this->_currentArea = 'adminhtml'; Mage::helper('rss')->authAdmin('catalog/reviews_ratings'); } diff --git app/code/core/Mage/Rss/controllers/OrderController.php app/code/core/Mage/Rss/controllers/OrderController.php index 4274e66..115bf27 100644 --- app/code/core/Mage/Rss/controllers/OrderController.php +++ app/code/core/Mage/Rss/controllers/OrderController.php @@ -75,7 +75,8 @@ class Mage_Rss_OrderController extends Mage_Core_Controller_Front_Action */ public function preDispatch() { - if ($this->getRequest()->getActionName() == 'new') { + $action = strtolower($this->getRequest()->getActionName()); + if ($action == 'new') { $this->_currentArea = 'adminhtml'; Mage::helper('rss')->authAdmin('sales/order'); } diff --git app/code/core/Mage/Widget/Block/Adminhtml/Widget/Chooser.php app/code/core/Mage/Widget/Block/Adminhtml/Widget/Chooser.php index 93942e8..a99afe4 100644 --- app/code/core/Mage/Widget/Block/Adminhtml/Widget/Chooser.php +++ app/code/core/Mage/Widget/Block/Adminhtml/Widget/Chooser.php @@ -178,7 +178,8 @@ class Mage_Widget_Block_Adminhtml_Widget_Chooser extends Mage_Adminhtml_Block_Te $configJson = Mage::helper('core')->jsonEncode($config->getData()); return ' + . $this->quoteEscape($this->getLabel() ? $this->getLabel() : Mage::helper('widget')->__('Not Selected')) + . '
+