summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlezvous.ca>2008-06-23 21:56:16 -0400
committerEvan Prodromou <evan@controlezvous.ca>2008-06-23 21:56:16 -0400
commite330eb50d2c36505270375360303083decedee98 (patch)
tree6161803dd219ade3d3150f1b2c9d988cae91be44 /actions
parent939a3e48d896f318a40c8ef2e1b13e79d6e7eb94 (diff)
more robust handling of new JIDs
darcs-hash:20080624015616-34904-c1ff985257c8c57aacf68439488d628a8b4d2e38.gz
Diffstat (limited to 'actions')
-rw-r--r--actions/imsettings.php25
1 files changed, 16 insertions, 9 deletions
diff --git a/actions/imsettings.php b/actions/imsettings.php
index 0496aaacd..d8fc8b87c 100644
--- a/actions/imsettings.php
+++ b/actions/imsettings.php
@@ -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();