summaryrefslogtreecommitdiff
path: root/htdocs/src/User.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/src/User.inc.php')
-rw-r--r--htdocs/src/User.inc.php31
1 files changed, 31 insertions, 0 deletions
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;
+ }
+
}
?>