I need someone's help on this one.
I've pretty much locked down anonymous users on our site. They can view any pages, but tabs are gone and editing is disabled. The one thing I do want to allow is for anonymous users to send email via Special:Emailuser. How do I open just that page/function to anonymous users?
Thanks!
Have you tried the whitelist?
# Pages anonymous (not-logged-in) users may see $wgWhitelistRead = array ("Main Page", "Special:Userlogin", "Wikipedia:Help");
2007/1/9, Air Force CGOC Webmaster webmaster@afcgoc.org:
I need someone's help on this one.
I've pretty much locked down anonymous users on our site. They can view any pages, but tabs are gone and editing is disabled. The one thing I do want to allow is for anonymous users to send email via Special:Emailuser. How do I open just that page/function to anonymous users?
Thanks!
MediaWiki-l mailing list MediaWiki-l@lists.wikimedia.org http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
Anonymous users can see the page. I've got full read access to anonymous users. However, when you display the Userlogin page, it says:
No send address
You must be logged in http://afcgoc.org/wiki/index.php?title=Special:Userlogin and have a valid e-mail address in your preferences http://afcgoc.org/wiki/index.php?title=Special:Preferences to send e-mail to other users.
Fernando Correia wrote:
Have you tried the whitelist?
# Pages anonymous (not-logged-in) users may see $wgWhitelistRead = array ("Main Page", "Special:Userlogin", "Wikipedia:Help");
2007/1/9, Air Force CGOC Webmaster webmaster@afcgoc.org:
I need someone's help on this one.
I've pretty much locked down anonymous users on our site. They can view any pages, but tabs are gone and editing is disabled. The one thing I do want to allow is for anonymous users to send email via Special:Emailuser. How do I open just that page/function to anonymous users?
Thanks!
Air Force CGOC Webmaster a écrit :
The one thing I do want to allow is for anonymous users to send email via Special:Emailuser. How do I open just that page/function to anonymous users?
You can either write an extension (maybe there is already one existing) or hack the code of the mailing function (include/SpecialEmailuser.php)
if you change the code of SpecialEmailUser.php, at least, you'll have to comment (or change) in the function wfSpecialEmailuser($par) these lines :
if( !$wgUser->canSendEmail() ) { wfDebug( "User can't send.\n" ); $wgOut->showErrorPage( "mailnologin", "mailnologintext" ); return; }
(function canSendEmail() call isEmailConfirmed() which returns false if Anon)
you might have to change something else in that file or in the mail form (which could get in trouble when it will try to display the sender name) , but I don't know what
Alexis,
Thanks for getting on the right track. I ended up writing an extension to make it work. Here's the extension. It takes the part before the @ sign as a parameter after the page name and then the part after the @ sign is hard-coded. It would need to be adapted, but feel free to use it as you see fit!
<?php if(!defined('MEDIAWIKI')) die();
$wgExtensionFunctions[] = 'wmsSetupMailto'; $wgExtensionCredits['specialpage'][] = array( 'name' => 'Mailto', 'author' => '1Lt Mike Straw', 'description' => 'Sends email from a non-logged in user, with email address, to an AFGCOC.org address' );
function wmsSetupMailto() { global $IP, $wgMessageCache; require_once($IP . '/includes/SpecialPage.php'); SpecialPage::addPage(new SpecialPage('Mailto', '', true, 'wmsSpecialMailto', false)); $wgMessageCache->addMessage('mailto', 'Mailto'); require_once('UserMailer.php'); }
function wmsSpecialMailto($par) { global $wgOut, $wgRequest; $wgOut->setPageTitle("Send an Email");
if ( "" == $par) { wfDebug( "Target is empty.\n" ); $wgOut->showErrorPage( "notargettitle", "notargettext" ); return; }
if ($wgRequest->wasPosted()) {
# Send the email $to=new MailAddress($par.'@afcgoc.org'); $from=new MailAddress($wgRequest->getVal('FromEmail'), $wgRequest->getVal('FromName')); $subject="[AFCGOC] ".$wgRequest->getVal('MsgSubject'); $body="The following message was submitted on the AFCGOC web page:\n\n"; $body.=$wgRequest->getVal('MsgBody'); userMailer( $to, $from, $subject, $body ); $wgOut->addWikiText("Message successfully sent to ".$par."@afcgoc.org"); } else { $wgOut->addWikiText("Sending mail to ".$par."@afcgoc.org<p>"); $wgOut->addHTML("<form method=post> <table border=0> <tr> <th align="right">Your Name:</th> <td><input name="FromName" type="text" size="80"></td> </tr> <th align="right">Your Email Address:</th> <td><input name="FromEmail" type="text" size="80"></td> </tr> <tr> <th align="right">Email Subject:</th> <td><input name="MsgSubject" type="text" size="80"></td> </tr> <tr> <th align="right">Email Text:</th> <td><textarea name="MsgBody" rows="10" cols="80"></textarea></td> </tr> <tr><td align="center" colspan="2"><input type="submit" value="Send Email"> </td></tr> </table> </form>"); } } ?>
On 1/9/07, Alexis Moinet alexis.moinet@fpms.ac.be wrote:
Air Force CGOC Webmaster a écrit :
The one thing I do want to allow is for anonymous users to send email via Special:Emailuser. How do I open just that page/function to anonymous users?
You can either write an extension (maybe there is already one existing) or hack the code of the mailing function (include/SpecialEmailuser.php)
if you change the code of SpecialEmailUser.php, at least, you'll have to comment (or change) in the function wfSpecialEmailuser($par) these lines :
if( !$wgUser->canSendEmail() ) { wfDebug( "User can't send.\n" ); $wgOut->showErrorPage( "mailnologin", "mailnologintext" ); return; }
(function canSendEmail() call isEmailConfirmed() which returns false if Anon)
you might have to change something else in that file or in the mail form (which could get in trouble when it will try to display the sender name) , but I don't know what
MediaWiki-l mailing list MediaWiki-l@lists.wikimedia.org http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
mediawiki-l@lists.wikimedia.org