0013342: allow to configure default user/admin role names
[tine20] / tine20 / Admin / Setup / Initialize.php
1 <?php
2 /**
3  * Tine 2.0
4  * 
5  * @package     Admin
6  * @license     http://www.gnu.org/licenses/agpl.html AGPL Version 3
7  * @author      Jonas Fischer <j.fischer@metaways.de>
8  * @copyright   Copyright (c) 2008-2009 Metaways Infosystems GmbH (http://www.metaways.de)
9  *
10  */
11
12 /**
13  * Class for Admin initialization
14  * 
15  * @package     Setup
16  */
17 class Admin_Setup_Initialize extends Setup_Initialize
18 {
19     
20     /**
21      * Override method because admin app requires special rights
22      * @see tine20/Setup/Setup_Initialize::createInitialRights($_application)
23      */
24     public static function createInitialRights(Tinebase_Model_Application $_application)
25     {
26         //do not call parent::createInitialRights(); because this app is for admins only
27
28         $roles = Tinebase_Acl_Roles::getInstance();
29         $oldNotesValue = $roles->useNotes(false);
30         $oldModLogValue = $roles->modlogActive(false);
31
32         $adminRoleName = Tinebase_Config::getInstance()->get(Tinebase_Config::DEFAULT_ADMIN_ROLE_NAME);
33         $adminRole = $roles->getRoleByName($adminRoleName);
34         $allRights = Tinebase_Application::getInstance()->getAllRights($_application->getId());
35         foreach ( $allRights as $right ) {
36             $roles->addSingleRight(
37                 $adminRole->getId(), 
38                 $_application->getId(), 
39                 $right
40             );
41         }
42
43         $roles->useNotes($oldNotesValue);
44         $roles->modlogActive($oldModLogValue);
45     }
46 }