ActiveSync - add Json FE remoteResetDevices
[tine20] / tine20 / ActiveSync / Acl / Rights.php
1 <?php
2 /**
3  * Tine 2.0
4  * 
5  * @package     ActiveSync
6  * @subpackage  Acl
7  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
8  * @copyright   Copyright (c) 2015 Metaways Infosystems GmbH (http://www.metaways.de)
9  * @author      Philipp Schüle <p.schuele@metaways.de>
10  * 
11  */
12
13 /**
14  * this class handles the rights for the ActiveSync application
15  * 
16  * a right is always specific to an application and not to a record
17  * examples for rights are: admin, run
18  * 
19  * to add a new right you have to do these 3 steps:
20  * - add a constant for the right
21  * - add the constant to the $addRights in getAllApplicationRights() function
22  * . add getText identifier in getTranslatedRightDescriptions() function
23  * 
24  * @package     ActiveSync
25  * @subpackage  Acl
26  */
27 class ActiveSync_Acl_Rights extends Tinebase_Acl_Rights_Abstract
28 {
29     /**
30      * the right to manage shared contact favorites
31      * 
32      * @staticvar string
33      */
34     const MANAGE_DEVICES = 'manage_devices';
35
36     /**
37      * the right to reset a device to factory state, wiping all data
38      */
39     const RESET_DEVICES = 'reset_devices';
40     
41     /**
42      * holds the instance of the singleton
43      *
44      * @var ActiveSync_Acl_Rights
45      */
46     private static $_instance = NULL;
47     
48     /**
49      * the clone function
50      *
51      * disabled. use the singleton
52      */
53     private function __clone() 
54     {
55     }
56     
57     /**
58      * the constructor
59      *
60      */
61     private function __construct()
62     {
63         
64     }    
65     
66     /**
67      * the singleton pattern
68      *
69      * @return ActiveSync_Acl_Rights
70      */
71     public static function getInstance() 
72     {
73         if (self::$_instance === NULL) {
74             self::$_instance = new ActiveSync_Acl_Rights;
75         }
76         
77         return self::$_instance;
78     }
79     
80     /**
81      * get all possible application rights
82      *
83      * @return  array   all application rights
84      */
85     public function getAllApplicationRights()
86     {
87         
88         $allRights = parent::getAllApplicationRights();
89         
90         $addRights = array(
91             self::MANAGE_DEVICES,
92             self::RESET_DEVICES,
93         );
94         $allRights = array_merge($allRights, $addRights);
95         
96         return $allRights;
97     }
98
99     /**
100      * get translated right descriptions
101      * 
102      * @return  array with translated descriptions for this applications rights
103      */
104     public static function getTranslatedRightDescriptions()
105     {
106         $translate = Tinebase_Translation::getTranslation('ActiveSync');
107         
108         $rightDescriptions = array(
109             self::MANAGE_DEVICES => array(
110                 'text'          => $translate->_('Manage ActiveSync devices'),
111                 'description'   => $translate->_('See, edit and delete ActiveSync devices'),
112             ),
113             self::RESET_DEVICES => array(
114                 'text'          => $translate->_('Reset ActiveSync devices'),
115                 'description'   => $translate->_('Remotely reset ActiveSync devices to factory state, deleting all data'),
116             )
117         );
118         
119         $rightDescriptions = array_merge($rightDescriptions, parent::getTranslatedRightDescriptions());
120         return $rightDescriptions;
121     }
122 }