-
Notifications
You must be signed in to change notification settings - Fork 86
/
AutoLoginToAnyPanelFromMyServices.php
59 lines (51 loc) · 2.08 KB
/
AutoLoginToAnyPanelFromMyServices.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
/**
* Auto-Login to cPanel/Plesk from My Services
*
* @package WHMCS
* @copyright Katamaze
* @link https://katamaze.com
* @author Davide Mantenuto <[email protected]>
*/
// IMPORTANT! The hook requires changes to two template files. Read the following for instructions
// https://github.com/Katamaze/WHMCS-Free-Action-Hooks/blob/master/README.md#cpanel--plesk-login-button-in-my-services
use WHMCS\Database\Capsule;
add_hook('ClientAreaPage', 1, function($vars)
{
if ($vars['filename'] == 'clientarea' AND $_GET['action'] == 'services' AND $_SESSION['uid'])
{
$productIDs = Capsule::select(Capsule::raw('SELECT t1.id, t2.type FROM tblhosting AS t1 LEFT JOIN tblservers AS t2 ON t1.server = t2.id WHERE t1.userid = ' . $_SESSION['uid'] . ' AND t1.server != "0" AND t1.domainstatus IN ("Active", "Suspended") AND t1.username != "" AND t2.type != ""'));
foreach ($productIDs as $v)
{
$output['kt_autologin'][$v->id] = $v;
}
return $output;
}
elseif ($vars['filename'] == 'clientarea' AND $_GET['action'] == 'productdetails' AND $_GET['id'] AND $_GET['autologin'])
{
$product = Capsule::select(Capsule::raw('SELECT t2.type FROM tblhosting AS t1 LEFT JOIN tblservers AS t2 ON t1.server = t2.id WHERE t1.id = ' . $_GET['id'] . ' AND t1.server != "0" AND t1.domainstatus IN ("Active", "Suspended") AND t1.username IS NOT NULL AND t1.password IS NOT NULL AND t2.type IS NOT NULL LIMIT 1'))[0];
switch ($product->type)
{
case 'cpanel': header('Location: clientarea.php?action=productdetails&id=' . $_GET['id'] . '&dosinglesignon=1'); die(); break;
}
}
});
add_hook('ClientAreaHeadOutput', 1, function($vars)
{
if ($vars['filename'] == 'clientarea' AND $_GET['action'] == 'productdetails' AND $_GET['id'] AND $_GET['autologin'])
{
return <<<HTML
<style>
body {
visibility:hidden;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$("#domain form").removeAttr('target');
$("#domain form").submit();
});
</script>
HTML;
}
});