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;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |