source: sourcecode/application/libraries/PHPExcel/DocumentSecurity.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 4.8 KB
Line 
1<?php
2/**
3 * PHPExcel
4 *
5 * Copyright (c) 2006 - 2014 PHPExcel
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
20 *
21 * @category   PHPExcel
22 * @package    PHPExcel
23 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
24 * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
25 * @version    1.8.0, 2014-03-02
26 */
27
28
29/**
30 * PHPExcel_DocumentSecurity
31 *
32 * @category   PHPExcel
33 * @package    PHPExcel
34 * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35 */
36class PHPExcel_DocumentSecurity
37{
38        /**
39         * LockRevision
40         *
41         * @var boolean
42         */
43        private $_lockRevision;
44
45        /**
46         * LockStructure
47         *
48         * @var boolean
49         */
50        private $_lockStructure;
51
52        /**
53         * LockWindows
54         *
55         * @var boolean
56         */
57        private $_lockWindows;
58
59        /**
60         * RevisionsPassword
61         *
62         * @var string
63         */
64        private $_revisionsPassword;
65
66        /**
67         * WorkbookPassword
68         *
69         * @var string
70         */
71        private $_workbookPassword;
72
73    /**
74     * Create a new PHPExcel_DocumentSecurity
75     */
76    public function __construct()
77    {
78        // Initialise values
79        $this->_lockRevision            = false;
80        $this->_lockStructure           = false;
81        $this->_lockWindows                     = false;
82        $this->_revisionsPassword       = '';
83        $this->_workbookPassword        = '';
84    }
85
86    /**
87     * Is some sort of dcument security enabled?
88     *
89     * @return boolean
90     */
91    function isSecurityEnabled() {
92        return  $this->_lockRevision ||
93                        $this->_lockStructure ||
94                        $this->_lockWindows;
95    }
96
97    /**
98     * Get LockRevision
99     *
100     * @return boolean
101     */
102    function getLockRevision() {
103        return $this->_lockRevision;
104    }
105
106    /**
107     * Set LockRevision
108     *
109     * @param boolean $pValue
110     * @return PHPExcel_DocumentSecurity
111     */
112    function setLockRevision($pValue = false) {
113        $this->_lockRevision = $pValue;
114        return $this;
115    }
116
117    /**
118     * Get LockStructure
119     *
120     * @return boolean
121     */
122    function getLockStructure() {
123        return $this->_lockStructure;
124    }
125
126    /**
127     * Set LockStructure
128     *
129     * @param boolean $pValue
130     * @return PHPExcel_DocumentSecurity
131     */
132    function setLockStructure($pValue = false) {
133                $this->_lockStructure = $pValue;
134                return $this;
135    }
136
137    /**
138     * Get LockWindows
139     *
140     * @return boolean
141     */
142    function getLockWindows() {
143        return $this->_lockWindows;
144    }
145
146    /**
147     * Set LockWindows
148     *
149     * @param boolean $pValue
150     * @return PHPExcel_DocumentSecurity
151     */
152    function setLockWindows($pValue = false) {
153        $this->_lockWindows = $pValue;
154        return $this;
155    }
156
157    /**
158     * Get RevisionsPassword (hashed)
159     *
160     * @return string
161     */
162    function getRevisionsPassword() {
163        return $this->_revisionsPassword;
164    }
165
166    /**
167     * Set RevisionsPassword
168     *
169     * @param string    $pValue
170     * @param boolean   $pAlreadyHashed If the password has already been hashed, set this to true
171     * @return PHPExcel_DocumentSecurity
172     */
173    function setRevisionsPassword($pValue = '', $pAlreadyHashed = false) {
174        if (!$pAlreadyHashed) {
175                $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue);
176        }
177        $this->_revisionsPassword = $pValue;
178        return $this;
179    }
180
181    /**
182     * Get WorkbookPassword (hashed)
183     *
184     * @return string
185     */
186    function getWorkbookPassword() {
187        return $this->_workbookPassword;
188    }
189
190    /**
191     * Set WorkbookPassword
192     *
193     * @param string    $pValue
194     * @param boolean   $pAlreadyHashed If the password has already been hashed, set this to true
195     * @return PHPExcel_DocumentSecurity
196     */
197    function setWorkbookPassword($pValue = '', $pAlreadyHashed = false) {
198        if (!$pAlreadyHashed) {
199                $pValue = PHPExcel_Shared_PasswordHasher::hashPassword($pValue);
200        }
201                $this->_workbookPassword = $pValue;
202                return $this;
203    }
204
205        /**
206         * Implement PHP __clone to create a deep clone, not just a shallow copy.
207         */
208        public function __clone() {
209                $vars = get_object_vars($this);
210                foreach ($vars as $key => $value) {
211                        if (is_object($value)) {
212                                $this->$key = clone $value;
213                        } else {
214                                $this->$key = $value;
215                        }
216                }
217        }
218}
Note: See TracBrowser for help on using the repository browser.