summaryrefslogtreecommitdiffstats
path: root/application/forms/Config/AuditLogConfigForm.php
diff options
context:
space:
mode:
Diffstat (limited to 'application/forms/Config/AuditLogConfigForm.php')
-rw-r--r--application/forms/Config/AuditLogConfigForm.php93
1 files changed, 93 insertions, 0 deletions
diff --git a/application/forms/Config/AuditLogConfigForm.php b/application/forms/Config/AuditLogConfigForm.php
new file mode 100644
index 0000000..6e93b5a
--- /dev/null
+++ b/application/forms/Config/AuditLogConfigForm.php
@@ -0,0 +1,93 @@
+<?php
+
+/* Icinga Web 2 | (c) 2018 Icinga Development Team | GPLv2+ */
+
+namespace Icinga\Module\Audit\Forms\Config;
+
+use Icinga\Forms\ConfigForm;
+
+class AuditLogConfigForm extends ConfigForm
+{
+ public function createElements(array $formData)
+ {
+ $this->addElement(
+ 'select',
+ 'log_type',
+ [
+ 'autosubmit' => true,
+ 'label' => $this->translate('Standard Log'),
+ 'description' => $this->translate('Human-readable message log'),
+ 'multiOptions' => [
+ 'none' => $this->translate('None', 'log.type'),
+ 'file' => $this->translate('File'),
+ 'syslog' => 'Syslog'
+ ]
+ ]
+ );
+ if (isset($formData['log_type']) && $formData['log_type'] === 'file') {
+ $this->addElement(
+ 'text',
+ 'log_path',
+ [
+ 'label' => $this->translate('Standard Log Path'),
+ 'description' => $this->translate('The full path to the standard log'),
+ 'placeholder' => '/var/log/icingaweb2/audit.log'
+ ]
+ );
+ } elseif (isset($formData['log_type']) && $formData['log_type'] === 'syslog') {
+ $this->addElement(
+ 'text',
+ 'log_ident',
+ [
+ 'label' => $this->translate('Ident'),
+ 'description' => $this->translate('The identifier to use for syslog messages'),
+ 'placeholder' => 'icingaweb2-audit'
+ ]
+ );
+ $this->addElement(
+ 'select',
+ 'log_facility',
+ [
+ 'label' => $this->translate('Facility'),
+ 'description' => $this->translate('The facility to send syslog messages to'),
+ 'multiOptions' => [
+ '' => 'auth', // The default
+ 'authpriv' => 'authpriv',
+ 'user' => 'user',
+ 'local0' => 'local0',
+ 'local1' => 'local1',
+ 'local2' => 'local2',
+ 'local3' => 'local3',
+ 'local4' => 'local4',
+ 'local5' => 'local5',
+ 'local6' => 'local6',
+ 'local7' => 'local7'
+ ]
+ ]
+ );
+ }
+
+ $this->addElement(
+ 'checkbox',
+ 'stream_format',
+ [
+ 'autosubmit' => true,
+ 'label' => $this->translate('JSON Log'),
+ 'description' => $this->translate('Machine-parsable JSON objects'),
+ 'checkedValue' => 'json',
+ 'uncheckedValue' => 'none'
+ ]
+ );
+ if (isset($formData['stream_format']) && $formData['stream_format'] === 'json') {
+ $this->addElement(
+ 'text',
+ 'stream_path',
+ [
+ 'label' => $this->translate('JSON Log Path'),
+ 'description' => $this->translate('The full path to the JSON log'),
+ 'placeholder' => '/var/log/icingaweb2/audit.json'
+ ]
+ );
+ }
+ }
+}