Skip to content

Instantly share code, notes, and snippets.

@jetchirag
Created February 10, 2024 22:10
Show Gist options
  • Save jetchirag/f65f4d5a65d16ae7f5c98f6b7d060318 to your computer and use it in GitHub Desktop.
Save jetchirag/f65f4d5a65d16ae7f5c98f6b7d060318 to your computer and use it in GitHub Desktop.
Log in to DirectAdmin from WHMCS admin area module hook
<?php
/*
* Credits: https://chirag.sh
*/
add_hook('AdminClientServicesTabFields', 1, function($vars) {
$serviceid = $vars['id'];
$command = 'GetClientsProducts';
$postData = array(
'serviceid' => $serviceid,
);
$results = localAPI($command, $postData);
if ($results['result'] != "success"){
return;
}
$form = "hello";
$params = $results['products']['product'][0];
$host = $params["serverhostname"] ? $params["serverhostname"] : $params["serverip"];
$url = sprintf("<span id='daLoginURL'>%s://%s:%s/CMD_LOGIN</span>", "https", WHMCS\Input\Sanitize::encode($host), 2222);
return [
'host' => $url,
];
});
add_hook('AdminAreaFooterOutput', 1, function($vars) {
if ($vars['filename'] != 'clientsservices'){
return;
}
return <<<HTML
<script type="text/javascript">
$( document ).ready(function() {
var url = $("#daLoginURL").text();
var username = $("input#inputUsername").val();
var password= $("input#inputPassword").val();
var form = $('<form>').attr({
'method': 'post',
'action': url,
'target': '_blank',
'style': 'float:left;'
});
var usernameInput = $('<input>').attr({
'type': 'hidden',
'name': 'username',
'value': username
});
var passwordInput = $('<input>').attr({
'type': 'hidden',
'name': 'password',
'value': password
});
var submitButton = $('<input>').attr({
'type': 'submit',
'value': 'Log in to DirectAdmin',
'class': 'btn btn-default'
});
form.append(usernameInput, passwordInput, submitButton);
$('#servicecontent .context-btn-container .row .col-sm-5 .btn-group').prepend(form);
});
</script>
HTML;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment