1: <?php
2: /**
3: * This class represents a Kolab user accessing the export system.
4: *
5: * PHP version 5
6: *
7: * @category Kolab
8: * @package Kolab_FreeBusy
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_FreeBusy
12: */
13:
14: /**
15: * This class represents a Kolab accessing the export system.
16: *
17: * Copyright 2010-2012 Horde LLC (http://www.horde.org/)
18: *
19: * See the enclosed file COPYING for license information (LGPL). If you did not
20: * receive this file, see
21: * http://www.horde.org/licenses/lgpl21.
22: *
23: * @category Kolab
24: * @package Kolab_FreeBusy
25: * @author Gunnar Wrobel <wrobel@pardus.de>
26: * @license http://www.horde.org/licenses/lgpl21 LGPL 2.1
27: * @link http://pear.horde.org/index.php?package=Kolab_FreeBusy
28: */
29: class Horde_Kolab_FreeBusy_User_Kolab
30: extends Horde_Kolab_FreeBusy_UserDb_User_Kolab
31: implements Horde_Kolab_FreeBusy_User
32: {
33: /**
34: * The user name.
35: *
36: * @var string
37: */
38: private $_user;
39:
40: /**
41: * Optional user password.
42: *
43: * @var string
44: */
45: private $_pass;
46:
47: /**
48: * Has the user authenticated successfully?
49: *
50: * @var boolean
51: */
52: private $_authenticated;
53:
54: /**
55: * Constructor.
56: *
57: * @param string $user The user name.
58: * @param Horde_Kolab_Server_Composite $db The connection to the user database.
59: * @param string $pass The user password.
60: */
61: public function __construct(
62: $user, Horde_Kolab_Server_Composite $db, $pass = null
63: ) {
64: $this->_user = $user;
65: $this->_pass = $pass;
66: parent::__construct($db);
67: }
68:
69: /**
70: * Return the primary id of the user accessing the system.
71: *
72: * @return string The primary id.
73: */
74: public function getPrimaryId()
75: {
76: $id = parent::getPrimaryId();
77: if (empty($id)) {
78: return $this->_user;
79: }
80: return $id;
81: }
82:
83: /**
84: * Return the password of the user accessing the system.
85: *
86: * @return string The password.
87: */
88: public function getPassword()
89: {
90: return $this->_pass;
91: }
92:
93: /**
94: * Fetch the user data from the user db.
95: *
96: * @return NULL
97: */
98: protected function fetchUserDbUser()
99: {
100: return $this->fetchUser($this->_user);
101: }
102:
103: /**
104: * Finds out if a set of login credentials are valid.
105: *
106: * @return boolean Whether or not the password was correct.
107: */
108: public function isAuthenticated()
109: {
110: if ($this->_authenticated === null) {
111: $this->_authenticated = parent::authenticate($this->_pass);
112: }
113: return $this->_authenticated;
114: }
115: }