Пример #1
0
 public function testremoveActions()
 {
     //take count of actions initially and then after method execution and test if action count decreases
     $action_count = count(ACLAction::getDefaultActions());
     ACLAction::removeActions('Test');
     $actual = ACLAction::getDefaultActions();
     $this->assertLessThan($action_count, count($actual));
 }
Пример #2
0
 * 
 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
 * 
 * The interactive user interfaces in modified source and object code versions
 * of this program must display Appropriate Legal Notices, as required under
 * Section 5 of the GNU Affero General Public License version 3.
 * 
 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
 * these Appropriate Legal Notices must retain the display of the "Powered by
 * 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".
 ********************************************************************************/
global $current_user, $beanList, $beanFiles;
$actionarr = ACLAction::getDefaultActions();
if (is_admin($current_user)) {
    $foundOne = false;
    foreach ($actionarr as $actionobj) {
        if (!isset($beanList[$actionobj->category]) || !file_exists($beanFiles[$beanList[$actionobj->category]])) {
            if (!isset($_REQUEST['upgradeWizard'])) {
                echo 'Removing for ' . $actionobj->category . '<br>';
            }
            $foundOne = true;
            ACLAction::removeActions($actionobj->category);
        }
    }
    if (!$foundOne) {
        echo 'No ACL modules found that needed to be removed';
    }
}
 /**
  * Metadata fixes for the RLI Module
  *
  * - Removes the file that shows the RLI Module
  * - Removes the Studio File
  * - Hides the RLI module from the menu bar
  * - Removes the ACL Actions
  */
 protected function fixRevenueLineItemModule()
 {
     // hide the RLI module from the quick create, this needs to be done first, so it's properly removed
     $this->toggleRevenueLineItemQuickCreate(false);
     // cleanup on the current request
     $GLOBALS['modInvisList'][] = 'RevenueLineItems';
     if (isset($GLOBALS['moduleList']) && is_array($GLOBALS['moduleList'])) {
         foreach ($GLOBALS['moduleList'] as $key => $mod) {
             if ($mod === 'RevenueLineItems') {
                 unset($GLOBALS['moduleList'][$key]);
             }
         }
     }
     if (SugarAutoLoader::fileExists($this->appExtFolder . '/Include/' . $this->rliModuleExtFile)) {
         SugarAutoLoader::unlink($this->appExtFolder . '/Include/' . $this->rliModuleExtFile);
     }
     if (SugarAutoLoader::fileExists($this->rliStudioFile)) {
         SugarAutoLoader::unlink($this->rliStudioFile);
     }
     if (SugarAutoLoader::fileExists($this->rliModuleExtFolder . '/Vardefs/' . $this->rliModuleExtVardefFile)) {
         SugarAutoLoader::unlink($this->rliModuleExtFolder . '/Vardefs/' . $this->rliModuleExtVardefFile);
     }
     // hide the RLI module in workflows
     $affected_modules = $this->toggleRevenueLineItemsLinkInWorkFlows(false);
     // hide the mega menu tab
     $this->setRevenueLineItemModuleTab(false);
     // handle the parent type field
     $this->setRevenueLineItemInParentRelateDropDown(false);
     // disable the ACLs on RevenueLineItems
     ACLAction::removeActions('RevenueLineItems');
     // add the RLI module
     $affected_modules[] = 'RevenueLineItems';
     return $affected_modules;
 }