/** * Sets up necessary visibility for a client. Not all clients will set this * * @return void */ public function setupVisibility() { // Add the necessary visibility and acl classes to the default bean list require_once 'modules/ACL/SugarACLSupportPortal.php'; $default_acls = SugarBean::getDefaultACL(); // This one overrides the Static ACL's, so disable that unset($default_acls['SugarACLStatic']); $default_acls['SugarACLStatic'] = false; $default_acls['SugarACLSupportPortal'] = true; SugarBean::setDefaultACL($default_acls); SugarACL::resetACLs(); $default_visibility = SugarBean::getDefaultVisibility(); $default_visibility['SupportPortalVisibility'] = true; SugarBean::setDefaultVisibility($default_visibility); $GLOBALS['log']->debug("Added SupportPortalVisibility to session."); }
/** * Load ACLs for module * @param string $module * @param array $context * @return array ACLs list */ public static function loadACLs($module, $context = array()) { if (!isset(self::$acls[$module])) { self::$acls[$module] = array(); $name = BeanFactory::getObjectName($module); if (!isset($GLOBALS['dictionary'][$name])) { if (empty($name) || empty($GLOBALS['beanList'][$module]) || empty($GLOBALS['beanFiles'][$GLOBALS['beanList'][$module]]) || in_array($module, array('Empty'))) { // try to weed out non-bean modules - these can't have ACLs as they don't have vardefs to keep them $GLOBALS['log']->debug("Non-bean {$module} - no ACL for you!"); return array(); } VardefManager::loadVardef($module, $name); } $acl_list = isset($GLOBALS['dictionary'][$name]['acls']) ? $GLOBALS['dictionary'][$name]['acls'] : array(); $acl_list = array_merge($acl_list, SugarBean::getDefaultACL()); $GLOBALS['log']->debug("ACLS for {$module}: " . var_export($acl_list, true)); foreach ($acl_list as $klass => $args) { if ($args === false) { continue; } self::$acls[$module][] = new $klass($args); } } return self::$acls[$module]; }