582 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			582 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * PHPExcel
 | |
|  *
 | |
|  * Copyright (c) 2006 - 2015 PHPExcel
 | |
|  *
 | |
|  * This library is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU Lesser General Public
 | |
|  * License as published by the Free Software Foundation; either
 | |
|  * version 2.1 of the License, or (at your option) any later version.
 | |
|  *
 | |
|  * This library is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
|  * Lesser General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU Lesser General Public
 | |
|  * License along with this library; if not, write to the Free Software
 | |
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 | |
|  *
 | |
|  * @category   PHPExcel
 | |
|  * @package    PHPExcel_Worksheet
 | |
|  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
 | |
|  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
 | |
|  * @version    ##VERSION##, ##DATE##
 | |
|  */
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * PHPExcel_Worksheet_Protection
 | |
|  *
 | |
|  * @category   PHPExcel
 | |
|  * @package    PHPExcel_Worksheet
 | |
|  * @copyright  Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel)
 | |
|  */
 | |
| class PHPExcel_Worksheet_Protection
 | |
| {
 | |
|     /**
 | |
|      * Sheet
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_sheet                    = false;
 | |
| 
 | |
|     /**
 | |
|      * Objects
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_objects                = false;
 | |
| 
 | |
|     /**
 | |
|      * Scenarios
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_scenarios                = false;
 | |
| 
 | |
|     /**
 | |
|      * Format cells
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_formatCells            = false;
 | |
| 
 | |
|     /**
 | |
|      * Format columns
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_formatColumns            = false;
 | |
| 
 | |
|     /**
 | |
|      * Format rows
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_formatRows            = false;
 | |
| 
 | |
|     /**
 | |
|      * Insert columns
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_insertColumns            = false;
 | |
| 
 | |
|     /**
 | |
|      * Insert rows
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_insertRows            = false;
 | |
| 
 | |
|     /**
 | |
|      * Insert hyperlinks
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_insertHyperlinks        = false;
 | |
| 
 | |
|     /**
 | |
|      * Delete columns
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_deleteColumns            = false;
 | |
| 
 | |
|     /**
 | |
|      * Delete rows
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_deleteRows            = false;
 | |
| 
 | |
|     /**
 | |
|      * Select locked cells
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_selectLockedCells        = false;
 | |
| 
 | |
|     /**
 | |
|      * Sort
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_sort                    = false;
 | |
| 
 | |
|     /**
 | |
|      * AutoFilter
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_autoFilter            = false;
 | |
| 
 | |
|     /**
 | |
|      * Pivot tables
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_pivotTables            = false;
 | |
| 
 | |
|     /**
 | |
|      * Select unlocked cells
 | |
|      *
 | |
|      * @var boolean
 | |
|      */
 | |
|     private $_selectUnlockedCells    = false;
 | |
| 
 | |
|     /**
 | |
|      * Password
 | |
|      *
 | |
|      * @var string
 | |
|      */
 | |
|     private $_password                = '';
 | |
| 
 | |
|     /**
 | |
|      * Create a new PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function __construct()
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Is some sort of protection enabled?
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function isProtectionEnabled()
 | |
|     {
 | |
|         return $this->_sheet ||
 | |
|                 $this->_objects ||
 | |
|                 $this->_scenarios ||
 | |
|                 $this->_formatCells ||
 | |
|                 $this->_formatColumns ||
 | |
|                 $this->_formatRows ||
 | |
|                 $this->_insertColumns ||
 | |
|                 $this->_insertRows ||
 | |
|                 $this->_insertHyperlinks ||
 | |
|                 $this->_deleteColumns ||
 | |
|                 $this->_deleteRows ||
 | |
|                 $this->_selectLockedCells ||
 | |
|                 $this->_sort ||
 | |
|                 $this->_autoFilter ||
 | |
|                 $this->_pivotTables ||
 | |
|                 $this->_selectUnlockedCells;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get Sheet
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getSheet()
 | |
|     {
 | |
|         return $this->_sheet;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set Sheet
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setSheet($pValue = false)
 | |
|     {
 | |
|         $this->_sheet = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get Objects
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getObjects()
 | |
|     {
 | |
|         return $this->_objects;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set Objects
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setObjects($pValue = false)
 | |
|     {
 | |
|         $this->_objects = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get Scenarios
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getScenarios()
 | |
|     {
 | |
|         return $this->_scenarios;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set Scenarios
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setScenarios($pValue = false)
 | |
|     {
 | |
|         $this->_scenarios = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get FormatCells
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getFormatCells()
 | |
|     {
 | |
|         return $this->_formatCells;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set FormatCells
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setFormatCells($pValue = false)
 | |
|     {
 | |
|         $this->_formatCells = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get FormatColumns
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getFormatColumns()
 | |
|     {
 | |
|         return $this->_formatColumns;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set FormatColumns
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setFormatColumns($pValue = false)
 | |
|     {
 | |
|         $this->_formatColumns = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get FormatRows
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getFormatRows()
 | |
|     {
 | |
|         return $this->_formatRows;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set FormatRows
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setFormatRows($pValue = false)
 | |
|     {
 | |
|         $this->_formatRows = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get InsertColumns
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getInsertColumns()
 | |
|     {
 | |
|         return $this->_insertColumns;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set InsertColumns
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setInsertColumns($pValue = false)
 | |
|     {
 | |
|         $this->_insertColumns = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get InsertRows
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getInsertRows()
 | |
|     {
 | |
|         return $this->_insertRows;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set InsertRows
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setInsertRows($pValue = false)
 | |
|     {
 | |
|         $this->_insertRows = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get InsertHyperlinks
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getInsertHyperlinks()
 | |
|     {
 | |
|         return $this->_insertHyperlinks;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set InsertHyperlinks
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setInsertHyperlinks($pValue = false)
 | |
|     {
 | |
|         $this->_insertHyperlinks = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get DeleteColumns
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getDeleteColumns()
 | |
|     {
 | |
|         return $this->_deleteColumns;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set DeleteColumns
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setDeleteColumns($pValue = false)
 | |
|     {
 | |
|         $this->_deleteColumns = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get DeleteRows
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getDeleteRows()
 | |
|     {
 | |
|         return $this->_deleteRows;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set DeleteRows
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setDeleteRows($pValue = false)
 | |
|     {
 | |
|         $this->_deleteRows = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get SelectLockedCells
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getSelectLockedCells()
 | |
|     {
 | |
|         return $this->_selectLockedCells;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set SelectLockedCells
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setSelectLockedCells($pValue = false)
 | |
|     {
 | |
|         $this->_selectLockedCells = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get Sort
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getSort()
 | |
|     {
 | |
|         return $this->_sort;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set Sort
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setSort($pValue = false)
 | |
|     {
 | |
|         $this->_sort = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get AutoFilter
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getAutoFilter()
 | |
|     {
 | |
|         return $this->_autoFilter;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set AutoFilter
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setAutoFilter($pValue = false)
 | |
|     {
 | |
|         $this->_autoFilter = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get PivotTables
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getPivotTables()
 | |
|     {
 | |
|         return $this->_pivotTables;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set PivotTables
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setPivotTables($pValue = false)
 | |
|     {
 | |
|         $this->_pivotTables = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get SelectUnlockedCells
 | |
|      *
 | |
|      * @return boolean
 | |
|      */
 | |
|     public function getSelectUnlockedCells()
 | |
|     {
 | |
|         return $this->_selectUnlockedCells;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set SelectUnlockedCells
 | |
|      *
 | |
|      * @param boolean $pValue
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setSelectUnlockedCells($pValue = false)
 | |
|     {
 | |
|         $this->_selectUnlockedCells = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Get Password (hashed)
 | |
|      *
 | |
|      * @return string
 | |
|      */
 | |
|     public function getPassword()
 | |
|     {
 | |
|         return $this->_password;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Set Password
 | |
|      *
 | |
|      * @param string     $pValue
 | |
|      * @param boolean     $pAlreadyHashed If the password has already been hashed, set this to true
 | |
|      * @return PHPExcel_Worksheet_Protection
 | |
|      */
 | |
|     public function setPassword($pValue = '', $pAlreadyHashed = false)
 | |
|     {
 | |
|         if (!$pAlreadyHashed) {
 | |
|             $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue);
 | |
|         }
 | |
|         $this->_password = $pValue;
 | |
|         return $this;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Implement PHP __clone to create a deep clone, not just a shallow copy.
 | |
|      */
 | |
|     public function __clone()
 | |
|     {
 | |
|         $vars = get_object_vars($this);
 | |
|         foreach ($vars as $key => $value) {
 | |
|             if (is_object($value)) {
 | |
|                 $this->$key = clone $value;
 | |
|             } else {
 | |
|                 $this->$key = $value;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | 
