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