1: <?php
2: /**
3: * Defines a Kolab storage object that supports permission handling.
4: *
5: * PHP version 5
6: *
7: * @category Horde
8: * @package Perms
9: * @author Gunnar Wrobel <wrobel@pardus.de>
10: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
11: * @link http://pear.horde.org/index.php?package=Perms
12: */
13:
14: /**
15: * Defines a Kolab storage object that supports permission handling.
16: *
17: * Copyright 2006-2012 Horde LLC (http://www.horde.org/)
18: *
19: * See the enclosed file COPYING for license information (LGPL). If you
20: * did not receive this file, see http://www.horde.org/licenses/lgpl21.
21: *
22: * @category Horde
23: * @package Perms
24: * @author Gunnar Wrobel <wrobel@pardus.de>
25: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
26: * @link http://pear.horde.org/index.php?package=Perms
27: */
28: interface Horde_Perms_Permission_Kolab_Storage
29: {
30: /**
31: * Return the ID of this storage object.
32: *
33: * @return string The ID.
34: */
35: public function getPermissionId();
36:
37: /**
38: * Return the owner of this storage object.
39: *
40: * @return string The owner.
41: */
42: public function getOwner();
43:
44: /**
45: * Retrieve the Kolab specific access rights for this storage object.
46: *
47: * @return An array of rights.
48: */
49: public function getAcl();
50:
51: /**
52: * Set the Kolab specific access rights for this storage object.
53: *
54: * @param string $user The user to set the ACL for.
55: * @param string $acl The ACL.
56: *
57: * @return NULL
58: */
59: public function setAcl($user, $acl);
60:
61: /**
62: * Delete Kolab specific access rights for this storage object.
63: *
64: * @param string $user The user to delete the ACL for
65: *
66: * @return NULL
67: */
68: public function deleteAcl($user);
69: }