$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 = escapeshellarg(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'); } } render_page($user, $TAB, 'add_key'); // Flush session messages unset($_SESSION['error_msg']); unset($_SESSION['ok_msg']);