From 3ee5add5b0ba1550f4a153ff44775e8dd33d99ea Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Fri, 3 Jun 2011 11:08:08 -0700 Subject: Emailing moderation passwords --- htdocs/src/User.inc.php | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'htdocs/src/User.inc.php') diff --git a/htdocs/src/User.inc.php b/htdocs/src/User.inc.php index 0333520..6ff367e 100644 --- a/htdocs/src/User.inc.php +++ b/htdocs/src/User.inc.php @@ -11,6 +11,8 @@ require_once "base.inc.php"; class User { + const GENERATED_PASSSWORD_LENGTH = 12; + private $info; private $indatabase; @@ -82,6 +84,7 @@ class User { if ($ret) { $this->info['id'] = $ret; $this->indatabase = true; + $this->sendNewPassword(); } return true; @@ -151,6 +154,34 @@ class User { public function setAdmin($value) { $this->info['admin'] = $value ? 1 : 0; } + + public function sendNewPassword() { + $password = $this->generatePassword(); + $url = buildUrl('moderate/'); + + $email = new Email($this->getEmail()); + $email->setSubject('Your ' . $GLOBALS['CONFIG']['sitetitle'] . ' Moderation Account'); + $email->appendMessage('Your ' . $GLOBALS['CONFIG']['sitetitle'] + . " moderation account password is $password\n\n" + . "You can access the moderation page at $url.\n"); + + $email->send(); + } + + public function generatePassword() { + $chars = "23456789abcdefghjkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ"; + $i = 0; + $password = ""; + while ($i <= self::GENERATED_PASSSWORD_LENGTH) { + $password .= $chars{mt_rand(0, strlen($chars)-1)}; + $i++; + } + + $this->userinfo['password'] = sha1($password); + + return $password; + } + } ?> -- cgit v1.2.3