The Arcive of vBulletin Modifications Site. |
|
|
#1
|
|||
|
|||
|
I am getting ready to setup a forum and want to know if it is possible to allow users to register only if their email address is from a certain domain.
In other words I would like to exclude all domains, but the ones I specify. This would be the exact opposite of the way it is now. I am just unsure of how to accomplish it. Any help or guidance would be greatly appreciated. |
|
#2
|
|||
|
|||
|
I am looking into this for you.
|
|
#3
|
|||
|
|||
|
Thanks Hurricane.
I appreciate your help.
|
|
#4
|
|||
|
|||
|
I looked into doing this as a full blown hack, however, I do not think it will be worth going through the trouble. I do not think many people have the need for this. So I will come up with something for you that is quick and dirty.
|
|
#5
|
|||
|
|||
|
Quote:
OK, here it is quick and dirty: In your Admin Panel Options there is an area for email banning. (Which is the opposite of what you want as stated above.) What I have done is to allow you to reverse that function to only allow those who are listed. Here you go: Code:
Open includes/functions_user.php
Find This (Around Line 436)
// ###################### Start checkbannedemail #######################
function is_banned_email($email)
{
global $vboptions, $datastore;
if ($vboptions['enablebanning'] AND !empty($datastore['banemail']))
{
$bannedemails = preg_split('/\s+/', $datastore['banemail'], -1, PREG_SPLIT_NO_EMPTY);
foreach ($bannedemails AS $bannedemail)
{
if (is_valid_email($bannedemail))
{
$regex = '^' . preg_quote($bannedemail, '#') . '$';
}
else
{
$regex = preg_quote($bannedemail, '#');
}
if (preg_match("#$regex#i", $email))
{
return 1;
}
}
}
return 0;
}
REPLACE WITH:
// ###################### Start checkbannedemail #######################
function is_banned_email($email)
{
global $vboptions, $datastore;
if ($vboptions['enablebanning'] AND !empty($datastore['banemail']))
{
$bannedemails = preg_split('/\s+/', $datastore['banemail'], -1, PREG_SPLIT_NO_EMPTY);
foreach ($bannedemails AS $bannedemail)
{
if (is_valid_email($bannedemail))
{
$regex = '^' . preg_quote($bannedemail, '#') . '$';
}
else
{
$regex = preg_quote($bannedemail, '#');
}
if (preg_match("#$regex#i", $email))
{
return 0;
}
}
}
return 1;
}
Code:
What this has done is to switch the "return 0" and "return 1" BTW: I did fully test this and it worked on my test BB. |
|
#6
|
|||
|
|||
|
Wow! Thanks-A-Million Hurricane I will test this out ASAP and let you know how it goes.
|
|
#7
|
|||
|
|||
|
Just wanted to get back to you and let you know that this seems to be working perfectly. Thanks again for helping me out.
|
![]() |
|
|
| X vBulletin 3.8.12 by vBS Debug Information | |
|---|---|
|
|
More Information |
|
|
Template Usage:
Phrase Groups Available:
|
Included Files:
Hooks Called:
|