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;
 }