From 3e994a81a8b407c0076eaf90649fbf98e71082e2 Mon Sep 17 00:00:00 2001
From: Michael Fürmann <michael@spicyweb.de>
Date: Thu, 19 Feb 2015 10:04:10 -0500
Subject: [PATCH] XMPP User and domain changes and Metronome SQL Auth scripts

---
 server/plugins-available/xmpp_plugin.inc.php |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 deletions(-)

diff --git a/server/plugins-available/xmpp_plugin.inc.php b/server/plugins-available/xmpp_plugin.inc.php
index c4f70e3..1b177e7 100644
--- a/server/plugins-available/xmpp_plugin.inc.php
+++ b/server/plugins-available/xmpp_plugin.inc.php
@@ -67,6 +67,9 @@
         $app->plugins->registerEvent('xmpp_domain_insert', 'xmpp_plugin', 'domainInsert');
         $app->plugins->registerEvent('xmpp_domain_update', 'xmpp_plugin', 'domainUpdate');
         $app->plugins->registerEvent('xmpp_domain_delete', 'xmpp_plugin', 'domainDelete');
+        $app->plugins->registerEvent('xmpp_user_insert', 'xmpp_plugin', 'userInsert');
+        $app->plugins->registerEvent('xmpp_user_update', 'xmpp_plugin', 'userUpdate');
+        $app->plugins->registerEvent('xmpp_user_delete', 'xmpp_plugin', 'userDelete');
 
     }
 
@@ -135,7 +138,6 @@
         $tpl->newTemplate('metronome_conf_host.master');
         $tpl->setVar('domain', $data['new']['domain']);
         $tpl->setVar('active', $data['new']['active'] == 'y' ? 'true' : 'false');
-        $tpl->setVar('auth_method', $data['new']['auth_method'] == 'isp' ? 'external' : 'internal_'.$data['new']['auth_method']);
         $tpl->setVar('public_registration', $data['new']['public_registration'] == 'y' ? 'true' : 'false');
 
         $admins = array();
@@ -227,6 +229,27 @@
         $app->services->restartServiceDelayed('metronome', 'restart');
     }
 
+    function userInsert($event_name, $data){
+        //$data['new']['auth_method']
+        // Check domain for auth settings
+        // Don't allow manual user creation for mailaccount controlled domains
+
+        // maybe metronomectl adduser for new local users
+    }
+    function userUpdate($event_name, $data){
+        // Check domain for auth settings
+        // Don't allow manual user update for mailaccount controlled domains
+
+        // maybe metronomectl passwd for existing local users
+    }
+    function userDelete($event_name, $data){
+        // Check domain for auth settings
+        // Don't allow manual user deletion for mailaccount controlled domains
+
+        // Remove account from metronome
+        exec('metronomectl deluser '.$data['old']['jid']);
+    }
+
 } // end class
 
 ?>

--
Gitblit v1.9.1