MediaWiki REL1_34
EmailBlacklist.php
Go to the documentation of this file.
1<?php
2
13 public function filter( array $links, Title $title, $preventLog = false ) {
14 throw new LogicException( __CLASS__ . ' cannot be used to filter links.' );
15 }
16
22 protected function getBlacklistType() {
23 return 'email';
24 }
25
32 public function checkUser( User $user ) {
33 $blacklists = $this->getBlacklists();
34 $whitelists = $this->getWhitelists();
35
36 // The email to check
37 $email = $user->getEmail();
38
39 if ( !count( $blacklists ) ) {
40 // Nothing to check
41 return true;
42 }
43
44 // Check for whitelisted email addresses
45 if ( is_array( $whitelists ) ) {
46 wfDebugLog( 'SpamBlacklist', "Excluding whitelisted email addresses from " .
47 count( $whitelists ) . " regexes: " . implode( ', ', $whitelists ) . "\n" );
48 foreach ( $whitelists as $regex ) {
49 if ( preg_match( $regex, $email ) ) {
50 // Whitelisted email
51 return true;
52 }
53 }
54 }
55
56 # Do the match
57 wfDebugLog( 'SpamBlacklist', "Checking e-mail address against " . count( $blacklists ) .
58 " regexes: " . implode( ', ', $blacklists ) . "\n" );
59 foreach ( $blacklists as $regex ) {
60 if ( preg_match( $regex, $email ) ) {
61 return false;
62 }
63 }
64
65 return true;
66 }
67}
wfDebugLog( $logGroup, $text, $dest='all', array $context=[])
Send a line to a supplementary debug log file, if configured, or main debug log if not.
Base class for different kinds of blacklists.
getBlacklists()
Fetch local and (possibly cached) remote blacklists.
getWhitelists()
Returns the (local) whitelist.
Email Blacklisting.
getBlacklistType()
Returns the code for the blacklist implementation.
checkUser(User $user)
Checks a User object for a blacklisted email address.
filter(array $links, Title $title, $preventLog=false)
Represents a title within MediaWiki.
Definition Title.php:42
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition User.php:51
getEmail()
Get the user's e-mail address.
Definition User.php:2905