当前位置: 首页>>代码示例>>PHP>>正文


PHP ACLAction类代码示例

本文整理汇总了PHP中ACLAction的典型用法代码示例。如果您正苦于以下问题:PHP ACLAction类的具体用法?PHP ACLAction怎么用?PHP ACLAction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ACLAction类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: template_pagination

function template_pagination(&$args)
{
    $smarty = new Sugar_Smarty();
    $reporter = $args['reporter'];
    global $mod_strings;
    // disable export if configured to
    global $current_user, $sugar_config, $app_strings;
    $smarty->assign('mod_strings', $mod_strings);
    $smarty->assign('app_strings', $app_strings);
    $is_owner = true;
    if (isset($args['reporter']->saved_report) && $args['reporter']->saved_report->assigned_user_id != $current_user->id) {
        $is_owner = false;
    }
    // if
    $isExportAccess = false;
    if (!ACLController::checkAccess('Reports', 'export', $is_owner) || $sugar_config['disable_export'] || !empty($sugar_config['admin_export_only']) && !(is_admin($current_user) || ACLController::moduleSupportsACL($reporter->module) && ACLAction::getUserAccessLevel($current_user->id, $reporter->module, 'access') == ACL_ALLOW_ENABLED && ACLAction::getUserAccessLevel($current_user->id, $reporter->module, 'admin') == ACL_ALLOW_ADMIN)) {
        // no op
    } else {
        $smarty->assign('exportImagePath', SugarThemeRegistry::current()->getImage('export', "  border='0' align='absmiddle'", null, null, '.gif', translate('LBL_EXPORT')));
        $isExportAccess = true;
    }
    // else
    $smarty->assign('isExportAccess', $isExportAccess);
    $smarty->assign('start_link_ImagePath', SugarThemeRegistry::current()->getImage("start_off", "  border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_START']));
    $smarty->assign('prev_link_ImagePath', SugarThemeRegistry::current()->getImage("previous_off", "border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_PREVIOUS']));
    $smarty->assign('end_link_ImagePath', SugarThemeRegistry::current()->getImage("end_off", "border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_END']));
    $smarty->assign('next_link_ImagePath', SugarThemeRegistry::current()->getImage("next_off", "border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_NEXT']));
    $smarty->assign('start_link_disabled', true);
    $smarty->assign('prev_link_disabled', true);
    $smarty->assign('end_link_disabled', true);
    $smarty->assign('next_link_disabled', true);
    $next = $reporter->row_end + $reporter->report_offset;
    if ($reporter->report_offset > 0) {
        $prev = $reporter->report_offset - $reporter->report_max;
        $smarty->assign('start_link_ImagePath', SugarThemeRegistry::current()->getImage("start", "  border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_START']));
        $smarty->assign('start_link_onclick', "onClick=javascript:set_offset(0);");
        $smarty->assign('start_link_disabled', false);
        $smarty->assign('prev_link_ImagePath', SugarThemeRegistry::current()->getImage("previous", "border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_PREVIOUS']));
        $smarty->assign('prev_link_onclick', "onClick=javascript:set_offset({$prev});");
        $smarty->assign('prev_link_disabled', false);
    }
    // if
    if ($next < $reporter->total_count) {
        $end = ceil($reporter->total_count / $reporter->report_max - 1) * $reporter->report_max;
        $smarty->assign('end_link_ImagePath', SugarThemeRegistry::current()->getImage("end", "  border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_END']));
        $smarty->assign('end_link_disabled', false);
        $smarty->assign('end_link_onclick', "onClick=javascript:set_offset({$end});");
        $smarty->assign('next_link_ImagePath', SugarThemeRegistry::current()->getImage("next", " border='0' align='absmiddle'", null, null, '.gif', $app_strings['LNK_LIST_NEXT']));
        $smarty->assign('next_link_disabled', false);
        $smarty->assign('next_link_onclick', "onClick=javascript:set_offset({$next});");
    }
    // if
    $start_range = $reporter->report_offset > 0 ? $reporter->row_start + $reporter->report_offset : ($reporter->total_count == 0 ? 0 : 1);
    $end_range = $reporter->row_end + $reporter->report_offset;
    $smarty->assign('start_range', $start_range);
    $smarty->assign('end_range', $end_range);
    $smarty->assign('total_count', $reporter->total_count);
    return $smarty->fetch("modules/Reports/templates/_template_pagination.tpl");
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:59,代码来源:templates_list_view.php

示例2: run

 public function run()
 {
     if (!$this->toFlavor('pro')) {
         return;
     }
     // add User field in Role
     include_once "modules/ACLActions/ACLAction.php";
     ACLAction::addActions('Users', 'module');
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:9,代码来源:3_AddUserActions.php

示例3: export

 /**
  * Export API
  *
  * @param $api ServiceBase The API class of the request, used in cases where the API changes how the fields are pulled from the args array.
  * @param $args array The arguments array passed in from the API
  * @return String
  */
 public function export(ServiceBase $api, array $args)
 {
     $seed = BeanFactory::newBean($args['module']);
     if (!$seed->ACLAccess('export')) {
         throw new SugarApiExceptionNotAuthorized($GLOBALS['app_strings']['ERR_EXPORT_DISABLED']);
     }
     ob_start();
     global $sugar_config;
     global $current_user;
     global $app_list_strings;
     $theModule = clean_string($args['module']);
     if ($sugar_config['disable_export'] || !empty($sugar_config['admin_export_only']) && !(is_admin($current_user) || ACLController::moduleSupportsACL($theModule) && ACLAction::getUserAccessLevel($current_user->id, $theModule, 'access') == ACL_ALLOW_ENABLED && (ACLAction::getUserAccessLevel($current_user->id, $theModule, 'admin') == ACL_ALLOW_ADMIN || ACLAction::getUserAccessLevel($current_user->id, $theModule, 'admin') == ACL_ALLOW_ADMIN_DEV))) {
         throw new SugarApiExceptionNotAuthorized($GLOBALS['app_strings']['ERR_EXPORT_DISABLED']);
     }
     //check to see if this is a request for a sample or for a regular export
     if (!empty($args['sample'])) {
         //call special method that will create dummy data for bean as well as insert standard help message.
         $content = exportSampleFromApi($args);
     } else {
         $content = exportFromApi($args);
     }
     $filename = $args['module'];
     //use label if one is defined
     if (!empty($app_list_strings['moduleList'][$args['module']])) {
         $filename = $app_list_strings['moduleList'][$args['module']];
     }
     //strip away any blank spaces
     $filename = str_replace(' ', '', $filename);
     if (isset($args['members']) && $args['members'] == true) {
         $filename .= '_' . 'members';
     }
     ///////////////////////////////////////////////////////////////////////////////
     ////	BUILD THE EXPORT FILE
     ob_end_clean();
     return $this->doExport($api, $filename, $content);
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:43,代码来源:ExportApi.php

示例4: _getModulesForACL

 /**
  * Helper function that enumerates the list of modules and checks if they are an admin/dev.
  * The code was just too similar to copy and paste.
  *
  * @return array
  */
 protected function _getModulesForACL($type = 'dev')
 {
     $isDev = $type == 'dev';
     $isAdmin = $type == 'admin';
     global $beanList;
     $myModules = array();
     if (!is_array($beanList)) {
         return $myModules;
     }
     // These modules don't take kindly to the studio trying to play about with them.
     static $ignoredModuleList = array('iFrames', 'Feeds', 'Home', 'Dashboard', 'Calendar', 'Activities', 'Reports');
     $actions = ACLAction::getUserActions($this->id);
     foreach ($beanList as $module => $val) {
         // Remap the module name
         $module = $this->_fixupModuleForACL($module);
         if (in_array($module, $myModules)) {
             // Already have the module in the list
             continue;
         }
         if (in_array($module, $ignoredModuleList)) {
             // You can't develop on these modules.
             continue;
         }
         $key = 'module';
         if ($this->isAdmin() && isset($actions[$module][$key])) {
             $myModules[] = $module;
         }
     }
     return $myModules;
 }
开发者ID:netconstructor,项目名称:sugarcrm_dev,代码行数:36,代码来源:User.php

示例5: process

 function process($lvsParams = array())
 {
     global $current_user;
     $currentSearchFields = array();
     $configureView = true;
     // configure view or regular view
     $query = false;
     $whereArray = array();
     $lvsParams['massupdate'] = false;
     // apply filters
     if (isset($this->filters) || $this->myItemsOnly) {
         $whereArray = $this->buildWhere();
     }
     $this->lvs->export = false;
     $this->lvs->multiSelect = false;
     $this->lvs->quickViewLinks = false;
     // columns
     foreach ($this->columns as $name => $val) {
         if (!empty($val['default']) && $val['default']) {
             $displayColumns[strtoupper($name)] = $val;
             $displayColumns[strtoupper($name)]['label'] = trim($displayColumns[strtoupper($name)]['label'], ':');
         }
     }
     $this->lvs->displayColumns = $displayColumns;
     $this->lvs->lvd->setVariableName($this->seedBean->object_name, array());
     $lvsParams['overrideOrder'] = true;
     $lvsParams['orderBy'] = 'date_entered';
     $lvsParams['sortOrder'] = 'DESC';
     $lvsParams['custom_from'] = '';
     // Get the real module list
     if (empty($this->selectedCategories)) {
         $mod_list = $this->categories;
     } else {
         $mod_list = array_flip($this->selectedCategories);
         //27949, here the key of $this->selectedCategories is not module name, the value is module name, so array_flip it.
     }
     $external_modules = array();
     $admin_modules = array();
     $owner_modules = array();
     $regular_modules = array();
     foreach ($mod_list as $module => $ignore) {
         // Handle the UserFeed differently
         if ($module == 'UserFeed') {
             $regular_modules[] = 'UserFeed';
             continue;
         }
         if (in_array($module, $this->externalAPIList)) {
             $external_modules[] = $module;
         }
         if (ACLAction::getUserAccessLevel($current_user->id, $module, 'view') <= ACL_ALLOW_NONE) {
             // Not enough access to view any records, don't add it to any lists
             continue;
         }
         if (ACLAction::getUserAccessLevel($current_user->id, $module, 'view') == ACL_ALLOW_OWNER) {
             $owner_modules[] = $module;
         } else {
             $regular_modules[] = $module;
         }
     }
     if (!empty($this->displayTpl)) {
         //MFH BUG #14296
         $where = '';
         if (!empty($whereArray)) {
             $where = '(' . implode(') AND (', $whereArray) . ')';
         }
         $additional_where = '';
         $module_limiter = " sugarfeed.related_module in ('" . implode("','", $regular_modules) . "')";
         if (is_admin($GLOBALS['current_user'])) {
             $all_modules = array_merge($regular_modules, $owner_modules, $admin_modules);
             $module_limiter = " sugarfeed.related_module in ('" . implode("','", $all_modules) . "')";
         } else {
             if (count($owner_modules) > 0) {
                 $module_limiter = " ((sugarfeed.related_module IN ('" . implode("','", $regular_modules) . "') " . ") ";
                 if (count($owner_modules) > 0) {
                     $module_limiter .= "OR (sugarfeed.related_module IN('" . implode("','", $owner_modules) . "') AND sugarfeed.assigned_user_id = '" . $current_user->id . "' " . ") ";
                 }
                 $module_limiter .= ")";
             }
         }
         if (!empty($where)) {
             $where .= ' AND ';
         }
         $where .= $module_limiter;
         $this->lvs->setup($this->seedBean, $this->displayTpl, $where, $lvsParams, 0, $this->displayRows, array('name', 'description', 'date_entered', 'created_by', 'related_module', 'link_url', 'link_type'));
         foreach ($this->lvs->data['data'] as $row => $data) {
             $this->lvs->data['data'][$row]['NAME'] = str_replace("{this.CREATED_BY}", get_assigned_user_name($this->lvs->data['data'][$row]['CREATED_BY']), $data['NAME']);
             //Translate the SugarFeeds labels if necessary.
             preg_match('/\\{([^\\^ }]+)\\.([^\\}]+)\\}/', $this->lvs->data['data'][$row]['NAME'], $modStringMatches);
             if (count($modStringMatches) == 3 && $modStringMatches[1] == 'SugarFeed' && !empty($data['RELATED_MODULE'])) {
                 $modKey = $modStringMatches[2];
                 $modString = translate($modKey, $modStringMatches[1]);
                 if (strpos($modString, '{0}') === FALSE || !isset($GLOBALS['app_list_strings']['moduleListSingular'][$data['RELATED_MODULE']])) {
                     continue;
                 }
                 $modStringSingular = $GLOBALS['app_list_strings']['moduleListSingular'][$data['RELATED_MODULE']];
                 $modString = string_format($modString, array($modStringSingular));
                 $this->lvs->data['data'][$row]['NAME'] = preg_replace('/' . $modStringMatches[0] . '/', strtolower($modString), $this->lvs->data['data'][$row]['NAME']);
             }
         }
         // assign a baseURL w/ the action set as DisplayDashlet
//.........这里部分代码省略.........
开发者ID:netconstructor,项目名称:sugarcrm_dev,代码行数:101,代码来源:SugarFeedDashlet.php

示例6: getRoleActions

 /**
  * static getRoleActions($role_id)
  *
  * gets the actions of a given role
  *
  * @param GUID $role_id
  *
  * @return array of actions
  */
 function getRoleActions($role_id, $type = 'module')
 {
     global $beanList;
     //if we don't have it loaded then lets check against the db
     $additional_where = '';
     $db = DBManagerFactory::getInstance();
     $query = "SELECT acl_actions.*";
     //only if we have a role id do we need to join the table otherwise lets use the ones defined in acl_actions as the defaults
     if (!empty($role_id)) {
         $query .= " ,acl_roles_actions.access_override ";
     }
     $query .= " FROM acl_actions ";
     if (!empty($role_id)) {
         $query .= " LEFT JOIN acl_roles_actions ON acl_roles_actions.role_id = '{$role_id}' AND  acl_roles_actions.action_id = acl_actions.id AND acl_roles_actions.deleted = 0";
     }
     $query .= " WHERE acl_actions.deleted=0 ORDER BY acl_actions.category, acl_actions.name";
     $result = $db->query($query);
     $role_actions = [];
     while ($row = $db->fetchByAssoc($result)) {
         $action = new ACLAction();
         $action->populateFromRow($row);
         if (!empty($row['access_override'])) {
             $action->aclaccess = $row['access_override'];
         } else {
             $action->aclaccess = ACL_ALLOW_DEFAULT;
         }
         //#27877 . If  there is no this module in beanlist , we will not show them in UI, no matter this module was deleted or not in ACL_ACTIONS table.
         if (empty($beanList[$action->category])) {
             continue;
         }
         //end
         if (!isset($role_actions[$action->category])) {
             $role_actions[$action->category] = [];
         }
         $role_actions[$action->category][$action->acltype][$action->name] = $action->toArray();
     }
     // Sort by translated categories
     uksort($role_actions, "ACLRole::langCompare");
     return $role_actions;
 }
开发者ID:butschster,项目名称:sugarcrm_dev,代码行数:49,代码来源:ACLRole.php

示例7: get_user_module_list

 function get_user_module_list($user)
 {
     $GLOBALS['log']->info('Begin: SoapHelperWebServices->get_user_module_list');
     global $app_list_strings, $current_language;
     $app_list_strings = return_app_list_strings_language($current_language);
     $modules = query_module_access_list($user);
     ACLController::filterModuleList($modules, false);
     global $modInvisList, $modInvisListActivities;
     foreach ($modInvisList as $invis) {
         $modules[$invis] = 'read_only';
     }
     if (isset($modules['Calendar']) || $modules['Activities']) {
         foreach ($modInvisListActivities as $invis) {
             $modules[$invis] = $invis;
         }
     }
     $actions = ACLAction::getUserActions($user->id, true);
     foreach ($actions as $key => $value) {
         if (isset($value['module']) && $value['module']['access']['aclaccess'] < ACL_ALLOW_ENABLED) {
             if ($value['module']['access']['aclaccess'] == ACL_ALLOW_DISABLED) {
                 unset($modules[$key]);
             } else {
                 $modules[$key] = 'read_only';
             }
             // else
         } else {
             $modules[$key] = '';
         }
         // else
     }
     // foreach
     $GLOBALS['log']->info('End: SoapHelperWebServices->get_user_module_list');
     return $modules;
 }
开发者ID:aldridged,项目名称:gtg-sugar,代码行数:34,代码来源:SoapHelperWebService.php

示例8: get_user_module_list

function get_user_module_list($user)
{
    global $app_list_strings, $current_language, $beanList, $beanFiles;
    $app_list_strings = return_app_list_strings_language($current_language);
    $modules = query_module_access_list($user);
    ACLController::filterModuleList($modules, false);
    global $modInvisList;
    foreach ($modInvisList as $invis) {
        $modules[$invis] = 'read_only';
    }
    $actions = ACLAction::getUserActions($user->id, true);
    foreach ($actions as $key => $value) {
        if (isset($value['module']) && $value['module']['access']['aclaccess'] < ACL_ALLOW_ENABLED) {
            if ($value['module']['access']['aclaccess'] == ACL_ALLOW_DISABLED) {
                unset($modules[$key]);
            } else {
                $modules[$key] = 'read_only';
            }
            // else
        } else {
            $modules[$key] = '';
        }
        // else
    }
    // foreach
    //Remove all modules that don't have a beanFiles entry associated with it
    foreach ($modules as $module_name => $module) {
        if (isset($beanList[$module_name])) {
            $class_name = $beanList[$module_name];
            if (empty($beanFiles[$class_name])) {
                unset($modules[$module_name]);
            }
        } else {
            unset($modules[$module_name]);
        }
    }
    return $modules;
}
开发者ID:butschster,项目名称:sugarcrm_dev,代码行数:38,代码来源:SoapHelperFunctions.php

示例9: disabledModuleList

 function disabledModuleList($moduleList, $by_value = true, $view = 'list')
 {
     global $aclModuleList, $current_user;
     if (is_admin($GLOBALS['current_user'])) {
         return array();
     }
     $actions = ACLAction::getUserActions($current_user->id, false);
     $disabled = array();
     $compList = array();
     if ($by_value) {
         foreach ($moduleList as $key => $value) {
             $compList[$value] = $key;
         }
     } else {
         $compList =& $moduleList;
     }
     if (isset($moduleList['ProductTemplates'])) {
         $moduleList['Products'] = 'Products';
     }
     foreach ($actions as $action_name => $action) {
         if (!empty($action['module'])) {
             $aclModuleList[$action_name] = $action_name;
             if (isset($compList[$action_name])) {
                 if ($action['module']['access']['aclaccess'] < ACL_ALLOW_ENABLED || $action['module'][$view]['aclaccess'] < 0) {
                     if ($by_value) {
                         $disabled[$compList[$action_name]] = $compList[$action_name];
                     } else {
                         $disabled[$action_name] = $action_name;
                     }
                 }
             }
         }
     }
     if (isset($compList['Calendar']) && !(ACL_ALLOW_ENABLED == $actions['Calls']['module']['access']['aclaccess'] || ACL_ALLOW_ENABLED == $actions['Meetings']['module']['access']['aclaccess'] || ACL_ALLOW_ENABLED == $actions['Tasks']['module']['access']['aclaccess'])) {
         if ($by_value) {
             $disabled[$compList['Calendar']] = $compList['Calendar'];
         } else {
             $disabled['Calendar'] = 'Calendar';
         }
         if (isset($compList['Activities']) && !(ACL_ALLOW_ENABLED == $actions['Notes']['module']['access']['aclaccess'] || ACL_ALLOW_ENABLED == $actions['Notes']['module']['access']['aclaccess'])) {
             if ($by_value) {
                 $disabled[$compList['Activities']] = $compList['Activities'];
             } else {
                 $disabled['Activities'] = 'Activities';
             }
         }
     }
     if (isset($disabled['Products'])) {
         $disabled['ProductTemplates'] = 'ProductTemplates';
     }
     return $disabled;
 }
开发者ID:nickpro,项目名称:sugarcrm_dev,代码行数:52,代码来源:ACLController.php

示例10: create_tables

 /** create the appropriate database tables for this bean */
 function create_tables()
 {
     global $dictionary;
     $key = $this->getObjectName();
     if (!array_key_exists($key, $dictionary)) {
         $GLOBALS['log']->fatal("create_tables: Metadata for table " . $this->table_name . " does not exist");
         display_notice("meta data absent for table " . $this->table_name . " keyed to {$key} ");
     } else {
         if (!$this->db->tableExists($this->table_name)) {
             $this->dbManager->createTable($this);
             if ($this->bean_implements('ACL')) {
                 ACLAction::addActions($this->module_dir);
             }
         } else {
             echo "Table Already Exists : {$this->table_name}<br>";
         }
     }
 }
开发者ID:BackupTheBerlios,项目名称:livealphaprint,代码行数:19,代码来源:SugarBean.php

示例11: getUserAccess

 /**
  * Get user access for the list of actions
  * @param string $module
  * @param array $access_list List of actions
  * @returns array - List of access levels. Access levels not returned are assumed to be "all allowed".
  */
 public function getUserAccess($module, $access_list, $context)
 {
     $user = $this->getCurrentUser($context);
     if (empty($user) || empty($user->id) || is_admin($user)) {
         // no user or admin - do nothing
         return $access_list;
     }
     $is_owner = !(isset($context['owner_override']) && $context['owner_override'] == false);
     if (isset(self::$non_module_acls[$module])) {
         $level = self::$non_module_acls[$module];
     } else {
         $level = 'module';
     }
     $actions = ACLAction::getUserActions($user->id, false, $module, $level);
     if (empty($actions)) {
         return $access_list;
     }
     // default implementation, specific ACLs can override
     $access = $access_list;
     // check 'access' first - if it's false all others will be false
     if (isset($access_list['access'])) {
         if (!ACLAction::userHasAccess($user->id, $module, 'access', $level, true)) {
             foreach ($access_list as $action => $value) {
                 $access[$action] = false;
             }
             return $access;
         }
         // no need to check it second time
         unset($access_list['access']);
     }
     foreach ($access_list as $action => $value) {
         // may have the bean, so we need to use checkAccess
         if (!$this->checkAccess($module, $action, $context) || isset($actions[$action]['aclaccess']) && !ACLAction::hasAccess($is_owner, $actions[$action]['aclaccess'])) {
             $access[$action] = false;
         }
     }
     return $access;
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:44,代码来源:SugarACLStatic.php

示例12: create_tables

 /**
  * create_tables
  * Override this method to insert ACLActions for the tracker beans
  *
  */
 function create_tables()
 {
     $path = 'modules/Trackers/config.php';
     if (defined('TEMPLATE_URL')) {
         $path = SugarTemplateUtilities::getFilePath($path);
     }
     require $path;
     foreach ($tracker_config as $key => $configEntry) {
         if (isset($configEntry['bean']) && $configEntry['bean'] != 'Tracker') {
             $bean = new $configEntry['bean']();
             if ($bean->bean_implements('ACL')) {
                 ACLAction::addActions($bean->module_dir, $configEntry['bean']);
             }
         }
     }
     parent::create_tables();
 }
开发者ID:nerdystudmuffin,项目名称:dashlet-subpanels,代码行数:22,代码来源:Tracker.php

示例13: get_workflow_admin_modules_for_user

function get_workflow_admin_modules_for_user($user)
{
    /* Workflow modules blacklist */
    $workflowNotSupportedModules = array('iFrames', 'Feeds', 'Home', 'Dashboard', 'Calendar', 'Activities', 'Reports', 'pmse_Business_Rules', 'pmse_Project', 'pmse_Emails_Templates', 'pmse_Inbox');
    if (isset($_SESSION['get_workflow_admin_modules_for_user'])) {
        return $_SESSION['get_workflow_admin_modules_for_user'];
    }
    global $moduleList;
    $workflow_mod_list = array();
    foreach ($moduleList as $module) {
        $workflow_mod_list[$module] = $module;
    }
    // This list is taken from teh previous version of workflow_utils.php
    $workflow_mod_list['Tasks'] = "Tasks";
    $workflow_mod_list['Calls'] = "Calls";
    $workflow_mod_list['Meetings'] = "Meetings";
    $workflow_mod_list['Notes'] = "Notes";
    $workflow_mod_list['ProjectTask'] = "Project Tasks";
    $workflow_mod_list['Leads'] = "Leads";
    $workflow_mod_list['Opportunities'] = "Opportunities";
    // End of list
    $workflow_admin_modules = array();
    if (empty($user)) {
        return $workflow_admin_modules;
    }
    $actions = ACLAction::getUserActions($user->id);
    foreach ($workflow_mod_list as $key => $val) {
        if (!in_array($val, $workflow_admin_modules) && !in_array($val, $workflowNotSupportedModules) && $user->isDeveloperForModule($key)) {
            $workflow_admin_modules[$key] = $val;
        }
    }
    $_SESSION['get_workflow_admin_modules_for_user'] = $workflow_admin_modules;
    return $workflow_admin_modules;
}
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:34,代码来源:utils.php

示例14: fixRevenueLineItemModule

 /**
  * 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;
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:42,代码来源:OpportunityWithOutRevenueLineItem.php

示例15: action_DeployPackage

 function action_DeployPackage()
 {
     global $current_user;
     if (defined('TEMPLATE_URL')) {
         sugar_cache_reset();
         SugarTemplateUtilities::disableCache();
     }
     //increment etag for menu so the new module shows up when the AJAX UI reloads
     $current_user->incrementETag("mainMenuETag");
     $mb = new ModuleBuilder();
     $load = $_REQUEST['package'];
     $message = $GLOBALS['mod_strings']['LBL_MODULE_DEPLOYED'];
     if (!empty($load)) {
         $zip = $mb->getPackage($load);
         require_once 'ModuleInstall/PackageManager/PackageManager.php';
         $pm = new PackageManager();
         $info = $mb->packages[$load]->build(false);
         $uploadDir = $pm->upload_dir . '/upgrades/module/';
         mkdir_recursive($uploadDir);
         rename($info['zip'], $uploadDir . $info['name'] . '.zip');
         copy($info['manifest'], $uploadDir . $info['name'] . '-manifest.php');
         $_REQUEST['install_file'] = $uploadDir . $info['name'] . '.zip';
         $GLOBALS['mi_remove_tables'] = false;
         $pm->performUninstall($load);
         //#23177 , js cache clear
         clearAllJsAndJsLangFilesWithoutOutput();
         //#30747, clear the cache in memory
         $cache_key = 'app_list_strings.' . $GLOBALS['current_language'];
         sugar_cache_clear($cache_key);
         sugar_cache_reset();
         //clear end
         $pm->performInstall($_REQUEST['install_file'], true);
         //clear the unified_search_module.php file
         require_once 'modules/Home/UnifiedSearchAdvanced.php';
         UnifiedSearchAdvanced::unlinkUnifiedSearchModulesFile();
         //bug 44269 - start
         //clear workflow admin modules cache
         if (isset($_SESSION['get_workflow_admin_modules_for_user'])) {
             unset($_SESSION['get_workflow_admin_modules_for_user']);
         }
         //clear "is_admin_for_module" cache
         $sessionVar = 'MLA_' . $current_user->user_name;
         foreach ($mb->packages as $package) {
             foreach ($package->modules as $module) {
                 $_SESSION[$sessionVar][$package->name . '_' . $module->name] = true;
             }
         }
         //recreate acl cache
         $actions = ACLAction::getUserActions($current_user->id, true);
         //bug 44269 - end
     }
     echo 'complete';
 }
开发者ID:butschster,项目名称:sugarcrm_dev,代码行数:53,代码来源:controller.php


注:本文中的ACLAction类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。