]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/imsettings.php
more robust handling of new JIDs
[quix0rs-gnu-social.git] / actions / imsettings.php
index 0496aaacd5fb6be74f533413edf4ccdccd435983..d8fc8b87cad3e3af0bded3d6210351c04323ebaa 100644 (file)
@@ -62,19 +62,26 @@ class ImsettingsAction extends SettingsAction {
 
        function handle_post() {
 
-               $jabber = jabber_normalize_jid($this->trimmed('jabber'));
+               $jabber = $this->trimmed('jabber');
                $jabbernotify = $this->boolean('jabbernotify');
                $updatefrompresence = $this->boolean('updatefrompresence');
 
-               if (!jabber_valid_base_jid($jabber)) {
-                       $this->show_form(_('Not a valid Jabber ID'));
-                       return;
-               } else if ($this->jabber_exists($jabber)) {
-                       $this->show_form(_('Not a valid Jabber ID'));
-                       return;
-               }
-
                # Some validation
+               
+               if ($jabber) {
+                       $jabber = jabber_normalize_jid($jabber);
+                       if (!$jabber) {
+                           $this->show_form(_('Cannot normalize that Jabber ID'));
+                           return;
+                       }
+                       if (!jabber_valid_base_jid($jabber)) {
+                           $this->show_form(_('Not a valid Jabber ID'));
+                           return;
+                   } else if ($this->jabber_exists($jabber)) {
+                           $this->show_form(_('Jabber ID already belongs to another user.'));
+                           return;
+                       }
+               }
 
                $user = common_current_user();