diff options
| author | Tristan Zur <tzur@web.web.ccwn.org> | 2014-03-27 22:27:47 +0100 |
|---|---|---|
| committer | Tristan Zur <tzur@web.web.ccwn.org> | 2014-03-27 22:27:47 +0100 |
| commit | b62676ca5d3d6f6ba3f019ea3f99722e165a98d8 (patch) | |
| tree | 86722cb80f07d4569f90088eeaea2fc2f6e2ef94 /webmail/plugins/autologon | |
Diffstat (limited to 'webmail/plugins/autologon')
| -rw-r--r-- | webmail/plugins/autologon/autologon.php | 50 | ||||
| -rw-r--r-- | webmail/plugins/autologon/tests/Autologon.php | 23 |
2 files changed, 73 insertions, 0 deletions
diff --git a/webmail/plugins/autologon/autologon.php b/webmail/plugins/autologon/autologon.php new file mode 100644 index 0000000..63ffb94 --- /dev/null +++ b/webmail/plugins/autologon/autologon.php @@ -0,0 +1,50 @@ +<?php + +/** + * Sample plugin to try out some hooks. + * This performs an automatic login if accessed from localhost + * + * @license GNU GPLv3+ + * @author Thomas Bruederli + */ +class autologon extends rcube_plugin +{ + public $task = 'login'; + + function init() + { + $this->add_hook('startup', array($this, 'startup')); + $this->add_hook('authenticate', array($this, 'authenticate')); + } + + function startup($args) + { + $rcmail = rcmail::get_instance(); + + // change action to login + if (empty($_SESSION['user_id']) && !empty($_GET['_autologin']) && $this->is_localhost()) + $args['action'] = 'login'; + + return $args; + } + + function authenticate($args) + { + if (!empty($_GET['_autologin']) && $this->is_localhost()) { + $args['user'] = 'me'; + $args['pass'] = '******'; + $args['host'] = 'localhost'; + $args['cookiecheck'] = false; + $args['valid'] = true; + } + + return $args; + } + + function is_localhost() + { + return $_SERVER['REMOTE_ADDR'] == '::1' || $_SERVER['REMOTE_ADDR'] == '127.0.0.1'; + } + +} + diff --git a/webmail/plugins/autologon/tests/Autologon.php b/webmail/plugins/autologon/tests/Autologon.php new file mode 100644 index 0000000..0de193e --- /dev/null +++ b/webmail/plugins/autologon/tests/Autologon.php @@ -0,0 +1,23 @@ +<?php + +class Autologon_Plugin extends PHPUnit_Framework_TestCase +{ + + function setUp() + { + include_once dirname(__FILE__) . '/../autologon.php'; + } + + /** + * Plugin object construction test + */ + function test_constructor() + { + $rcube = rcube::get_instance(); + $plugin = new autologon($rcube->api); + + $this->assertInstanceOf('autologon', $plugin); + $this->assertInstanceOf('rcube_plugin', $plugin); + } +} + |
