Merge branch '2014.11' into 2015.11
[tine20] / tine20 / Tinebase / User / Interface.php
1 <?php
2 /**
3  * Tine 2.0
4  *
5  * @package     Tinebase
6  * @subpackage  User
7  * @license     http://www.gnu.org/licenses/agpl.html AGPL3
8  * @copyright   Copyright (c) 2008-2013 Metaways Infosystems GmbH (http://www.metaways.de)
9  * @author      Lars Kneschke <l.kneschke@metaways.de>
10  * 
11  * @deprecated  user backends should be refactored
12  * @todo        add searchCount function
13  */
14
15 /**
16  * abstract class for all user backends
17  *
18  * @package     Tinebase
19  * @subpackage  User
20  */
21  
22 interface Tinebase_User_Interface
23 {
24     /**
25      * get plugins
26      * 
27      * return array
28      */
29     public function getPlugins();
30     
31     /**
32      * get list of users
33      *
34      * @param string $_filter
35      * @param string $_sort
36      * @param string $_dir
37      * @param int $_start
38      * @param int $_limit
39      * @param string $_accountClass the type of subclass for the Tinebase_Record_RecordSet to return
40      * @return Tinebase_Record_RecordSet with record class Tinebase_Model_User
41      */
42     public function getUsers($_filter = NULL, $_sort = NULL, $_dir = 'ASC', $_start = NULL, $_limit = NULL, $_accountClass = 'Tinebase_Model_User');
43     
44     /**
45      * get user by property
46      *
47      * @param   string  $_property
48      * @param   string  $_value
49      * @param   string  $_accountClass  type of model to return
50      * @return  Tinebase_Model_User user
51      */
52     public function getUserByProperty($_property, $_value, $_accountClass = 'Tinebase_Model_User');
53     
54     /**
55      * register plugins
56      * 
57      * @param Tinebase_User_Plugin_Interface $_plugin
58      */
59     public function registerPlugin(Tinebase_User_Plugin_Interface $_plugin);
60     
61     /**
62      * increase bad password counter and store last login failure timestamp if user exists
63      * 
64      * @param string $_loginName
65      * @return  Tinebase_Model_FullUser user
66      */
67     public function setLastLoginFailure($_loginName);
68
69     /**
70      * count user accounts (non-system)
71      *
72      * @return integer
73      */
74     public function countNonSystemUsers();
75 }