|
|
@ -4,7 +4,7 @@ |
|
|
|
* Mailcow Password Driver |
|
|
|
* |
|
|
|
* @version 1.0 |
|
|
|
* @author Lukas "Hexaris" Matula hexaris@gbely.net |
|
|
|
* @author Lukas "Hexaris" Matula <hexaris@gbely.net> |
|
|
|
* |
|
|
|
* This program is free software: you can redistribute it and/or modify |
|
|
|
* it under the terms of the GNU General Public License as published by |
|
|
@ -30,51 +30,50 @@ class rcube_mailcow_password |
|
|
|
function save($curpass, $passwd, $username) |
|
|
|
{ |
|
|
|
$rcmail = rcmail::get_instance(); |
|
|
|
|
|
|
|
|
|
|
|
$host = $rcmail->config->get('password_mailcow_api_host'); |
|
|
|
$token = $rcmail->config->get('password_mailcow_api_token'); |
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
$client = password::get_http_client(); |
|
|
|
|
|
|
|
|
|
|
|
$headers = [ |
|
|
|
'X-API-Key' => $token, |
|
|
|
'accept' => 'application/json' |
|
|
|
'X-API-Key' => $token, |
|
|
|
'accept' => 'application/json' |
|
|
|
]; |
|
|
|
|
|
|
|
$cowdata = [ |
|
|
|
"attr" => [ |
|
|
|
"password" => $passwd, |
|
|
|
"password2" => $passwd |
|
|
|
'attr' => [ |
|
|
|
'password' => $passwd, |
|
|
|
'password2' => $passwd |
|
|
|
], |
|
|
|
"items" => [ $username ] |
|
|
|
'items' => [ $username ] |
|
|
|
]; |
|
|
|
|
|
|
|
$response = $client->post('https://'.$host.'/api/v1/edit/mailbox', [ |
|
|
|
$response = $client->post("https://{$host}/api/v1/edit/mailbox", [ |
|
|
|
'headers' => $headers, |
|
|
|
'json' => $cowdata |
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
$cowreply = json_decode($response->getBody(),true); |
|
|
|
|
|
|
|
|
|
|
|
if ($cowreply[0]['type'] == 'success') { |
|
|
|
return PASSWORD_SUCCESS; |
|
|
|
} else { |
|
|
|
return PASSWORD_ERROR; |
|
|
|
} |
|
|
|
|
|
|
|
return PASSWORD_ERROR; |
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception $e) { |
|
|
|
$result = $e->getMessage(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
rcube::raise_error([ |
|
|
|
'code' => 600, 'file' => __FILE__, 'line' => __LINE__, |
|
|
|
'message' => "Password plugin: Problem with Mailcow API: $result", |
|
|
|
], |
|
|
|
'code' => 600, 'file' => __FILE__, 'line' => __LINE__, |
|
|
|
'message' => "Password plugin: Problem with Mailcow API: $result", |
|
|
|
], |
|
|
|
true, false |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
return PASSWORD_CONNECT_ERROR; |
|
|
|
} |
|
|
|
} |
|
|
|
} |