Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php

namespace PhpOffice\PhpSpreadsheet\Document;

use PhpOffice\PhpSpreadsheet\Shared\PasswordHasher;

class Security
{
    /**
     * LockRevision.
     *
     * @var bool
     */
    private $lockRevision = false;

    /**
     * LockStructure.
     *
     * @var bool
     */
    private $lockStructure = false;

    /**
     * LockWindows.
     *
     * @var bool
     */
    private $lockWindows = false;

    /**
     * RevisionsPassword.
     *
     * @var string
     */
    private $revisionsPassword = '';

    /**
     * WorkbookPassword.
     *
     * @var string
     */
    private $workbookPassword = '';

    /**
     * Create a new Document Security instance.
     */
    public function __construct()
    {
    }

    /**
     * Is some sort of document security enabled?
< * < * @return bool
*/
< public function isSecurityEnabled()
> public function isSecurityEnabled(): bool
{ return $this->lockRevision || $this->lockStructure || $this->lockWindows; }
< /** < * Get LockRevision. < * < * @return bool < */ < public function getLockRevision()
> public function getLockRevision(): bool
{ return $this->lockRevision; }
< /** < * Set LockRevision. < * < * @param bool $pValue < * < * @return $this < */ < public function setLockRevision($pValue)
> public function setLockRevision(?bool $locked): self
{
< $this->lockRevision = $pValue;
> if ($locked !== null) { > $this->lockRevision = $locked; > }
return $this; }
< /** < * Get LockStructure. < * < * @return bool < */ < public function getLockStructure()
> public function getLockStructure(): bool
{ return $this->lockStructure; }
< /** < * Set LockStructure. < * < * @param bool $pValue < * < * @return $this < */ < public function setLockStructure($pValue)
> public function setLockStructure(?bool $locked): self
{
< $this->lockStructure = $pValue;
> if ($locked !== null) { > $this->lockStructure = $locked; > }
return $this; }
< /** < * Get LockWindows. < * < * @return bool < */ < public function getLockWindows()
> public function getLockWindows(): bool
{ return $this->lockWindows; }
< /** < * Set LockWindows. < * < * @param bool $pValue < * < * @return $this < */ < public function setLockWindows($pValue)
> public function setLockWindows(?bool $locked): self
{
< $this->lockWindows = $pValue;
> if ($locked !== null) { > $this->lockWindows = $locked; > }
return $this; }
< /** < * Get RevisionsPassword (hashed). < * < * @return string < */ < public function getRevisionsPassword()
> public function getRevisionsPassword(): string
{ return $this->revisionsPassword; } /** * Set RevisionsPassword. *
< * @param string $pValue < * @param bool $pAlreadyHashed If the password has already been hashed, set this to true
> * @param string $password > * @param bool $alreadyHashed If the password has already been hashed, set this to true
* * @return $this */
< public function setRevisionsPassword($pValue, $pAlreadyHashed = false)
> public function setRevisionsPassword(?string $password, bool $alreadyHashed = false)
{
< if (!$pAlreadyHashed) { < $pValue = PasswordHasher::hashPassword($pValue);
> if ($password !== null) { > if (!$alreadyHashed) { > $password = PasswordHasher::hashPassword($password); > } > $this->revisionsPassword = $password;
}
< $this->revisionsPassword = $pValue;
return $this; }
< /** < * Get WorkbookPassword (hashed). < * < * @return string < */ < public function getWorkbookPassword()
> public function getWorkbookPassword(): string
{ return $this->workbookPassword; } /** * Set WorkbookPassword. *
< * @param string $pValue < * @param bool $pAlreadyHashed If the password has already been hashed, set this to true
> * @param string $password > * @param bool $alreadyHashed If the password has already been hashed, set this to true
* * @return $this */
< public function setWorkbookPassword($pValue, $pAlreadyHashed = false)
> public function setWorkbookPassword(?string $password, bool $alreadyHashed = false)
{
< if (!$pAlreadyHashed) { < $pValue = PasswordHasher::hashPassword($pValue);
> if ($password !== null) { > if (!$alreadyHashed) { > $password = PasswordHasher::hashPassword($password);
}
< $this->workbookPassword = $pValue; < < return $this;
> $this->workbookPassword = $password;
}
< /** < * 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; < } < }
> return $this;
} }