diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/Api/MaintenanceController.php b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/Api/MaintenanceController.php index 0a2e180da..ce3977eca 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/Api/MaintenanceController.php +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/Api/MaintenanceController.php @@ -41,6 +41,18 @@ use OPNsense\HAProxy\HAProxy; */ class MaintenanceController extends ApiControllerBase { + /** + * jQuery bootstrap certificates diff list + * @return array|mixed + */ + public function searchCertificateDiffAction() + { + return $this->getData( + ["cert_diff_list"], + ["rowCount", "current", "searchPhrase", "sort"] + ); + } + /** * jQuery bootstrap server list * @return array|mixed @@ -53,6 +65,42 @@ class MaintenanceController extends ApiControllerBase ); } + /** + * sync certificate for frontends + * @return array|mixed + */ + public function certSyncAction() + { + return $this->syncCerts( + ["cert_sync"], + ["frontend_ids"] + ); + } + + /** + * show certificate diff for frontends + * @return array|mixed + */ + public function certDiffAction() + { + return $this->getData( + ["cert_diff"], + ["frontend_ids"] + ); + } + + /** + * show certificate actions for frontends + * @return array|mixed + */ + public function certActionsAction() + { + return $this->getData( + ["cert_actions"], + ["frontend_ids"] + ); + } + /** * set server weight * @return array|mixed @@ -145,7 +193,7 @@ class MaintenanceController extends ApiControllerBase } /** - * Executes a backend command to save data + * Executes a backend command which returns output on error * @param array $command * @param array $arguments * @return array|string[] @@ -167,4 +215,28 @@ class MaintenanceController extends ApiControllerBase "message" => 'only accept POST Requests.' ]; } + + /** + * Executes a ssl certificate sync + * @param array $command + * @param array $arguments + * @return array|string[] + */ + protected function syncCerts(array $command, array $arguments = []) + { + if ($this->request->isPost()) { + $output = $this->safeBackendCmd($command, $arguments); + $result = json_decode($output, true); + + return [ + "status" => "ok", + "result" => $result, + ]; + } + return [ + "status" => 'unavailable', + "message" => 'only accept POST Requests.' + ]; + } + } diff --git a/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/maintenance.volt b/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/maintenance.volt index 63c870e6d..30ac21b46 100644 --- a/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/maintenance.volt +++ b/net/haproxy/src/opnsense/mvc/app/views/OPNsense/HAProxy/maintenance.volt @@ -26,9 +26,114 @@ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #} -