3, 'adduser'=>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_adduser() { $so = ORM::factory('SSL'); if ($this->request->post()) { $so->account_id = (string)Auth::instance()->get_user(); // Set our values, so that our filters have data $so->values($this->request->post()); $this->save($so); if ($so->saved()) HTTP::redirect(URL::link('user','ssl/view/'.$so->id)); } Block::factory() ->type('form-horizontal') ->title('SSL Certificate') ->title_icon('fa-certificate') ->body(View::factory('ssl/admin/adduser')->set('o',$so)->set('mode','add')); } 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()); } } ?>