diff options
author | Christoph Burschka | 2014-01-16 19:34:39 +0100 |
---|---|---|
committer | Christoph Burschka | 2014-01-16 19:34:39 +0100 |
commit | 841bcac241bac980d5e943793ffda3372d7f8f82 (patch) | |
tree | 93ffd23c4340426358ce3ee86869cd785a195cd8 /main.php | |
parent | Finally remove unused setpass/register hooks. (diff) | |
download | ejabberd-auth-php-841bcac241bac980d5e943793ffda3372d7f8f82.tar.gz |
Big multiple-plugins patch (fixes #2).
Diffstat (limited to 'main.php')
-rwxr-xr-x | main.php | 27 |
1 files changed, 14 insertions, 13 deletions
@@ -9,19 +9,20 @@ main(); function main() { require_once ROOT . 'config.php'; - if (!empty($config['plugin']) && !empty($config[$config['plugin']])) { - $plugin_file = 'plugins/' . $config['plugin'] . '/' . $config['plugin'] . '.module'; - if (file_exists(ROOT . $plugin_file)) { - require_once ROOT . $plugin_file; - $function = $config['plugin'] . '_init'; - $auth = new EjabberdAuth($config, $function($config[$config['plugin']])); - $auth->run(); + $bridges = []; + foreach ($config as $domain => $plugins) { + $bridges[$domain] = []; + foreach ($plugins as $settings) { + $plugin_file = 'plugins/' . $settings['plugin'] . '/' . $settings['plugin'] . '.module'; + if (file_exists(ROOT . $plugin_file)) { + require_once ROOT . $plugin_file; + $function = $settings['plugin'] . '_init'; + $bridges[$domain][] = $function($settings['config']); + } + else { + return fwrite(STDERR, "Plugin <{$plugin_file}> not found.\n"); + } } - else { - fwrite(STDERR, "Plugin <{$plugin_file}> not found.\n"); - } - } - else { - fwrite(STDERR, 'Incomplete configuration: $config[\'plugin\'] must be set to <name>, and $config[<name>] populated.' . "\n"); } + (new EjabberdAuth($meta, $bridges))->run(); } |