1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Paypal
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Backend model for saving certificate file in case of using certificate based authentication
29: */
30: class Mage_Paypal_Model_System_Config_Backend_Cert extends Mage_Core_Model_Config_Data
31: {
32: /**
33: * Process additional data before save config
34: *
35: * @return Mage_Paypal_Model_System_Config_Backend_Cert
36: */
37: protected function _beforeSave()
38: {
39: $value = $this->getValue();
40: if (is_array($value) && !empty($value['delete'])) {
41: $this->setValue('');
42: Mage::getModel('paypal/cert')->loadByWebsite($this->getScopeId())->delete();
43: }
44:
45: if (!isset($_FILES['groups']['tmp_name'][$this->getGroupId()]['fields'][$this->getField()]['value'])) {
46: return $this;
47: }
48: $tmpPath = $_FILES['groups']['tmp_name'][$this->getGroupId()]['fields'][$this->getField()]['value'];
49: if ($tmpPath && file_exists($tmpPath)) {
50: if (!filesize($tmpPath)) {
51: Mage::throwException(Mage::helper('paypal')->__('PayPal certificate file is empty.'));
52: }
53: $this->setValue($_FILES['groups']['name'][$this->getGroupId()]['fields'][$this->getField()]['value']);
54: $content = Mage::helper('core')->encrypt(file_get_contents($tmpPath));
55: Mage::getModel('paypal/cert')->loadByWebsite($this->getScopeId())
56: ->setContent($content)
57: ->save();
58: }
59: return $this;
60: }
61:
62: /**
63: * Process object after delete data
64: *
65: * @return Mage_Paypal_Model_System_Config_Backend_Cert
66: */
67: protected function _afterDelete()
68: {
69: Mage::getModel('paypal/cert')->loadByWebsite($this->getScopeId())->delete();
70: return $this;
71: }
72: }
73: