Bug 1061271: Add a hook into Bugzilla::User::check_and_send_account_creation_confirmation()
r=gerv a=glob git-svn-id: svn://10.0.0.236/trunk@265838 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -1 +1 @@
|
||||
9314
|
||||
9315
|
||||
@@ -1 +1 @@
|
||||
0a0c32b2082a0f31757cc09af6d7f2ff9ba45168
|
||||
0a8f7a59f894738d86564874fbabeb1c81f3178d
|
||||
@@ -1592,6 +1592,24 @@ name), you can get it from here.
|
||||
|
||||
=back
|
||||
|
||||
=head2 user_check_account_creation
|
||||
|
||||
This hook permits you to do extra checks before the creation of a new user
|
||||
account. This hook is called after email address validation has been done.
|
||||
Note that this hook can also access the IP address of the requester thanks
|
||||
to the C<remote_ip()> subroutine exported by C<Bugzilla::Util>.
|
||||
|
||||
Params:
|
||||
|
||||
=over
|
||||
|
||||
=item C<login>
|
||||
|
||||
The login of the new account. This is usually an email address, unless the
|
||||
C<emailsuffix> parameter is not empty.
|
||||
|
||||
=back
|
||||
|
||||
=head2 user_preferences
|
||||
|
||||
This hook allows you to add additional panels to the User Preferences page,
|
||||
|
||||
@@ -21,6 +21,7 @@ use Bugzilla::Classification;
|
||||
use Bugzilla::Field;
|
||||
use Bugzilla::Group;
|
||||
use Bugzilla::BugUserLastVisit;
|
||||
use Bugzilla::Hook;
|
||||
|
||||
use DateTime::TimeZone;
|
||||
use List::Util qw(max);
|
||||
@@ -2417,6 +2418,9 @@ sub check_and_send_account_creation_confirmation {
|
||||
ThrowUserError('account_creation_restricted');
|
||||
}
|
||||
|
||||
# Allow extensions to do extra checks.
|
||||
Bugzilla::Hook::process('user_check_account_creation', { login => $login });
|
||||
|
||||
# Create and send a token for this new account.
|
||||
require Bugzilla::Token;
|
||||
Bugzilla::Token::issue_new_user_account_token($login);
|
||||
|
||||
@@ -18,7 +18,7 @@ use Bugzilla::Error;
|
||||
use Bugzilla::Group;
|
||||
use Bugzilla::User;
|
||||
use Bugzilla::User::Setting;
|
||||
use Bugzilla::Util qw(diff_arrays html_quote);
|
||||
use Bugzilla::Util qw(diff_arrays html_quote remote_ip);
|
||||
use Bugzilla::Status qw(is_open_state);
|
||||
use Bugzilla::Install::Filesystem;
|
||||
use Bugzilla::WebService::Constants;
|
||||
@@ -953,6 +953,26 @@ sub template_before_process {
|
||||
}
|
||||
}
|
||||
|
||||
sub user_check_account_creation {
|
||||
my ($self, $args) = @_;
|
||||
|
||||
my $login = $args->{login};
|
||||
my $ip = remote_ip();
|
||||
|
||||
# Log all requests.
|
||||
warn "USER ACCOUNT CREATION REQUEST FOR $login ($ip)";
|
||||
|
||||
# Reject requests based on their email address.
|
||||
if ($login =~ /\@evil\.com$/) {
|
||||
ThrowUserError('account_creation_restricted');
|
||||
}
|
||||
|
||||
# Reject requests based on their IP address.
|
||||
if ($ip =~ /^192\.168\./) {
|
||||
ThrowUserError('account_creation_restricted');
|
||||
}
|
||||
}
|
||||
|
||||
sub user_preferences {
|
||||
my ($self, $args) = @_;
|
||||
my $tab = $args->{current_tab};
|
||||
|
||||
Reference in New Issue
Block a user