$value) { $idlist[] = trim($data[$key]["ID"]); $keylist[] = trim($data[$key]["KEY"]); } $v_key_parts = explode(" ", $_POST["v_key"]); $key_id = trim($v_key_parts[2]); if ($v_key_parts[2] == "") { $v_key_parts[2] = md5(time()); $_POST["v_key"] .= " " . $v_key_parts[2]; } //for deleting / revoking key the last part user@domain is used therefore needs to be unique //maybe consider adding random generated message or even an human read able string set by user? if (in_array($v_key_parts[2], $idlist)) { $_SESSION["error_msg"] = _("SSH KEY already exists"); } if (in_array($v_key_parts[1], $keylist)) { $_SESSION["error_msg"] = _("SSH KEY already exists"); } $v_key = quoteshellarg(trim($_POST["v_key"])); } } if (empty($_SESSION["error_msg"])) { exec(HESTIA_CMD . "v-add-user-ssh-key " . $user . " " . $v_key, $output, $return_var); check_return_code($return_var, $output); } unset($output); // Flush field values on success if (empty($_SESSION["error_msg"])) { $_SESSION["ok_msg"] = _("SSH KEY created"); } } if (empty($v_key)) { $v_key = ""; } render_page($user, $TAB, "add_key"); // Flush session messages unset($_SESSION["error_msg"]); unset($_SESSION["ok_msg"]);