Added SSL
This commit is contained in:
149
modules/ssl/classes/Controller/Admin/Ssl.php
Normal file
149
modules/ssl/classes/Controller/Admin/Ssl.php
Normal file
@@ -0,0 +1,149 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class provides Reseller SSL functions
|
||||
*
|
||||
* @package SSL
|
||||
* @category Controllers/Admin
|
||||
* @author Deon George
|
||||
* @copyright (c) 2009-2014 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
class Controller_Admin_SSL extends Controller_SSL {
|
||||
protected $auth_required = TRUE;
|
||||
|
||||
protected $secure_actions = array(
|
||||
'add'=>3,
|
||||
'edit'=>3,
|
||||
'list'=>3,
|
||||
'listchildca'=>3,
|
||||
'listchildcrt'=>3,
|
||||
'renew'=>3,
|
||||
);
|
||||
|
||||
public function action_add() {
|
||||
Block::factory()
|
||||
->type('form-horizontal')
|
||||
->title('Add/View SSL CA')
|
||||
->title_icon('icon-wrench')
|
||||
->body($this->add_edit());
|
||||
}
|
||||
|
||||
public function action_edit() {
|
||||
list($id,$output) = Table::page(__METHOD__);
|
||||
|
||||
Block::factory()
|
||||
->type('form-horizontal')
|
||||
->title(sprintf('%s: %s',_('Add/View SSL CA'),$id))
|
||||
->title_icon('icon-wrench')
|
||||
->body($this->add_edit($id,$output));
|
||||
}
|
||||
|
||||
public function action_list() {
|
||||
Block::factory()
|
||||
->title('SSL CA Certificates')
|
||||
->title_icon('icon-th-list')
|
||||
->body(Table::factory()
|
||||
->data(ORM::factory('SSL_CA')->find_all())
|
||||
->columns(array(
|
||||
'id'=>'ID',
|
||||
'subject_cn()'=>'Cert',
|
||||
'valid_to(TRUE)'=>'Expires',
|
||||
'validParent(TRUE)'=>'Valid',
|
||||
'count_ca_child(FALSE)'=>'cCA',
|
||||
'count_ssl_child(FALSE)'=>'Crts',
|
||||
'issuer()'=>'Issuer',
|
||||
))
|
||||
->prepend(array(
|
||||
'id'=>array('url'=>URL::link('admin','ssl/edit/')),
|
||||
))
|
||||
);
|
||||
}
|
||||
|
||||
public function action_listchildca() {
|
||||
list($id,$output) = Table::page(__METHOD__);
|
||||
$sco = ORM::factory('SSL_CA',$id);
|
||||
|
||||
if ($sco->list_ca_child())
|
||||
Block::factory()
|
||||
->title(sprintf('SSL CA Certificates for CA: %s',$sco->dn()))
|
||||
->title_icon('icon-th-list')
|
||||
->body(Table::factory()
|
||||
->data($sco->where_active()->list_ca_child())
|
||||
->columns(array(
|
||||
'id'=>'ID',
|
||||
'subject_cn()'=>'Cert',
|
||||
'ski()'=>'Identifier',
|
||||
'valid_to(TRUE)'=>'Expires',
|
||||
'validParent(TRUE)'=>'Valid',
|
||||
'count_ca_child(FALSE)'=>'cCA',
|
||||
'count_ssl_child(FALSE)'=>'Crts',
|
||||
))
|
||||
->prepend(array(
|
||||
'id'=>array('url'=>URL::link('admin','ssl/edit/')),
|
||||
))
|
||||
);
|
||||
|
||||
if ($sco->list_ssl_child())
|
||||
$this->action_listchildcrt();
|
||||
}
|
||||
|
||||
public function action_listchildcrt() {
|
||||
list($id,$output) = Table::page(__METHOD__);
|
||||
$sco = ORM::factory('SSL_CA',$id);
|
||||
|
||||
Block::factory()
|
||||
->title(sprintf('SSL Certificates for CA: %s',$sco->dn()))
|
||||
->title_icon('icon-th-list')
|
||||
->body(Table::factory()
|
||||
->jssort('crt')
|
||||
->data($sco->list_ssl_child())
|
||||
->columns(array(
|
||||
'id'=>'ID',
|
||||
'subject_cn()'=>'Cert',
|
||||
'ski()'=>'Identifier',
|
||||
'valid_to(TRUE)'=>'Expires',
|
||||
'validCA(TRUE)'=>'Valid',
|
||||
))
|
||||
->prepend(array(
|
||||
'id'=>array('url'=>URL::link('user','ssl/view/')),
|
||||
))
|
||||
);
|
||||
}
|
||||
|
||||
public function action_renew() {
|
||||
$so = ORM::factory('SSL',$this->request->param('id'));
|
||||
|
||||
if (! $so->loaded() OR ! Auth::instance()->authorised($so->account))
|
||||
throw HTTP_Exception::factory(403,'Service either doesnt exist, or you are not authorised to see it');
|
||||
|
||||
$so->sign();
|
||||
|
||||
HTTP::redirect(URL::link('user','ssl/view/'.$so->id));
|
||||
}
|
||||
|
||||
private function add_edit($id=NULL,$output='') {
|
||||
$sco = ORM::factory('SSL_CA',$id);
|
||||
|
||||
if ($this->request->post()) {
|
||||
if (! $sco->account_id)
|
||||
$sco->account_id = (string)Auth::instance()->get_user();
|
||||
|
||||
// Set our values, so that our filters have data
|
||||
$sco->values($this->request->post());
|
||||
// To trigger our filter to get the correct parent
|
||||
$sco->ssl_ca_id = -1;
|
||||
|
||||
if ($sco->changed() AND ! $this->save($sco))
|
||||
$sco->reload();
|
||||
|
||||
if ($sco->saved())
|
||||
HTTP::redirect(URL::link('admin','ssl/edit/'.$sco->id));
|
||||
}
|
||||
|
||||
return View::factory('ssl/admin/add_edit')
|
||||
->set('o',$sco)
|
||||
->set('mode',$this->request->action());
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user