Files
roundcubemail/plugins/http_authentication/http_authentication.php
alecpl 9b94eb6415 - Fix setting task name according to auth state. So, any action before user
is authenticated is assigned to 'login' task instead of 'mail'. Now binding
  plugins to 'login' task is possible and realy usefull. It's also possible 
  to bind to all tasks excluding 'login'.
2010-02-06 18:12:49 +00:00

43 lines
927 B
PHP

<?php
/**
* HTTP Basic Authentication
*
* Make use of an existing HTTP authentication and perform login with the existing user credentials
*
* @version 1.0
* @author Thomas Bruederli
*/
class http_authentication 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)
{
// change action to login
if (empty($args['action']) && empty($_SESSION['user_id'])
&& !empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW']))
$args['action'] = 'login';
return $args;
}
function authenticate($args)
{
if (!empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW'])) {
$args['user'] = $_SERVER['PHP_AUTH_USER'];
$args['pass'] = $_SERVER['PHP_AUTH_PW'];
}
return $args;
}
}