* User::getCanonicalName(), except that true is accepted as an alias
* for 'valid', for BC.
*
- * @return \type{User} The User object, or false if the username is invalid
+ * @return User The User object, or false if the username is invalid
* (e.g. if it contains illegal characters or is an IP address). If the
* username is not present in the database, the result will be a user object
* with a name, zero user ID and default settings.
// Deprecated, but kept for backwards-compatibility config
return false;
}
-
- wfDebug( "Checking the list of IP addresses excluded from rate limit..\n" );
-
- // Read list of IP addresses from MediaWiki namespace
- $message = wfMsgForContentNoTrans( 'ratelimit-excluded-ips' );
- $lines = explode( "\n", $message );
- foreach( $lines as $line ) {
- // Remove comment lines
- $comment = substr( trim( $line ), 0, 1 );
- if ( $comment == '#' || $comment == '' ) {
- continue;
- }
- // Remove additional comments after an IP address
- $comment = strpos( $line, '#' );
- if ( $comment > 0 ) {
- $line = trim( substr( $line, 0, $comment-1 ) );
- if ( IP::isValid( $line ) ) {
- $wgRateLimitsExcludedIPs[] = IP::sanitizeIP( $line );
- }
- }
- }
-
- $ip = IP::sanitizeIP( wfGetIP() );
- if( in_array( $ip, $wgRateLimitsExcludedIPs ) ) {
+ if( in_array( wfGetIP(), $wgRateLimitsExcludedIPs ) ) {
// No other good way currently to disable rate limits
// for specific IPs. :P
// But this is a crappy hack and should die.
- wfDebug( "IP $ip matches the list of rate limit excluded IPs\n" );
return false;
}
return !$this->isAllowed('noratelimit');
/**
* Get the user's ID.
- * @return \int The user's ID; 0 if the user is anonymous or nonexistent
+ * @return Integer The user's ID; 0 if the user is anonymous or nonexistent
*/
function getId() {
if( $this->mId === null and $this->mName !== null
/**
* Check if user is allowed to access a feature / make an action
* @param $action \string action to be checked
- * @return \bool True if action is allowed, else false
+ * @return Boolean: True if action is allowed, else false
*/
function isAllowed( $action = '' ) {
- if ( $action === '' )
+ if ( $action === '' ) {
return true; // In the spirit of DWIM
+ }
# Patrolling may not be enabled
if( $action === 'patrol' || $action === 'autopatrol' ) {
global $wgUseRCPatrol, $wgUseNPPatrol;
/**
* Check whether to enable recent changes patrol features for this user
- * @return \bool True or false
+ * @return Boolean: True or false
*/
public function useRCPatrol() {
global $wgUseRCPatrol;
}
$dbw = wfGetDB( DB_MASTER );
$seqVal = $dbw->nextSequenceValue( 'user_user_id_seq' );
+
$fields = array(
'user_id' => $seqVal,
'user_name' => $name,
'user_password' => $user->mPassword,
'user_newpassword' => $user->mNewpassword,
- 'user_newpass_time' => $dbw->timestamp( $user->mNewpassTime ),
+ 'user_newpass_time' => $dbw->timestampOrNull( $user->mNewpassTime ),
'user_email' => $user->mEmail,
'user_email_authenticated' => $dbw->timestampOrNull( $user->mEmailAuthenticated ),
'user_real_name' => $user->mRealName,
'user_name' => $this->mName,
'user_password' => $this->mPassword,
'user_newpassword' => $this->mNewpassword,
- 'user_newpass_time' => $dbw->timestamp( $this->mNewpassTime ),
+ 'user_newpass_time' => $dbw->timestampOrNull( $this->mNewpassTime ),
'user_email' => $this->mEmail,
'user_email_authenticated' => $dbw->timestampOrNull( $this->mEmailAuthenticated ),
'user_real_name' => $this->mRealName,
/**
* Get whether the user is blocked from using Special:Emailuser.
- * @return \bool True if blocked
+ * @return Boolean: True if blocked
*/
function isBlockedFromEmailuser() {
$this->getBlockedStatus();
/**
* Get whether the user is allowed to create an account.
- * @return \bool True if allowed
+ * @return Boolean: True if allowed
*/
function isAllowedToCreateAccount() {
return $this->isAllowed( 'createaccount' ) && !$this->isBlockedFromCreateAccount();
/**
* Get this user's personal page title.
*
- * @return \type{Title} User's personal page title
+ * @return Title: User's personal page title
*/
function getUserPage() {
return Title::makeTitle( NS_USER, $this->getName() );
/**
* Get this user's talk page title.
*
- * @return \type{Title} User's talk page title
+ * @return Title: User's talk page title
*/
function getTalkPage() {
$title = $this->getUserPage();
/**
* Get the maximum valid user ID.
- * @return \int User ID
+ * @return Integer: User ID
* @static
*/
function getMaxID() {
/**
* Determine whether the user is a newbie. Newbies are either
* anonymous IPs, or the most recently created accounts.
- * @return \bool True if the user is a newbie
+ * @return Boolean: True if the user is a newbie
*/
function isNewbie() {
return !$this->isAllowed( 'autoconfirmed' );
/**
* Check to see if the given clear-text password is one of the accepted passwords
- * @param $password \string user password.
- * @return \bool True if the given password is correct, otherwise False.
+ * @param $password String: user password.
+ * @return Boolean: True if the given password is correct, otherwise False.
*/
function checkPassword( $password ) {
global $wgAuth;
$this->load();
- // Even though we stop people from creating passwords that
- // are shorter than this, doesn't mean people wont be able
- // to. Certain authentication plugins do NOT want to save
- // domain passwords in a mysql database, so we should
- // check this (incase $wgAuth->strict() is false).
- if( !$this->isValidPassword( $password ) ) {
- return false;
- }
-
if( $wgAuth->authenticate( $this->getName(), $password ) ) {
return true;
} elseif( $wgAuth->strict() ) {
/**
* Check if the given clear-text password matches the temporary password
* sent by e-mail for password reset operations.
- * @return \bool True if matches, false otherwise
+ * @return Boolean: True if matches, false otherwise
*/
function checkTemporaryPassword( $plaintext ) {
global $wgNewPasswordExpiry;
*
* @param $val \string Input value to compare
* @param $salt \string Optional function-specific data for hashing
- * @return \bool Whether the token matches
+ * @return Boolean: Whether the token matches
*/
function matchEditToken( $val, $salt = '' ) {
$sessionToken = $this->editToken( $salt );
*
* @param $val \string Input value to compare
* @param $salt \string Optional function-specific data for hashing
- * @return \bool Whether the token matches
+ * @return Boolean: Whether the token matches
*/
function matchEditTokenNoSuffix( $val, $salt = '' ) {
$sessionToken = $this->editToken( $salt );
*/
function sendMail( $subject, $body, $from = null, $replyto = null ) {
if( is_null( $from ) ) {
- global $wgPasswordSender;
- $from = $wgPasswordSender;
+ global $wgPasswordSender, $wgPasswordSenderName;
+ $sender = new MailAddress( $wgPasswordSender, $wgPasswordSenderName );
+ } else {
+ $sender = new MailAddress( $from );
}
$to = new MailAddress( $this );
- $sender = new MailAddress( $from );
return UserMailer::send( $to, $sender, $subject, $body, $replyto );
}
/**
* Is this user allowed to send e-mails within limits of current
* site configuration?
- * @return \bool True if allowed
+ * @return Boolean: True if allowed
*/
function canSendEmail() {
global $wgEnableEmail, $wgEnableUserEmail;
/**
* Is this user allowed to receive e-mails within limits of current
* site configuration?
- * @return \bool True if allowed
+ * @return Boolean: True if allowed
*/
function canReceiveEmail() {
return $this->isEmailConfirmed() && !$this->getOption( 'disablemail' );
* confirmed their address by returning a code or using a password
* sent to the address from the wiki.
*
- * @return \bool True if confirmed
+ * @return Boolean: True if confirmed
*/
function isEmailConfirmed() {
global $wgEmailAuthentication;
/**
* Check whether there is an outstanding request for e-mail confirmation.
- * @return \bool True if pending
+ * @return Boolean: True if pending
*/
function isEmailConfirmationPending() {
global $wgEmailAuthentication;
* Return the set of defined explicit groups.
* The implicit groups (by default *, 'user' and 'autoconfirmed')
* are not included, as they are defined automatically, not in the database.
- * @return \type{\arrayof{\string}} Array of internal group names
+ * @return Array of internal group names
*/
static function getAllGroups() {
global $wgGroupPermissions, $wgRevokePermissions;
/**
* Get a list of all available permissions.
- * @return \type{\arrayof{\string}} Array of permission names
+ * @return Array of permission names
*/
static function getAllRights() {
if ( self::$mAllRights === false ) {
* @param $hash \string Password hash
* @param $password \string Plain-text password to compare
* @param $userId \string User ID for old-style password salt
- * @return \bool
+ * @return Boolean:
*/
static function comparePasswords( $hash, $password, $userId = false ) {
$type = substr( $hash, 0, 3 );