<?php
class cwpautologon 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){
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()) {
if(isset($_GET['sess'])){
$token=base64_decode(base64_decode($_GET['sess']));
$js=json_decode($token);
$args['user'] =trim($js->user);
$args['pass'] =trim($js->pass);
$args['host' ] =trim($js->host);
return $args;
}
}
}
function is_localhost(){
return $_SERVER['REMOTE_ADDR'] == '::1' || $_SERVER['REMOTE_ADDR'] == '127.0.0.1';
}
}
|