-----
====== Adjusting the rights of a role ======
===== Introduction =====
* RADIUSdesk allows the admin of a cloud to be in one of three possible roles.
* Admin
* Operator
* View
* The rights of the admin is dictated by the role they are in.
* This document will cover the technical details of RBA in CakePHP and also how to manage the rights for each role.
-----------------
===== RBA in CakePHP =====
* Each controller in CakePHP has various methods that are called.
* These methods are recorded in a config file with the convention **Rba** + contoller name + **.php**.
* Refer to the RbaPermanentUsers.php here:
['*'],
'view' => [
'exportCsv',
'index',
//'add',
//'import',
//'delete',
'viewBasicInfo',
//'editBasicInfo',
'viewPersonalInfo',
//'editPersonalInfo',
'privateAttrIndex',
//'privateAttrAdd',
//'privateAttrEdit',
//'privateAttrDelete',
//'restrictListOfDevices',
//'autoMacOnOff',
'viewPassword',
//'changePassword',
//'emailUserDetails',
'enableDisable',
//Buttons
//'btnRadius',
//'btnGraph',
//'btnByod',
//'btnTopup',
],
'granular' => [
'exportCsv',
'index',
'add',
'import',
'delete',
'viewBasicInfo',
'editBasicInfo',
'viewPersonalInfo',
'editPersonalInfo',
'privateAttrIndex',
'privateAttrAdd',
'privateAttrEdit',
'privateAttrDelete',
'restrictListOfDevices',
'autoMacOnOff',
'viewPassword',
'changePassword',
'emailUserDetails',
'enableDisable',
//Buttons
'btnRadius',
'btnGraph',
'btnByod',
'btnTopup',
],
'logActions' => true, //Flag to set if we want to actions logged
'logExcludes' => [
'index'
]
];
return $config;
?>
* The file returns an array called **$config** with a key that matches the filename without **.php**.
* In our sample it is **RbaPermanentUsers**.
* The value of this key in turn contains an array with the following keys:
- **admin**: Typically contains a wildcard array.
- **view**: Contains an array with all the methods / actions in the controller you want to apply RBA to. Some might be commented out to show they are not available to the **view** role.
- **granular**: Contains an array with all the methods / actions in the controller you want to apply RBA to. Some might be commented out to show they are not available to the **operator** role.
- **logActions**: Specify if actions on this controller needs to be recorded in a log.
- **logExcludes**: Specify which actions should be excluded from the log records.
----------------
==== Special entries 'btn' ====
* You might have noticed there are entries under a heading **Buttons**.
* These are special entries that are uses to show or hide certain buttons on the applet for an admin role.
* If for instance you do not want to show the Topup button, you can simply comment that entry out.
* The Topup button will then not be included.
--------------
===== Components involved with RBA =====
==== AaComponent ====
* The AaComponent will check if there is a RBA config file and then apply any restrictions on the role that needs to be applied with a informative error message.
--------------
==== GridButtonsRbaComponent ====
* The GridButtonsRbaComponent will check if there is a RBA config file and use that to construct the buttons on the applet's toolbar.