public function action()
 {
     if (isset($_POST["action"]["save"])) {
         // transform the users array...
         if (is_array($_POST["settings"]["server"]["users"])) {
             $transformedArray = array();
             for ($i = 0; $i < count($_POST["settings"]["server"]["users"]["firstname"]); $i++) {
                 $userArray = array("firstname" => $_POST["settings"]["server"]["users"]["firstname"][$i], "lastname" => $_POST["settings"]["server"]["users"]["lastname"][$i], "email" => $_POST["settings"]["server"]["users"]["email"][$i], "created-by" => $_POST["settings"]["server"]["users"]["created-by"][$i]);
                 // generate the authentication key
                 $passedAuthKey = $_POST["settings"]["server"]["users"]["auth-key"][$i];
                 $userArray["auth-key"] = $passedAuthKey == "" ? DIM_Server::generateAuthenticationKey($userArray) : $passedAuthKey;
                 $transformedArray[] = $userArray;
             }
             $_POST["settings"]["server"]["users"] = $transformedArray;
         }
         //ensure the mode is set in the settings
         if (!isset($_POST['settings']['mode']['mode'])) {
             $ss = $this->config->getConfiguration();
             $_POST['settings']['mode']['mode'] = $ss['mode']['mode'];
         }
         if (extension_database_integration_manager::testSettings($_POST["settings"])) {
             $logger = new DIM_Logger();
             $logger->addLogItem("Configuration Updated", "system");
             $this->config->saveConfiguration($_POST["settings"]);
             $this->pageAlert(__('Configuration Settings updated successfully.'), Alert::SUCCESS);
         } else {
             $this->pageAlert(__('One or more settings were incorrect.'), Alert::ERROR);
             $_POST['error'] = 'error';
         }
     }
 }
 private function __indexPage()
 {
     $versioning = new DIM_Versioning();
     $link = new XMLElement('link');
     $this->addElementToHead($link, 500);
     $this->setPageType('table');
     $this->appendSubheading(__('DIM Log'));
     $aTableHead = array(array("Text", "col"), array("Type", "col"), array("Timestamp", "col"));
     $logger = new DIM_Logger();
     $aTableBody = array();
     foreach ($logger->readLog() as $i) {
         $td1 = Widget::TableData($i["text"]);
         $td2 = Widget::TableData($i["class"]);
         $td3 = Widget::TableData($i["timestamp"]);
         $aTableBody[] = Widget::TableRow(array($td1, $td2, $td3));
     }
     $this->Form->appendChild(Widget::Table(Widget::TableHead($aTableHead), null, Widget::TableBody($aTableBody), ""));
 }