/** * Check whether a user is allowed to send email * * @param User $user * @param string $editToken Edit token * @param Config $config optional for backwards compatibility * @return string|null Null on success or string on error */ public static function getPermissionsError($user, $editToken, Config $config = null) { if ($config === null) { wfDebug(__METHOD__ . ' called without a Config instance passed to it'); $config = ConfigFactory::getDefaultInstance()->makeConfig('main'); } if (!$config->get('EnableEmail') || !$config->get('EnableUserEmail')) { return 'usermaildisabled'; } if (!$user->isAllowed('sendemail')) { return 'badaccess'; } if (!$user->isEmailConfirmed()) { return 'mailnologin'; } if ($user->isBlockedFromEmailuser()) { wfDebug("User is blocked from sending e-mail.\n"); return "blockedemailuser"; } if ($user->pingLimiter('emailuser')) { wfDebug("Ping limiter triggered.\n"); return 'actionthrottledtext'; } $hookErr = false; Hooks::run('UserCanSendEmail', array(&$user, &$hookErr)); Hooks::run('EmailUserPermissionsErrors', array($user, $editToken, &$hookErr)); if ($hookErr) { return $hookErr; } return null; }
/** * Check whether a user is allowed to send email * * @param User $user * @param string $editToken Edit token * @return string|null Null on success or string on error */ public static function getPermissionsError($user, $editToken) { global $wgEnableEmail, $wgEnableUserEmail; if (!$wgEnableEmail || !$wgEnableUserEmail) { return 'usermaildisabled'; } if (!$user->isAllowed('sendemail')) { return 'badaccess'; } if (!$user->isEmailConfirmed()) { return 'mailnologin'; } if ($user->isBlockedFromEmailuser()) { wfDebug("User is blocked from sending e-mail.\n"); return "blockedemailuser"; } if ($user->pingLimiter('emailuser')) { wfDebug("Ping limiter triggered.\n"); return 'actionthrottledtext'; } $hookErr = false; wfRunHooks('UserCanSendEmail', array(&$user, &$hookErr)); wfRunHooks('EmailUserPermissionsErrors', array($user, $editToken, &$hookErr)); if ($hookErr) { return $hookErr; } return null; }