PHPCS-clean RequireValidateEmail
This commit is contained in:
		@@ -2,7 +2,8 @@
 | 
			
		||||
/**
 | 
			
		||||
 * StatusNet, the distributed open-source microblogging tool
 | 
			
		||||
 *
 | 
			
		||||
 * Plugin that requires the user to have a validated email address before they can post notices
 | 
			
		||||
 * Plugin that requires the user to have a validated email address before they
 | 
			
		||||
 * can post notices
 | 
			
		||||
 *
 | 
			
		||||
 * PHP version 5
 | 
			
		||||
 *
 | 
			
		||||
@@ -32,44 +33,64 @@ if (!defined('STATUSNET') && !defined('LACONICA')) {
 | 
			
		||||
    exit(1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Plugin for requiring a validated email before posting.
 | 
			
		||||
 *
 | 
			
		||||
 * Enable this plugin using addPlugin('RequireValidatedEmail');
 | 
			
		||||
 *
 | 
			
		||||
 * @category  Plugin
 | 
			
		||||
 * @package   StatusNet
 | 
			
		||||
 * @author    Craig Andrews <candrews@integralblue.com>
 | 
			
		||||
 * @author    Brion Vibber <brion@status.net>
 | 
			
		||||
 * @author    Evan Prodromou <evan@status.net>
 | 
			
		||||
 * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
 | 
			
		||||
 * @copyright 2009-2010 StatusNet, Inc.
 | 
			
		||||
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 | 
			
		||||
 * @link      http://status.net/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
{
 | 
			
		||||
    // Users created before this time will be grandfathered in
 | 
			
		||||
    // without the validation requirement.
 | 
			
		||||
    /**
 | 
			
		||||
     * Users created before this time will be grandfathered in
 | 
			
		||||
     * without the validation requirement.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    public $grandfatherCutoff = null;
 | 
			
		||||
 | 
			
		||||
    // If OpenID plugin is installed, users with a verified OpenID
 | 
			
		||||
    // association whose provider URL matches one of these regexes
 | 
			
		||||
    // will be considered to be sufficiently valid for our needs.
 | 
			
		||||
    //
 | 
			
		||||
    // For example, to trust WikiHow and Wikipedia OpenID users:
 | 
			
		||||
    //
 | 
			
		||||
    // addPlugin('RequireValidatedEmailPlugin', array(
 | 
			
		||||
    //    'trustedOpenIDs' => array(
 | 
			
		||||
    //        '!^http://\w+\.wikihow\.com/!',
 | 
			
		||||
    //        '!^http://\w+\.wikipedia\.org/!',
 | 
			
		||||
    //    ),
 | 
			
		||||
    // ));
 | 
			
		||||
    public $trustedOpenIDs=array();
 | 
			
		||||
    /**
 | 
			
		||||
     * If OpenID plugin is installed, users with a verified OpenID
 | 
			
		||||
     * association whose provider URL matches one of these regexes
 | 
			
		||||
     * will be considered to be sufficiently valid for our needs.
 | 
			
		||||
     *
 | 
			
		||||
     * For example, to trust WikiHow and Wikipedia OpenID users:
 | 
			
		||||
     *
 | 
			
		||||
     * addPlugin('RequireValidatedEmailPlugin', array(
 | 
			
		||||
     *    'trustedOpenIDs' => array(
 | 
			
		||||
     *        '!^http://\w+\.wikihow\.com/!',
 | 
			
		||||
     *        '!^http://\w+\.wikipedia\.org/!',
 | 
			
		||||
     *    ),
 | 
			
		||||
     * ));
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function __construct()
 | 
			
		||||
    {
 | 
			
		||||
        parent::__construct();
 | 
			
		||||
    }
 | 
			
		||||
    public $trustedOpenIDs = array();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Event handler for notice saves; rejects the notice
 | 
			
		||||
     * if user's address isn't validated.
 | 
			
		||||
     *
 | 
			
		||||
     * @param Notice $notice
 | 
			
		||||
     * @param Notice $notice The notice being saved
 | 
			
		||||
     *
 | 
			
		||||
     * @return bool hook result code
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onStartNoticeSave($notice)
 | 
			
		||||
    {
 | 
			
		||||
        $user = User::staticGet('id', $notice->profile_id);
 | 
			
		||||
        if (!empty($user)) { // it's a remote notice
 | 
			
		||||
            if (!$this->validated($user)) {
 | 
			
		||||
                throw new ClientException(_m("You must validate your email address before posting."));
 | 
			
		||||
                $msg = _m("You must validate your email address before posting.");
 | 
			
		||||
                throw new ClientException($msg);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
@@ -79,7 +100,8 @@ class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
     * Event handler for registration attempts; rejects the registration
 | 
			
		||||
     * if email field is missing.
 | 
			
		||||
     *
 | 
			
		||||
     * @param RegisterAction $action
 | 
			
		||||
     * @param Action $action Action being executed
 | 
			
		||||
     *
 | 
			
		||||
     * @return bool hook result code
 | 
			
		||||
     */
 | 
			
		||||
    function onStartRegistrationTry($action)
 | 
			
		||||
