1<?php
2
3/*
4 * This file is part of Twig.
5 *
6 * (c) Fabien Potencier
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 */
11
12namespace Twig\Sandbox;
13
14/**
15 * Interface that all security policy classes must implements.
16 *
17 * @author Fabien Potencier <fabien@symfony.com>
18 */
19interface SecurityPolicyInterface
20{
21    /**
22     * @param string[] $tags
23     * @param string[] $filters
24     * @param string[] $functions
25     *
26     * @throws SecurityError
27     */
28    public function checkSecurity($tags, $filters, $functions);
29
30    /**
31     * @param object $obj
32     * @param string $method
33     *
34     * @throws SecurityNotAllowedMethodError
35     */
36    public function checkMethodAllowed($obj, $method);
37
38    /**
39     * @param object $obj
40     * @param string $property
41     *
42     * @throws SecurityNotAllowedPropertyError
43     */
44    public function checkPropertyAllowed($obj, $property);
45}
46
47class_alias('Twig\Sandbox\SecurityPolicyInterface', 'Twig_Sandbox_SecurityPolicyInterface');
48