Beispiel #1
0
 public static function init($config = array())
 {
     if (self::$_initialized) {
         return;
     }
     self::$_loadedConfig = $config;
     if (array_key_exists('supportsInternal', $config) && Saf_Filter_Truthy::filter($config['supportsInternal'])) {
         self::$_activePlugin = new Saf_Auth_Plugin_Local();
         self::$_supportsInternal = TRUE;
     }
     $plugins = array_key_exists('plugin', $config) ? Saf_Array::isNumericArray($config['plugin']) ? $config['plugin'] : array($config['plugin']) : array();
     self::$_autocreate = array_key_exists('autocreateUsers', $config) ? $config['autocreateUsers'] : FALSE;
     $firstPass = TRUE;
     foreach ($plugins as $pluginConfig) {
         if (is_array($pluginConfig) && array_key_exists('name', $pluginConfig)) {
             $pluginName = $pluginConfig['name'];
             $pluginConfig = $pluginConfig;
         } else {
             $pluginName = trim($pluginConfig);
             $pluginConfig = array();
         }
         if ($firstPass) {
             self::$_defaultPlugins[] = $pluginName;
             self::$_defaultPluginName = $pluginName;
         } else {
             if (array_key_exists('default', $pluginConfig) && $pluginConfig['default']) {
                 self::$_defaultPlugins[] = $pluginName;
             }
         }
         if (!in_array($pluginName, self::$_loadedPlugins)) {
             self::$_loadedPlugins[] = $pluginName;
             $className = 'Saf_Auth_Plugin_' . $pluginName;
             $classPath = LIBRARY_PATH . '/' . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
             if (!file_exists($classPath)) {
                 $className = $pluginName;
                 Saf_Kickstart::autoload($className);
             } else {
                 Saf_Kickstart::autoload($className);
             }
             if ($pluginConfig) {
                 self::$_classMap[$pluginName] = array($className => $pluginConfig);
             } else {
                 self::$_classMap[$pluginName] = $className;
             }
         }
         $firstPass = FALSE;
     }
     self::$_initialized = TRUE;
 }
Beispiel #2
0
 public static function setCrumbsFromConfig($config = array())
 {
     $baseUrl = Zend_Registry::get('baseUrl');
     if (is_null($config)) {
         $config = array();
     } else {
         if (is_object($config) && method_exists($config, 'toArray')) {
             $config = $config->toArray();
         }
     }
     $crumbs = array();
     if (count($config) == 1) {
         reset($config);
         $sample = current($config);
         if (Saf_Array::isNumericArray($sample)) {
             $config = $sample;
         }
     } else {
         if (array_key_exists('url', $config) && array_key_exists('label', $config)) {
             $config = array(array('url' => $config['url'], 'label' => $config['label']));
         }
     }
     foreach ($config as $fallBackLabel => $linkConfig) {
         if (is_object($linkConfig) && method_exists($linkConfig, 'toArray')) {
             $linkConfig = $linkConfig->toArray();
         }
         if (is_array($linkConfig)) {
             $label = array_key_exists('label', $linkConfig) ? $linkConfig['label'] : $fallBackLabel;
             if (array_key_exists('url', $linkConfig)) {
                 $url = str_replace('[[baseUrl]]', $baseUrl, $linkConfig['url']);
                 $crumbs[$label] = array('url' => $url);
             } else {
                 $crumbs[$label] = array('status' => 'current');
             }
         } else {
             $crumbs[$linkConfig] = array('status' => 'current');
         }
     }
     self::setCrumbs($crumbs);
 }