Implement PLESK, SSL Services
This commit is contained in:
123
modules/host/classes/controller/task/host.php
Normal file
123
modules/host/classes/controller/task/host.php
Normal file
@@ -0,0 +1,123 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
/**
|
||||
* This class provides Host Server functions
|
||||
*
|
||||
* @package OSB
|
||||
* @subpackage HostServer
|
||||
* @category Controllers/Task
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
class Controller_Task_Host extends Controller_Task {
|
||||
// Host Server Object
|
||||
private $hs;
|
||||
|
||||
public function __construct(Request $request, Response $response) {
|
||||
parent::__construct($request,$response);
|
||||
|
||||
// To make it easy for some methods, we'll load our service here
|
||||
switch (Request::current()->action()) {
|
||||
case 'getclient':
|
||||
case 'getservice':
|
||||
case 'provision':
|
||||
$sid = $this->request->param('id');
|
||||
|
||||
$hso = ORM::factory('service',$sid)->plugin()->host_server;
|
||||
require Kohana::find_file('vendor',$hso->provision_plugin);
|
||||
$this->hs = new $hso->provision_plugin($hso);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Client Details from Host Server
|
||||
*/
|
||||
public function action_getclient() {
|
||||
$sid = $this->request->param('id');
|
||||
|
||||
print_r((string)$this->hs->get_client(ORM::factory('service',$sid)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Client Details from Host Server
|
||||
*/
|
||||
public function action_getservice() {
|
||||
$sid = $this->request->param('id');
|
||||
|
||||
print_r((string)$this->hs->get_service(ORM::factory('service',$sid)));
|
||||
}
|
||||
|
||||
/**
|
||||
* List services that need to be provisioned
|
||||
*/
|
||||
public function action_provisionlist() {
|
||||
$mode = $this->request->param('id');
|
||||
$cats = array();
|
||||
|
||||
if ($mode)
|
||||
$cats = ORM::factory('product_category')->list_bylistgroup($mode);
|
||||
|
||||
foreach (ORM::Factory('service')->list_provision()->find_all() as $so) {
|
||||
$pc = array();
|
||||
|
||||
// Limit to show only those by the requested category.
|
||||
if ($cats) {
|
||||
if (! $so->product->avail_category_id OR ! preg_match('/^a:/',$so->product->avail_category_id))
|
||||
continue;
|
||||
|
||||
$pc = unserialize($so->product->avail_category_id);
|
||||
|
||||
if (! array_intersect($pc,array_keys($cats)))
|
||||
continue;
|
||||
}
|
||||
|
||||
echo $so->id();
|
||||
|
||||
switch ($mode) {
|
||||
case 'host':
|
||||
printf(' %s %s %s',$so->plugin(),$so->plugin()->host_server->name,$so->service_name());
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a domain for the client
|
||||
*
|
||||
* @param int $id Hosting ID (in OSB)
|
||||
* @return unknown_type
|
||||
*/
|
||||
public function action_provision() {
|
||||
$sid = $this->request->param('id');
|
||||
$so = ORM::factory('service',$sid);
|
||||
|
||||
// Provision Account
|
||||
// @todo Need a test to see if an account alerady exists.
|
||||
/*
|
||||
$result = $this->hs->add_client($so);
|
||||
print_r((string)$result);
|
||||
|
||||
// Next need to get the ID from the account call to set the IP
|
||||
$result = $this->hs->setip(35); // @todo change this number
|
||||
print_r((string)$result);
|
||||
|
||||
// Provision Domain
|
||||
$result = $this->hs->add_service($so);
|
||||
print_r((string)$result);
|
||||
|
||||
// Set Limits
|
||||
$result = $this->hs->setlimits($so);
|
||||
print_r((string)$result);
|
||||
|
||||
// Next need to get the ID for the domain to disable mail
|
||||
$result = $this->hs->disablemail(43);
|
||||
print_r((string)$result);
|
||||
*/
|
||||
}
|
||||
}
|
||||
?>
|
@@ -11,6 +11,9 @@
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
class Model_Host_Server extends ORMOSB {
|
||||
// Host Server doesnt use the update column
|
||||
protected $_updated_column = FALSE;
|
||||
|
||||
public function manage_button($u,$p,$d) {
|
||||
$c = sprintf('Service_Host_%s',$this->provision_plugin);
|
||||
if (! class_exists($c))
|
||||
@@ -20,5 +23,12 @@ class Model_Host_Server extends ORMOSB {
|
||||
|
||||
return $po->manage_button($u,$p,$d);
|
||||
}
|
||||
|
||||
public function config() {
|
||||
if (! $this->provision_plugin_data)
|
||||
throw new Kohana_Exception('No plugin configuration data');
|
||||
|
||||
return unserialize($this->provision_plugin_data);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
15
modules/host/classes/model/host/server/affiliate.php
Normal file
15
modules/host/classes/model/host/server/affiliate.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class supports affiliates Host Server Configuration
|
||||
*
|
||||
* @package OSB
|
||||
* @subpackage HostServer/Affiliate
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2010 Open Source Billing
|
||||
* @license http://dev.osbill.net/license.html
|
||||
*/
|
||||
class Model_Host_Server_Affiliate extends ORMOSB {
|
||||
}
|
||||
?>
|
@@ -51,6 +51,10 @@ class Model_Service_Plugin_Host extends Model_Service_Plugin {
|
||||
* to manage the domain.
|
||||
*/
|
||||
public function manage_button() {
|
||||
// @todo Convert this to a Static_List display
|
||||
if ($this->service->queue == 'PROVISION')
|
||||
return _('To Be Provisioned');
|
||||
|
||||
return ($this->host_username AND $this->host_password) ? $this->host_server->manage_button($this->host_username,$this->host_password,$this->name()) : '';
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user