1: <?php
2:
3: namespace ProgrammingAreHard\Arbiter\Model;
4:
5: interface PermissionMapInterface extends \IteratorAggregate
6: {
7: /**
8: * Get the mask equivalent of the permission.
9: *
10: * @param string $permission
11: * @return int
12: * @throws \InvalidArgumentException
13: */
14: public function getMask($permission);
15:
16: /**
17: * Get the permission equivalent of the mask.
18: *
19: * @param int $mask
20: * @return string
21: * @throws \InvalidArgumentException
22: */
23: public function getPermission($mask);
24:
25: /**
26: * Does the map support the permission?
27: *
28: * @param string $permission
29: * @return bool
30: */
31: public function supportsPermission($permission);
32: }