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';
         }
     }
 }