00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Core 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 00028 /** 00029 * Controller for onepage and multishipping checkouts 00030 */ 00031 abstract class Mage_Checkout_Controller_Action extends Mage_Core_Controller_Front_Action 00032 { 00033 /** 00034 * Make sure customer is valid, if logged in 00035 * By default will add error messages and redirect to customer edit form 00036 * 00037 * @param bool $redirect - stop dispatch and redirect? 00038 * @param bool $addErrors - add error messages? 00039 * @return bool 00040 */ 00041 protected function _preDispatchValidateCustomer($redirect = true, $addErrors = true) 00042 { 00043 $customer = Mage::getSingleton('customer/session')->getCustomer(); 00044 if ($customer && $customer->getId()) { 00045 $validationResult = $customer->validate(); 00046 if ((true !== $validationResult) && is_array($validationResult)) { 00047 if ($addErrors) { 00048 foreach ($validationResult as $error) { 00049 Mage::getSingleton('customer/session')->addError($error); 00050 } 00051 } 00052 if ($redirect) { 00053 $this->_redirect('customer/account/edit'); 00054 $this->setFlag('', self::FLAG_NO_DISPATCH, true); 00055 } 00056 return false; 00057 } 00058 } 00059 return true; 00060 } 00061 }