mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-20 19:51:04 +03:00
unlock with PIN (#8977)
* add custom password to unlock settings * If not set, use admin password; if set, use custom settings password. * At least 4 characters. * Set with gui or command line. Signed-off-by: 21pages <sunboeasy@gmail.com> * Update cn.rs --------- Signed-off-by: 21pages <sunboeasy@gmail.com> Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
This commit is contained in:
@@ -316,6 +316,20 @@ pub fn core_main() -> Option<Vec<String>> {
|
||||
}
|
||||
}
|
||||
return None;
|
||||
} else if args[0] == "--set-unlock-pin" {
|
||||
#[cfg(feature = "flutter")]
|
||||
if args.len() == 2 {
|
||||
if crate::platform::is_installed() && is_root() {
|
||||
if let Err(err) = crate::ipc::set_unlock_pin(args[1].to_owned(), false) {
|
||||
println!("{err}");
|
||||
} else {
|
||||
println!("Done!");
|
||||
}
|
||||
} else {
|
||||
println!("Installation and administrative privileges required!");
|
||||
}
|
||||
}
|
||||
return None;
|
||||
} else if args[0] == "--get-id" {
|
||||
println!("{}", crate::ipc::get_id());
|
||||
return None;
|
||||
|
||||
@@ -1617,6 +1617,14 @@ pub fn main_check_super_user_permission() -> bool {
|
||||
check_super_user_permission()
|
||||
}
|
||||
|
||||
pub fn main_get_unlock_pin() -> SyncReturn<String> {
|
||||
SyncReturn(get_unlock_pin())
|
||||
}
|
||||
|
||||
pub fn main_set_unlock_pin(pin: String) -> SyncReturn<String> {
|
||||
SyncReturn(set_unlock_pin(pin))
|
||||
}
|
||||
|
||||
pub fn main_check_mouse_time() {
|
||||
check_mouse_time();
|
||||
}
|
||||
|
||||
35
src/ipc.rs
35
src/ipc.rs
@@ -484,6 +484,8 @@ async fn handle(data: Data, stream: &mut Connection) {
|
||||
};
|
||||
} else if name == "voice-call-input" {
|
||||
value = crate::audio_service::get_voice_call_input_device();
|
||||
} else if name == "unlock-pin" {
|
||||
value = Some(Config::get_unlock_pin());
|
||||
} else {
|
||||
value = None;
|
||||
}
|
||||
@@ -501,6 +503,8 @@ async fn handle(data: Data, stream: &mut Connection) {
|
||||
Config::set_salt(&value);
|
||||
} else if name == "voice-call-input" {
|
||||
crate::audio_service::set_voice_call_input_device(Some(value), true);
|
||||
} else if name == "unlock-pin" {
|
||||
Config::set_unlock_pin(&value);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
@@ -891,6 +895,37 @@ pub fn set_permanent_password(v: String) -> ResultType<()> {
|
||||
set_config("permanent-password", v)
|
||||
}
|
||||
|
||||
#[cfg(feature = "flutter")]
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||
pub fn set_unlock_pin(v: String, translate: bool) -> ResultType<()> {
|
||||
let v = v.trim().to_owned();
|
||||
let min_len = 4;
|
||||
if !v.is_empty() && v.len() < min_len {
|
||||
let err = if translate {
|
||||
crate::lang::translate(
|
||||
"Requires at least {".to_string() + &format!("{min_len}") + "} characters",
|
||||
)
|
||||
} else {
|
||||
// Sometimes, translated can't show normally in command line
|
||||
format!("Requires at least {} characters", min_len)
|
||||
};
|
||||
bail!(err);
|
||||
}
|
||||
Config::set_unlock_pin(&v);
|
||||
set_config("unlock-pin", v)
|
||||
}
|
||||
|
||||
#[cfg(feature = "flutter")]
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||
pub fn get_unlock_pin() -> String {
|
||||
if let Ok(Some(v)) = get_config("unlock-pin") {
|
||||
Config::set_unlock_pin(&v);
|
||||
v
|
||||
} else {
|
||||
Config::get_unlock_pin()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_id() -> String {
|
||||
if let Ok(Some(v)) = get_config("id") {
|
||||
// update salt also, so that next time reinstallation not causing first-time auto-login failure
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "关于 RustDesk"),
|
||||
("Send clipboard keystrokes", "发送剪贴板按键"),
|
||||
("network_error_tip", "请检查网络连接,然后点击再试"),
|
||||
("Unlock with PIN", "使用 PIN 码解锁设置"),
|
||||
("Requires at least {} characters", "不少于{}个字符"),
|
||||
("Wrong PIN", "PIN 码错误"),
|
||||
("Set PIN", "设置 PIN 码"),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "O RustDesk"),
|
||||
("Send clipboard keystrokes", "Odesílat stisky kláves schránky"),
|
||||
("network_error_tip", "Zkontrolujte prosím připojení k síti a klikněte na tlačítko Opakovat."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "Über RustDesk"),
|
||||
("Send clipboard keystrokes", "Tastenanschläge aus der Zwischenablage senden"),
|
||||
("network_error_tip", "Bitte überprüfen Sie Ihre Netzwerkverbindung und versuchen Sie es dann erneut."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -631,6 +631,10 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("cancel-bot-confirm-tip", "Sei sicuro di voler annullare Telegram?"),
|
||||
("About RustDesk", "Info su RustDesk"),
|
||||
("Send clipboard keystrokes", "Invia sequenze tasti appunti"),
|
||||
("network_error_tip", "Controlla la connessione di rete, quindi seleziona 'Riprova'.")
|
||||
("network_error_tip", "Controlla la connessione di rete, quindi seleziona 'Riprova'."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "RustDeskについて"),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "RustDesk 대하여"),
|
||||
("Send clipboard keystrokes", "클립보드 키 입력 전송"),
|
||||
("network_error_tip", "네트워크 연결을 확인한 후 다시 시도하세요."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "Over RustDesk"),
|
||||
("Send clipboard keystrokes", "Klembord toetsaanslagen verzenden"),
|
||||
("network_error_tip", "Controleer de netwerkverbinding en selecteer 'Opnieuw proberen'."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "О RustDesk"),
|
||||
("Send clipboard keystrokes", "Отправлять нажатия клавиш из буфера обмена"),
|
||||
("network_error_tip", "Проверьте подключение к сети, затем нажмите \"Повтор\"."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "O RustDesk"),
|
||||
("Send clipboard keystrokes", "Odoslať stlačenia klávesov zo schránky"),
|
||||
("network_error_tip", "Skontrolujte svoje sieťové pripojenie a potom kliknite na tlačidlo Opakovať."),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "關於 RustDesk"),
|
||||
("Send clipboard keystrokes", "發送剪貼簿按鍵"),
|
||||
("network_error_tip", "請檢查網路連結,然後點擊重試"),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", "Про Rustdesk"),
|
||||
("Send clipboard keystrokes", "Надіслати вміст буфера обміну"),
|
||||
("network_error_tip", "Будь ласка, перевірте ваше підключення до мережі та натисність \"Повторити\""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -632,5 +632,9 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||
("About RustDesk", ""),
|
||||
("Send clipboard keystrokes", ""),
|
||||
("network_error_tip", ""),
|
||||
("Unlock with PIN", ""),
|
||||
("Requires at least {} characters", ""),
|
||||
("Wrong PIN", ""),
|
||||
("Set PIN", ""),
|
||||
].iter().cloned().collect();
|
||||
}
|
||||
|
||||
@@ -1444,3 +1444,22 @@ pub fn check_hwcodec() {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "flutter")]
|
||||
pub fn get_unlock_pin() -> String {
|
||||
#[cfg(any(target_os = "android", target_os = "ios"))]
|
||||
return String::default();
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||
return ipc::get_unlock_pin();
|
||||
}
|
||||
|
||||
#[cfg(feature = "flutter")]
|
||||
pub fn set_unlock_pin(pin: String) -> String {
|
||||
#[cfg(any(target_os = "android", target_os = "ios"))]
|
||||
return String::default();
|
||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||
match ipc::set_unlock_pin(pin, true) {
|
||||
Ok(_) => String::default(),
|
||||
Err(err) => err.to_string(),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user