1: <?php
2:
3: /*
4: * This file is part of the Symfony package.
5: *
6: * (c) Fabien Potencier <fabien@symfony.com>
7: *
8: * For the full copyright and license information, please view the LICENSE
9: * file that was distributed with this source code.
10: */
11:
12: namespace Symfony\Component\Security\Acl\Model;
13:
14: /**
15: * This interface adds mutators for the AclInterface.
16: *
17: * All changes to Access Control Entries must go through this interface. Access
18: * Control Entries must never be modified directly.
19: *
20: * @author Johannes M. Schmitt <schmittjoh@gmail.com>
21: */
22: interface MutableAclInterface extends AclInterface
23: {
24: /**
25: * Deletes a class-based ACE
26: *
27: * @param int $index
28: */
29: public function deleteClassAce($index);
30:
31: /**
32: * Deletes a class-field-based ACE
33: *
34: * @param int $index
35: * @param string $field
36: */
37: public function deleteClassFieldAce($index, $field);
38:
39: /**
40: * Deletes an object-based ACE
41: *
42: * @param int $index
43: */
44: public function deleteObjectAce($index);
45:
46: /**
47: * Deletes an object-field-based ACE
48: *
49: * @param int $index
50: * @param string $field
51: */
52: public function deleteObjectFieldAce($index, $field);
53:
54: /**
55: * Returns the primary key of this ACL
56: *
57: * @return int
58: */
59: public function getId();
60:
61: /**
62: * Inserts a class-based ACE
63: *
64: * @param SecurityIdentityInterface $sid
65: * @param int $mask
66: * @param int $index
67: * @param bool $granting
68: * @param string $strategy
69: */
70: public function insertClassAce(SecurityIdentityInterface $sid, $mask, $index = 0, $granting = true, $strategy = null);
71:
72: /**
73: * Inserts a class-field-based ACE
74: *
75: * @param string $field
76: * @param SecurityIdentityInterface $sid
77: * @param int $mask
78: * @param int $index
79: * @param bool $granting
80: * @param string $strategy
81: */
82: public function insertClassFieldAce($field, SecurityIdentityInterface $sid, $mask, $index = 0, $granting = true, $strategy = null);
83:
84: /**
85: * Inserts an object-based ACE
86: *
87: * @param SecurityIdentityInterface $sid
88: * @param int $mask
89: * @param int $index
90: * @param bool $granting
91: * @param string $strategy
92: */
93: public function insertObjectAce(SecurityIdentityInterface $sid, $mask, $index = 0, $granting = true, $strategy = null);
94:
95: /**
96: * Inserts an object-field-based ACE
97: *
98: * @param string $field
99: * @param SecurityIdentityInterface $sid
100: * @param int $mask
101: * @param int $index
102: * @param bool $granting
103: * @param string $strategy
104: */
105: public function insertObjectFieldAce($field, SecurityIdentityInterface $sid, $mask, $index = 0, $granting = true, $strategy = null);
106:
107: /**
108: * Sets whether entries are inherited
109: *
110: * @param bool $boolean
111: */
112: public function setEntriesInheriting($boolean);
113:
114: /**
115: * Sets the parent ACL
116: *
117: * @param AclInterface|null $acl
118: */
119: public function setParentAcl(AclInterface $acl = null);
120:
121: /**
122: * Updates a class-based ACE
123: *
124: * @param int $index
125: * @param int $mask
126: * @param string $strategy if null the strategy should not be changed
127: */
128: public function updateClassAce($index, $mask, $strategy = null);
129:
130: /**
131: * Updates a class-field-based ACE
132: *
133: * @param int $index
134: * @param string $field
135: * @param int $mask
136: * @param string $strategy if null the strategy should not be changed
137: */
138: public function updateClassFieldAce($index, $field, $mask, $strategy = null);
139:
140: /**
141: * Updates an object-based ACE
142: *
143: * @param int $index
144: * @param int $mask
145: * @param string $strategy if null the strategy should not be changed
146: */
147: public function updateObjectAce($index, $mask, $strategy = null);
148:
149: /**
150: * Updates an object-field-based ACE
151: *
152: * @param int $index
153: * @param string $field
154: * @param int $mask
155: * @param string $strategy if null the strategy should not be changed
156: */
157: public function updateObjectFieldAce($index, $field, $mask, $strategy = null);
158: }
159: