From 72bdfbe968c3e86f6476ea940c909a1c64c4e7c9 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sat, 1 Jun 2002 21:42:48 +0000 Subject: [PATCH] Added an alert for when new users register. --- docs/upgrades/upgrade_3.9.0-3.10.0.sql | 9 +++++++++ lib/WebGUI/MessageLog.pm | 13 ++++++++++--- lib/WebGUI/Operation/Account.pm | 2 ++ lib/WebGUI/Operation/Settings.pm | 12 ++++++++---- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/docs/upgrades/upgrade_3.9.0-3.10.0.sql b/docs/upgrades/upgrade_3.9.0-3.10.0.sql index f85c278a8..e373a627c 100644 --- a/docs/upgrades/upgrade_3.9.0-3.10.0.sql +++ b/docs/upgrades/upgrade_3.9.0-3.10.0.sql @@ -10,6 +10,15 @@ INSERT INTO international VALUES (530,'WebGUI','English','with all the wo INSERT INTO international VALUES (531,'WebGUI','English','with the exact phrase'); INSERT INTO international VALUES (532,'WebGUI','English','with at least one of the words'); INSERT INTO international VALUES (533,'WebGUI','English','without the words'); +INSERT INTO settings VALUES ('onNewUserAlertGroup','3'); +INSERT INTO settings VALUES ('alertOnNewUser','0'); +update international set message='Edit User Settings' where internationalId=117 and namespace='WebGUI' and language='English'; +INSERT INTO international VALUES (535,'WebGUI','English','Group To Alert On New User'); +INSERT INTO international VALUES (534,'WebGUI','English','Alert on new user?'); +INSERT INTO international VALUES (536,'WebGUI','English','A new user named ^@; has joined the site.'); + + + diff --git a/lib/WebGUI/MessageLog.pm b/lib/WebGUI/MessageLog.pm index 489128e44..d5ffe5c45 100644 --- a/lib/WebGUI/MessageLog.pm +++ b/lib/WebGUI/MessageLog.pm @@ -12,6 +12,7 @@ package WebGUI::MessageLog; use strict; use Tie::CPHash; +use WebGUI::Macro; use WebGUI::Mail; use WebGUI::Session; use WebGUI::SQL; @@ -44,9 +45,10 @@ sub _getUserInfo { #------------------------------------------------------------------- sub addEntry { - my (@users, $messageLogId,$sth, $user, %message, %subject, $message, $subject); + my (@users, $messageLogId,$sth, $user, %message, %subject, $message, $subject, $namespace); $messageLogId = getNextId("messageLogId"); - %message = WebGUI::SQL->buildHash("select language,message from international where internationalId=$_[3] and namespace='$_[4]'"); + $namespace = $_[4] || "WebGUI"; + %message = WebGUI::SQL->buildHash("select language,message from international where internationalId=$_[3] and namespace='$namespace'"); %subject = WebGUI::SQL->buildHash("select language,message from international where internationalId=523 and namespace='WebGUI'"); if ($_[1] ne "") { @users = WebGUI::SQL->quickArray("select userId from groupings where groupId=$_[1]"); @@ -57,8 +59,13 @@ sub addEntry { if (${$user}{userId} ne "") { WebGUI::SQL->write("insert into messageLog values ($messageLogId,".${$user}{userId}.", ".quote($message{${$user}{language}}).",".quote($_[2]).",".time().")"); + $subject{${$user}{language}} = $subject{'English'} if ($subject{${$user}{language}} eq ""); $subject = $subject{${$user}{language}}; - $message = $message{${$user}{language}}."\n".WebGUI::URL::append('http://'.$session{env}{HTTP_HOST}.$_[2],'mlog='.$messageLogId); + $message{${$user}{language}} = $message{'English'} if ($message{${$user}{language}} eq ""); + $message = WebGUI::Macro::process($message{${$user}{language}}); + if ($_[2] ne "") { + $message .= "\n".WebGUI::URL::append('http://'.$session{env}{HTTP_HOST}.$_[2],'mlog='.$messageLogId); + } if (${$user}{INBOXNotifications} = "email") { if (${$user}{email} ne "") { WebGUI::Mail::send(${$user}{email},$subject,$message); diff --git a/lib/WebGUI/Operation/Account.pm b/lib/WebGUI/Operation/Account.pm index 36d01c829..d8c9cd2f4 100644 --- a/lib/WebGUI/Operation/Account.pm +++ b/lib/WebGUI/Operation/Account.pm @@ -20,6 +20,7 @@ use WebGUI::ErrorHandler; use WebGUI::HTMLForm; use WebGUI::International; use WebGUI::Mail; +use WebGUI::MessageLog; use WebGUI::Paginator; use WebGUI::Privilege; use WebGUI::Session; @@ -252,6 +253,7 @@ sub www_createAccountSave { $u->addToGroups([2]); WebGUI::Session::start($u->userId); _logLogin($u->userId,"success"); + WebGUI::MessageLog::addEntry('',$session{setting}{onNewUserAlertGroup},'',536) if ($session{setting}{alertOnNewUser}); } else { $output = "

".WebGUI::International::get(70)."

".$error.www_createAccount(); } diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm index 88fb8d5f3..4b11d028e 100644 --- a/lib/WebGUI/Operation/Settings.pm +++ b/lib/WebGUI/Operation/Settings.pm @@ -39,7 +39,10 @@ sub www_editAuthenticationSettings { $output .= '

'.WebGUI::International::get(117).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editAuthenticationSettingsSave"); - $f->yesNo("anonymousRegistration",WebGUI::International::get(118),[$session{setting}{anonymousRegistration}]); + $f->integer("sessionTimeout",WebGUI::International::get(142),$session{setting}{sessionTimeout}); + $f->yesNo("anonymousRegistration",WebGUI::International::get(118),$session{setting}{anonymousRegistration}); + $f->yesNo("alertOnNewUser",WebGUI::International::get(534),$session{setting}{alertOnNewUser}); + $f->group("onNewUserAlertGroup",WebGUI::International::get(535),[$session{setting}{onNewUserAlertGroup}]); $f->select("authMethod",\%authMethod,WebGUI::International::get(119),[$session{setting}{authMethod}]); $f->yesNo("usernameBinding",WebGUI::International::get(306),$session{setting}{usernameBinding}); $f->url("ldapURL",WebGUI::International::get(120),$session{setting}{ldapURL}); @@ -57,6 +60,9 @@ sub www_editAuthenticationSettings { #------------------------------------------------------------------- sub www_editAuthenticationSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { + _saveSetting("sessionTimeout"); + _saveSetting("onNewUserAlertGroup"); + _saveSetting("alertOnNewUser"); _saveSetting("authMethod"); _saveSetting("ldapURL"); _saveSetting("ldapId"); @@ -221,7 +227,6 @@ sub www_editMiscSettings { $output .= '

'.WebGUI::International::get(140).'

'; $f = WebGUI::HTMLForm->new; $f->hidden("op","editMiscSettingsSave"); - $f->integer("sessionTimeout",WebGUI::International::get(142),$session{setting}{sessionTimeout}); $f->yesNo("preventProxyCache",WebGUI::International::get(400),$session{setting}{preventProxyCache}); $f->select("onCriticalError",\%criticalError,WebGUI::International::get(413),[$session{setting}{onCriticalError}]); $f->submit; @@ -235,7 +240,6 @@ sub www_editMiscSettings { #------------------------------------------------------------------- sub www_editMiscSettingsSave { if (WebGUI::Privilege::isInGroup(3)) { - _saveSetting("sessionTimeout"); _saveSetting("preventProxyCache"); _saveSetting("onCriticalError"); return www_manageSettings(); @@ -251,13 +255,13 @@ sub www_manageSettings { $output .= helpIcon(12); $output .= '

'.WebGUI::International::get(143).'

'; $output .= ''; } else { $output = WebGUI::Privilege::adminOnly();