1: <?php
2: /**
3: * The interface describing Horde_Kolab_Session handlers.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_Session
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_Session
12: */
13:
14: /**
15: * The interface describing Horde_Kolab_Session handlers.
16: *
17: * Horde_Kolab_Server currently has no caching so we mainly cache some core user
18: * information in the Kolab session handler as reading this data is expensive
19: * and it is sufficient to read it once per session.
20: *
21: * The users account id needs to be provided from the outside. Any
22: * additional Kolab user data relevant for the user session should be
23: * accessed via the Horde_Kolab_Session class.
24: *
25: * Copyright 2008-2012 Horde LLC (http://www.horde.org/)
26: *
27: * See the enclosed file COPYING for license information (LGPL). If you
28: * did not receive this file, see http://www.horde.org/licenses/lgpl21.
29: *
30: * @category Kolab
31: * @package Kolab_Session
32: * @author Gunnar Wrobel <wrobel@pardus.de>
33: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
34: * @link http://pear.horde.org/index.php?package=Kolab_Session
35: */
36: interface Horde_Kolab_Session
37: {
38: /**
39: * Try to connect the session handler.
40: *
41: * @param string $user_id The user ID to connect with.
42: * @param array $credentials An array of login credentials. For Kolab,
43: * this must contain a "password" entry.
44: *
45: * @return NULL
46: *
47: * @throws Horde_Kolab_Session_Exception If the connection failed.
48: */
49: public function connect($user_id = null, array $credentials = null);
50:
51: /**
52: * Return the user id used for connecting the session.
53: *
54: * @return string The user id.
55: */
56: public function getId();
57:
58: /**
59: * Return the users mail address.
60: *
61: * @return string The users mail address.
62: */
63: public function getMail();
64:
65: /**
66: * Return the users uid.
67: *
68: * @return string The users uid.
69: */
70: public function getUid();
71:
72: /**
73: * Return the users name.
74: *
75: * @return string The users name.
76: */
77: public function getName();
78:
79: /**
80: * Return the imap server.
81: *
82: * @return string The imap host for the current user.
83: */
84: public function getImapServer();
85:
86: /**
87: * Return the freebusy server.
88: *
89: * @return string The freebusy host for the current user.
90: */
91: public function getFreebusyServer();
92:
93: /**
94: * Import the session data from an array.
95: *
96: * @param array The session data.
97: *
98: * @return NULL
99: */
100: public function import(array $session_data);
101:
102: /**
103: * Export the session data as array.
104: *
105: * @return array The session data.
106: */
107: public function export();
108:
109: /**
110: * Clear the session data.
111: *
112: * @return NULL
113: */
114: public function purge();
115: }
116: