\ No newline at end of file
diff --git a/modules/checkout/views/checkout/plugin/paypal/before.php b/modules/checkout/views/checkout/plugin/paypal/before.php
index 94cc7c5a..bc49a33b 100644
--- a/modules/checkout/views/checkout/plugin/paypal/before.php
+++ b/modules/checkout/views/checkout/plugin/paypal/before.php
@@ -1,32 +1,30 @@
-
Paypal will be used to pay for the following items:
diff --git a/modules/ssl/classes/Controller/Reseller/Ssl.php b/modules/ssl/classes/Controller/Reseller/Ssl.php
index fea423d1..2f076395 100644
--- a/modules/ssl/classes/Controller/Reseller/Ssl.php
+++ b/modules/ssl/classes/Controller/Reseller/Ssl.php
@@ -127,8 +127,18 @@ class Controller_Reseller_SSL extends Controller_SSL {
private function add_edit($id=NULL,$output='') {
$sco = ORM::factory('SSL_CA',$id);
- if ($_POST AND $sco->values($_POST)->changed() AND ! ($this->save($sco)))
- $sco->reload();
+ 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->parent_ssl_ca_id = -1;
+
+ if ($sco->changed() AND ! $this->save($sco))
+ $sco->reload();
+ }
return View::factory('ssl/reseller/add_edit')
->set('o',$sco);
diff --git a/modules/ssl/classes/Model/SSL/CA.php b/modules/ssl/classes/Model/SSL/CA.php
index d65f5480..caae5ff7 100644
--- a/modules/ssl/classes/Model/SSL/CA.php
+++ b/modules/ssl/classes/Model/SSL/CA.php
@@ -36,15 +36,16 @@ class Model_SSL_CA extends ORM_OSB {
}
public function rules() {
- return array(
+ return Arr::merge(parent::rules(),array(
'sign_cert'=>array(
+ array('not_empty'),
array(array($this,'isCert')),
array(array($this,'isCA')),
),
'parent_ssl_ca_id'=>array(
array(array($this,'rule_parentExist')),
),
- );
+ ));
}
private $_so = NULL;
@@ -120,10 +121,30 @@ class Model_SSL_CA extends ORM_OSB {
return $this;
}
+ /**
+ * Filter to find the parent SSL_CA
+ *
+ * @notes This filter only runs when the value passed is -1
+ */
public function filter_getParent() {
- foreach (ORM::factory($this->_object_name)->find_all() as $sco)
- if ($sco->aki_keyid() == $this->aki_keyid())
+ // This cannot be an array
+ if (count(func_get_args()) != 1)
+ return NULL;
+
+ $x = func_get_args();
+ $x = array_pop($x);
+
+ // This filter only runs when our value is -1
+ if ($x != -1)
+ return $x;
+
+ foreach (ORM::factory($this->_object_name)->find_all() as $sco) {
+ if ($sco->ski() == $this->aki_keyid())
return $sco->id;
+ }
+
+ // If we got here, we couldnt find it
+ return $this->isRoot() ? NULL : $x;
}
public function list_childca() {
@@ -136,7 +157,7 @@ class Model_SSL_CA extends ORM_OSB {
public function rule_parentExist() {
// Our parent_ssl_ca_id should have been populated by filter_GetParent().
- return $this->parent_ssl_ca_id OR $this->isRoot();
+ return ($this->parent_ssl_ca_id > 0) OR $this->isRoot();
}
}
?>
diff --git a/modules/ssl/classes/Model/Service/Plugin/Ssl.php b/modules/ssl/classes/Model/Service/Plugin/Ssl.php
index 689dd5fc..0cd248fe 100644
--- a/modules/ssl/classes/Model/Service/Plugin/Ssl.php
+++ b/modules/ssl/classes/Model/Service/Plugin/Ssl.php
@@ -72,36 +72,20 @@ class Model_Service_Plugin_Ssl extends Model_Service_Plugin {
return $this;
}
- public function validCA() {
- return $this->ca->validParent();
- }
-
- // If we change the SSL certificate, we need to reload our SSL object
- public function values(array $values, array $expected = NULL) {
- parent::values($values,$expected);
-
- if (array_key_exists('cert',$values))
- $this->_so = SSL::instance($this->cert);
-
- return $this;
- }
-
/**
- * Get specific service details for use in other modules
- * For Example: Invoice
- *
- * @todo Make the rendered items configurable
- * @todo Change this method name, now that it is public
+ * Return all our CA Certs for this certificate
*/
- // @todo This needs to be validated for this model
- public function _details($type) {
- switch ($type) {
- case 'invoice_detail_items':
- return array();
- break;
- default:
- return parent::$_details($type);
+ public function cacerts() {
+ $result = array();
+
+ $x = $this->ssl_ca_id;
+ while ($x) {
+ $sco = ORM::factory('SSL_CA',$x);
+ array_push($result,$sco->sign_cert);
+ $x = $sco->parent_ssl_ca_id;
}
+
+ return $result;
}
public function download_button() {
@@ -119,19 +103,6 @@ class Model_Service_Plugin_Ssl extends Model_Service_Plugin {
return $output;
}
- public function cacerts() {
- $result = array();
-
- $x = $this->ssl_ca_id;
- while ($x) {
- $sco = ORM::factory('SSL_CA',$x);
- array_push($result,$sco->sign_cert);
- $x = $sco->parent_ssl_ca_id;
- }
-
- return $result;
- }
-
/**
* Renew an SSL Certificate
*/
@@ -171,5 +142,37 @@ class Model_Service_Plugin_Ssl extends Model_Service_Plugin {
throw new Kohana_Exception('Error Creating SSL Certificate :error',array(':error'=>openssl_error_string()));
}
}
+
+ public function validCA() {
+ return $this->ca->validParent();
+ }
+
+ // If we change the SSL certificate, we need to reload our SSL object
+ public function values(array $values, array $expected = NULL) {
+ parent::values($values,$expected);
+
+ if (array_key_exists('cert',$values))
+ $this->_so = SSL::instance($this->cert);
+
+ return $this;
+ }
+
+ /**
+ * Get specific service details for use in other modules
+ * For Example: Invoice
+ *
+ * @todo Make the rendered items configurable
+ * @todo Change this method name, now that it is public
+ */
+ // @todo This needs to be validated for this model
+ public function _details($type) {
+ switch ($type) {
+ case 'invoice_detail_items':
+ return array();
+ break;
+ default:
+ return parent::$_details($type);
+ }
+ }
}
?>
diff --git a/modules/ssl/classes/SSL.php b/modules/ssl/classes/SSL.php
index 9031edb8..01a13f4b 100644
--- a/modules/ssl/classes/SSL.php
+++ b/modules/ssl/classes/SSL.php
@@ -150,11 +150,11 @@ class SSL {
}
public function get_isCA() {
- return preg_match('/CA:TRUE/',$this->_bc());
+ return preg_match('/CA:TRUE/',$this->_bc()) ? TRUE : FALSE;
}
public function get_isCert() {
- return is_array($this->_details());
+ return is_array($this->_details()) ? TRUE : FALSE;
}
public function get_isRoot() {
diff --git a/modules/ssl/messages/models/ssl_ca.php b/modules/ssl/messages/models/ssl_ca.php
index 42c62ea0..a023fab5 100644
--- a/modules/ssl/messages/models/ssl_ca.php
+++ b/modules/ssl/messages/models/ssl_ca.php
@@ -16,7 +16,7 @@ return array(
'isCA'=>'This is certificate is not a Certificate Authority certificate',
),
'parent_ssl_ca_id'=>array(
- 'Rule_ParentExists'=>'The parent certificate doesnt exist, please define it first',
+ 'rule_parentExist'=>'The parent certificate doesnt exist, please define it first',
),
);
?>
diff --git a/modules/ssl/views/service/user/plugin/ssl/view.php b/modules/ssl/views/service/user/plugin/ssl/view.php
index 228de39d..def554ba 100644
--- a/modules/ssl/views/service/user/plugin/ssl/view.php
+++ b/modules/ssl/views/service/user/plugin/ssl/view.php
@@ -46,6 +46,7 @@