diff --git a/src/modUsers.php b/src/modUsers.php index 55e7277..060b0e0 100644 --- a/src/modUsers.php +++ b/src/modUsers.php @@ -395,7 +395,7 @@ public function save($fire_events = false, $clearCache = false) return false; } - if ($this->isChanged('username') && !$this->checkUnique('users', 'username')) { + if ($this->isChanged('username') && !$this->isUnique('username')) { $this->log['UniqueUsername'] = 'username not unique
' . print_r(
                     $this->get('username'),
                     true
@@ -404,7 +404,7 @@ public function save($fire_events = false, $clearCache = false)
             return false;
         }
 
-        if ($this->isChanged('username') && !$this->checkUnique('user_attributes', 'email', 'internalKey')) {
+        if ($this->isChanged('email') && !$this->isUnique('email')) {
             $this->log['UniqueEmail'] = 'Email not unique 
' . print_r($this->get('email'), true) . '
'; return false; @@ -468,6 +468,21 @@ public function save($fire_events = false, $clearCache = false) return $this->id; } + /** + * @param $field + * @return bool + */ + public function isUnique($field) { + $out = false; + if (isset($this->default_field['user'][$field])) { + $out = $this->checkUnique('users', $field); + } elseif(isset($this->default_field['user'][$field])) { + $out = $this->checkUnique('user_attributes', $field, 'primaryKey'); + } + + return $out; + } + /** * @param array $fld */