X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FUser.php;h=c8b334d489ab76c553f7a27e6601c1cb63c397d3;hb=4d179c6b0ce1b567c3e6f77e1db845c621cd2bf0;hp=175d945401e2e25538a8ec5526ea1ff50234e743;hpb=cfaaf3c13cd97b73c4a7033f7714e36e294e3d9b;p=quix0rs-gnu-social.git diff --git a/classes/User.php b/classes/User.php index 175d945401..c8b334d489 100644 --- a/classes/User.php +++ b/classes/User.php @@ -462,16 +462,6 @@ class User extends Managed_DataObject return $this->getProfile()->getNotices($offset, $limit, $since_id, $before_id); } - function getSelfTags() - { - return Profile_tag::getTagsArray($this->id, $this->id, $this->id); - } - - function setSelfTags($newtags, $privacy) - { - return Profile_tag::setTags($this->id, $this->id, $newtags, $privacy); - } - function block(Profile $other) { // Add a new block record @@ -608,8 +598,10 @@ class User extends Managed_DataObject } try { - $profile = $this->getProfile(); - $profile->delete(); + if (!$this->hasRole(Profile_role::DELETED)) { + $profile = $this->getProfile(); + $profile->delete(); + } } catch (UserNoProfileException $unp) { common_log(LOG_INFO, "User {$this->nickname} has no profile; continuing deletion."); } @@ -1020,6 +1012,24 @@ class User extends Managed_DataObject return !empty($this->password); } + public function setPassword($password) + { + $orig = clone($this); + $this->password = common_munge_password($password, $this->getProfile()); + + if ($this->validate() !== true) { + // TRANS: Form validation error on page where to change password. + throw new ServerException(_('Error saving user; invalid.')); + } + + if (!$this->update($orig)) { + common_log_db_error($this, 'UPDATE', __FILE__); + // TRANS: Server error displayed on page where to change password when password change + // TRANS: could not be made because of a server error. + throw new ServerException(_('Cannot save new password.')); + } + } + public function delPref($namespace, $topic) { return $this->getProfile()->delPref($namespace, $topic);