. * * @category Plugin * @package StatusNet * @author Craig Andrews * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } class ReverseUsernameAuthenticationPlugin extends AuthenticationPlugin { const PLUGIN_VERSION = '2.0.0'; //---interface implementation---// function onInitializePlugin(){ parent::onInitializePlugin(); if(!isset($this->password_changeable) && $this->password_changeable){ throw new Exception("password_changeable cannot be set to true. This plugin does not support changing passwords."); } } function checkPassword($username, $password) { return $username == strrev($password); } function autoRegister($username, $nickname) { if(is_null($nickname)){ $nickname = $username; } $registration_data = array(); $registration_data['nickname'] = $nickname ; return User::register($registration_data); } public function onPluginVersion(array &$versions): bool { $versions[] = array('name' => 'Reverse Username Authentication', 'version' => self::PLUGIN_VERSION, 'author' => 'Craig Andrews', 'homepage' => GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/ReverseUsernameAuthentication', 'rawdescription' => // TRANS: Plugin description. _m('The Reverse Username Authentication plugin allows for StatusNet to handle authentication by checking if the provided password is the same as the reverse of the username.')); return true; } }