@@ -100,7 +122,8 @@ class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
     * Check if a user has a validated email address or has been
 | 
			
		||||
     * otherwise grandfathered in.
 | 
			
		||||
     *
 | 
			
		||||
     * @param User $user
 | 
			
		||||
     * @param User $user User to valide
 | 
			
		||||
     *
 | 
			
		||||
     * @return bool
 | 
			
		||||
     */
 | 
			
		||||
    protected function validated($user)
 | 
			
		||||
@@ -113,7 +136,11 @@ class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
 | 
			
		||||
        // Give other plugins a chance to override, if they can validate
 | 
			
		||||
        // that somebody's ok despite a non-validated email.
 | 
			
		||||
        Event::handle('RequireValidatedEmailPlugin_Override', array($user, &$knownGood));
 | 
			
		||||
 | 
			
		||||
        // FIXME: This isn't how to do it! Use Start*/End* instead
 | 
			
		||||
 | 
			
		||||
        Event::handle('RequireValidatedEmailPlugin_Override',
 | 
			
		||||
                      array($user, &$knownGood));
 | 
			
		||||
 | 
			
		||||
        return $knownGood;
 | 
			
		||||
    }
 | 
			
		||||
@@ -122,8 +149,9 @@ class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
     * Check if a user was created before the grandfathering cutoff.
 | 
			
		||||
     * If so, we won't need to check for validation.
 | 
			
		||||
     *
 | 
			
		||||
     * @param User $user
 | 
			
		||||
     * @return bool
 | 
			
		||||
     * @param User $user User to check
 | 
			
		||||
     *
 | 
			
		||||
     * @return bool true if user is grandfathered
 | 
			
		||||
     */
 | 
			
		||||
    protected function grandfathered($user)
 | 
			
		||||
    {
 | 
			
		||||
@@ -141,13 +169,20 @@ class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
     * Override for RequireValidatedEmail plugin. If we have a user who's
 | 
			
		||||
     * not validated an e-mail, but did come from a trusted provider,
 | 
			
		||||
     * we'll consider them ok.
 | 
			
		||||
     *
 | 
			
		||||
     * @param User $user User to check
 | 
			
		||||
     *
 | 
			
		||||
     * @return bool true if user has a trusted OpenID.
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function hasTrustedOpenID($user)
 | 
			
		||||
    {
 | 
			
		||||
        if ($this->trustedOpenIDs && class_exists('User_openid')) {
 | 
			
		||||
            foreach ($this->trustedOpenIDs as $regex) {
 | 
			
		||||
                $oid = new User_openid();
 | 
			
		||||
 | 
			
		||||
                $oid->user_id = $user->id;
 | 
			
		||||
 | 
			
		||||
                $oid->find();
 | 
			
		||||
                while ($oid->fetch()) {
 | 
			
		||||
                    if (preg_match($regex, $oid->canonical)) {
 | 
			
		||||
@@ -159,14 +194,26 @@ class RequireValidatedEmailPlugin extends Plugin
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Add version information for this plugin.
 | 
			
		||||
     *
 | 
			
		||||
     * @param array &$versions Array of associative arrays of version data
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean hook value
 | 
			
		||||
     */
 | 
			
		||||
 | 
			
		||||
    function onPluginVersion(&$versions)
 | 
			
		||||
    {
 | 
			
		||||
        $versions[] = array('name' => 'Require Validated Email',
 | 
			
		||||
        $versions[] =
 | 
			
		||||
          array('name' => 'Require Validated Email',
 | 
			
		||||
                'version' => STATUSNET_VERSION,
 | 
			
		||||
                            'author' => 'Craig Andrews, Evan Prodromou, Brion Vibber',
 | 
			
		||||
                            'homepage' => 'http://status.net/wiki/Plugin:RequireValidatedEmail',
 | 
			
		||||
                'author' => 'Craig Andrews, '.
 | 
			
		||||
                'Evan Prodromou, '.
 | 
			
		||||
                'Brion Vibber',
 | 
			
		||||
                'homepage' =>
 | 
			
		||||
                'http://status.net/wiki/Plugin:RequireValidatedEmail',
 | 
			
		||||
                'rawdescription' =>
 | 
			
		||||
                            _m('The Require Validated Email plugin disables posting for accounts that do not have a validated email address.'));
 | 
			
		||||
                _m('Disables posting without a validated email address.'));
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user