Verzeichnisstruktur phpBB-3.1.0
- Veröffentlicht
- 27.10.2014
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
Sandbox.php
001 <?php
002
003 /*
004 * This file is part of Twig.
005 *
006 * (c) 2009 Fabien Potencier
007 *
008 * For the full copyright and license information, please view the LICENSE
009 * file that was distributed with this source code.
010 */
011 class Twig_Extension_Sandbox extends Twig_Extension
012 {
013 protected $sandboxedGlobally;
014 protected $sandboxed;
015 protected $policy;
016
017 public function __construct(Twig_Sandbox_SecurityPolicyInterface $policy, $sandboxed = false)
018 {
019 $this->policy = $policy;
020 $this->sandboxedGlobally = $sandboxed;
021 }
022
023 /**
024 * Returns the token parser instances to add to the existing list.
025 *
026 * @return array An array of Twig_TokenParserInterface or Twig_TokenParserBrokerInterface instances
027 */
028 public function getTokenParsers()
029 {
030 return array(new Twig_TokenParser_Sandbox());
031 }
032
033 /**
034 * Returns the node visitor instances to add to the existing list.
035 *
036 * @return array An array of Twig_NodeVisitorInterface instances
037 */
038 public function getNodeVisitors()
039 {
040 return array(new Twig_NodeVisitor_Sandbox());
041 }
042
043 public function enableSandbox()
044 {
045 $this->sandboxed = true;
046 }
047
048 public function disableSandbox()
049 {
050 $this->sandboxed = false;
051 }
052
053 public function isSandboxed()
054 {
055 return $this->sandboxedGlobally || $this->sandboxed;
056 }
057
058 public function isSandboxedGlobally()
059 {
060 return $this->sandboxedGlobally;
061 }
062
063 public function setSecurityPolicy(Twig_Sandbox_SecurityPolicyInterface $policy)
064 {
065 $this->policy = $policy;
066 }
067
068 public function getSecurityPolicy()
069 {
070 return $this->policy;
071 }
072
073 public function checkSecurity($tags, $filters, $functions)
074 {
075 if ($this->isSandboxed()) {
076 $this->policy->checkSecurity($tags, $filters, $functions);
077 }
078 }
079
080 public function checkMethodAllowed($obj, $method)
081 {
082 if ($this->isSandboxed()) {
083 $this->policy->checkMethodAllowed($obj, $method);
084 }
085 }
086
087 public function checkPropertyAllowed($obj, $method)
088 {
089 if ($this->isSandboxed()) {
090 $this->policy->checkPropertyAllowed($obj, $method);
091 }
092 }
093
094 public function ensureToStringAllowed($obj)
095 {
096 if (is_object($obj)) {
097 $this->policy->checkMethodAllowed($obj, '__toString');
098 }
099
100 return $obj;
101 }
102
103 /**
104 * Returns the name of the extension.
105 *
106 * @return string The extension name
107 */
108 public function getName()
109 {
110 return 'sandbox';
111 }
112 }
113