/**
  * 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.");
 }
Exemple #2
0
 /**
  * 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];
 }