예제 #1
0
 public function testgetRoleActions()
 {
     $aclRole = new ACLRole();
     //test with empty value
     $result = $aclRole->getRoleActions('');
     $this->assertTrue(is_array($result));
     $this->assertEquals(53, count($result));
     //test with non empty but non existing role id value, initially no roles exist.
     $result = $aclRole->getRoleActions('1');
     $this->assertTrue(is_array($result));
     $this->assertEquals(53, count($result));
 }
예제 #2
0
$role = new ACLRole();
$role_name = '';
$return = array('module' => 'ACLRoles', 'action' => 'index', 'record' => '');
if (!empty($_REQUEST['record'])) {
    $role->retrieve($_REQUEST['record']);
    $categories = ACLRole::getRoleActions($_REQUEST['record']);
    $role_name = $role->name;
    if (!empty($_REQUEST['isDuplicate'])) {
        //role id is stripped here in duplicate so anything using role id after this will not have it
        $role->id = '';
    } else {
        $return['record'] = $role->id;
        $return['action'] = 'DetailView';
    }
} else {
    $categories = ACLRole::getRoleActions('');
}
$sugar_smarty->assign('ROLE', $role->toArray());
$tdwidth = 10;
if (isset($_REQUEST['return_module'])) {
    $return['module'] = $_REQUEST['return_module'];
    if (isset($_REQUEST['return_action'])) {
        $return['action'] = $_REQUEST['return_action'];
    }
    if (isset($_REQUEST['return_record'])) {
        $return['record'] = $_REQUEST['return_record'];
    }
}
$sugar_smarty->assign('RETURN', $return);
$names = ACLAction::setupCategoriesMatrix($categories);
if (!empty($names)) {
$sugar_smarty = new Sugar_Smarty();
$sugar_smarty->assign('MOD', $mod_strings);
$sugar_smarty->assign('APP', $app_strings);
//nsingh bug: 21669. Messes up localization
/*foreach($modInvisList as $modinvisname){
    if(empty($app_list_strings['moduleList'][$modinvisname])){
	   $app_list_strings['moduleList'][$modinvisname] = $modinvisname;
    }
}*/
$sugar_smarty->assign('APP_LIST', $app_list_strings);
/*foreach($modInvisList as $modinvisname){
	unset($app_list_strings['moduleList'][$modinvisname]);
}*/
$role = new ACLRole();
$role->retrieve($_REQUEST['record']);
$categories = ACLRole::getRoleActions($_REQUEST['record']);
$names = ACLAction::setupCategoriesMatrix($categories);
$categories2 = array();
$categories2 = $categories;
$hidden_categories = array("KBDocuments", "Campaigns", "Forecasts", "ForecastSchedule", "Emails", "EmailTemplates", "EmailMarketing", "Reports");
foreach ($hidden_categories as $v) {
    if (isset($categories2[$v])) {
        unset($categories2[$v]);
    }
}
if (!empty($names)) {
    $tdwidth = 100 / sizeof($names);
}
$sugar_smarty->assign('ROLE', $role->toArray());
//xye customization begin
$sugar_smarty->assign("CHECKED", $role->enablesoftphone ? "checked" : "");
예제 #4
0
 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
 * technical reasons, the Appropriate Legal Notices must display the words
 * "Powered by SugarCRM".
 ********************************************************************************/
$role = new ACLRole();
if (isset($_REQUEST['record'])) {
    $role->id = $_POST['record'];
}
if (!empty($_REQUEST['name'])) {
    $role->name = $_POST['name'];
    $role->description = $_POST['description'];
    $role->save();
    //if duplicate
    if (isset($_REQUEST['isduplicate']) && !empty($_REQUEST['isduplicate'])) {
        //duplicate actions
        $role_actions = $role->getRoleActions($_REQUEST['isduplicate']);
        foreach ($role_actions as $module) {
            foreach ($module as $type) {
                foreach ($type as $act) {
                    $role->setAction($role->id, $act['id'], $act['aclaccess']);
                }
            }
        }
    }
} else {
    ob_clean();
    $flc_module = 'All';
    foreach ($_POST as $name => $value) {
        if (substr_count($name, 'act_guid') > 0) {
            $name = str_replace('act_guid', '', $name);
            $role->setAction($role->id, $name, $value);
$aclrole->setAction($aclrole->id, $action_results['Contacts']['delete']['id'], ACL_ALLOW_ALL);
$action_results = ACLAction::getUserActions('will_id', true);
echo 'Actions Peon role for will<br>';
foreach ($action_results as $category_name => $category) {
    foreach ($category as $action_name => $action) {
        _pp($category_name . ':' . $action_name . ':' . acl_translate($action['access']));
    }
}
echo 'Will is a bad peon user<br>';
echo 'Create a role for Bad Peon Users<br>';
$aclrole = new ACLRole();
$aclrole->name = 'Bad Peon User';
$aclrole->description = 'The Bad Peon Role For All Bad Peons';
$aclrole->user_id = 'will_id';
$aclrole->save();
echo 'No Bad Peon user should have access to contacts <br>';
foreach ($action_results['Contacts'] as $action) {
    $aclrole->setAction($aclrole->id, $action['id'], ACL_ALLOW_NONE);
}
$action_results = ACLAction::getUserActions('will_id', true);
echo 'Actions Peon role for will<br>';
foreach ($action_results as $category_name => $category) {
    foreach ($category as $action_name => $action) {
        _pp($category_name . ':' . $action_name . ':' . acl_translate($action['access']));
    }
}
echo 'PRINTING THE ACTIONS for a role <br>';
$role_actions = ACLRole::getRoleActions($aclrole->id);
_pp($role_actions);
echo 'PRINTING THE SESSION CACHE FOR ACL <br>';
_PP($_SESSION['ACL']);