mirror of
https://github.com/myvesta/vesta.git
synced 2024-11-23 05:50:37 -08:00
71 lines
2.0 KiB
PHP
71 lines
2.0 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Vesta Control Panel Password Driver
|
|
*
|
|
* @version 1.0
|
|
* @author Serghey Rodin <skid@vestacp.com>
|
|
*/
|
|
|
|
class rcube_vesta_password
|
|
{
|
|
function save($curpass, $passwd)
|
|
{
|
|
$rcmail = rcmail::get_instance();
|
|
$vesta_host = $rcmail->config->get('password_vesta_host');
|
|
|
|
if (empty($vesta_host))
|
|
{
|
|
$vesta_host = 'localhost';
|
|
}
|
|
|
|
$vesta_port = $rcmail->config->get('password_vesta_port');
|
|
if (empty($vesta_port))
|
|
{
|
|
$vesta_port = '8083';
|
|
}
|
|
|
|
$postvars = array(
|
|
'email' => $_SESSION['username'],
|
|
'password' => $curpass,
|
|
'new' => $passwd
|
|
);
|
|
|
|
$postdata = http_build_query($postvars);
|
|
|
|
$send = 'POST /reset/mail/ HTTP/1.1' . PHP_EOL;
|
|
$send .= 'Host: ' . $vesta_host . PHP_EOL;
|
|
$send .= 'User-Agent: PHP Script' . PHP_EOL;
|
|
$send .= 'Content-length: ' . strlen($postdata) . PHP_EOL;
|
|
$send .= 'Content-type: application/x-www-form-urlencoded' . PHP_EOL;
|
|
$send .= 'Connection: close' . PHP_EOL;
|
|
$send .= PHP_EOL;
|
|
$send .= $postdata . PHP_EOL . PHP_EOL;
|
|
|
|
//$fp = fsockopen('ssl://' . $vesta_host, $vesta_port);
|
|
$errno = "";
|
|
$errstr = "";
|
|
$context = stream_context_create();
|
|
|
|
$result = stream_context_set_option($context, 'ssl', 'verify_peer', false);
|
|
$result = stream_context_set_option($context, 'ssl', 'verify_peer_name', false);
|
|
$result = stream_context_set_option($context, 'ssl', 'verify_host', false);
|
|
$result = stream_context_set_option($context, 'ssl', 'allow_self_signed', true);
|
|
|
|
$fp = stream_socket_client('ssl://' . $vesta_host . ':'.$vesta_port, $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context);
|
|
|
|
fputs($fp, $send);
|
|
$result = fread($fp, 2048);
|
|
fclose($fp);
|
|
|
|
if(strpos($result, 'ok') && !strpos($result, 'error'))
|
|
{
|
|
return PASSWORD_SUCCESS;
|
|
}
|
|
else {
|
|
return PASSWORD_ERROR;
|
|
}
|
|
|
|
}
|
|
}
|