1: <?php
2: /**
3: * Defines the ACL query.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_Storage
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=Kolab_Storage
12: */
13:
14: /**
15: * Defines the ACL query.
16: *
17: * Copyright 2011-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 Kolab
23: * @package Kolab_Storage
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=Kolab_Storage
27: */
28: interface Horde_Kolab_Storage_List_Query_Acl
29: extends Horde_Kolab_Storage_List_Query
30: {
31: /**
32: * Does the backend support ACL?
33: *
34: * @return boolean True if the backend supports ACLs.
35: */
36: public function hasAclSupport();
37:
38: /**
39: * Retrieve the access rights for a folder.
40: *
41: * @param string $folder The folder to retrieve the ACL for.
42: *
43: * @return array An array of rights.
44: */
45: public function getAcl($folder);
46:
47: /**
48: * Retrieve the access rights the current user has on a folder.
49: *
50: * @param string $folder The folder to retrieve the user ACL for.
51: *
52: * @return string The user rights.
53: */
54: public function getMyAcl($folder);
55:
56: /**
57: * Retrieve the all access rights on a folder.
58: *
59: * @param string $folder The folder to retrieve the ACL for.
60: *
61: * @since Horde_Kolab_Storage 1.1.0
62: *
63: * @return string The folder rights.
64: */
65: public function getAllAcl($folder);
66:
67: /**
68: * Set the access rights for a folder.
69: *
70: * @param string $folder The folder to act upon.
71: * @param string $user The user to set the ACL for.
72: * @param string $acl The ACL.
73: *
74: * @return NULL
75: */
76: public function setAcl($folder, $user, $acl);
77:
78: /**
79: * Delete the access rights for user on a folder.
80: *
81: * @param string $folder The folder to act upon.
82: * @param string $user The user to delete the ACL for
83: *
84: * @return NULL
85: */
86: public function deleteAcl($folder, $user);
87: }