preset password warning
This commit is contained in:
parent
ccf5b0ef53
commit
fe0de47805
@ -75,11 +75,50 @@ class _DesktopHomePageState extends State<DesktopHomePage>
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget buildPresetPasswordWarning() {
|
||||||
|
return FutureBuilder<bool>(
|
||||||
|
future: bind.isPresetPassword(),
|
||||||
|
builder: (BuildContext context, AsyncSnapshot<bool> snapshot) {
|
||||||
|
if (snapshot.connectionState == ConnectionState.waiting) {
|
||||||
|
return CircularProgressIndicator(); // Show a loading spinner while waiting for the Future to complete
|
||||||
|
} else if (snapshot.hasError) {
|
||||||
|
return Text(
|
||||||
|
'Error: ${snapshot.error}'); // Show an error message if the Future completed with an error
|
||||||
|
} else if (snapshot.hasData && snapshot.data == true) {
|
||||||
|
return Container(
|
||||||
|
color: Colors.yellow,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Align(
|
||||||
|
child: Text(
|
||||||
|
translate("Security Alert"),
|
||||||
|
style: TextStyle(
|
||||||
|
color: Colors.red,
|
||||||
|
fontSize: 20,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
|
),
|
||||||
|
)).paddingOnly(bottom: 8),
|
||||||
|
Text(
|
||||||
|
translate("preset_password_warning"),
|
||||||
|
style: TextStyle(color: Colors.red),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
).paddingAll(8),
|
||||||
|
); // Show a warning message if the Future completed with true
|
||||||
|
} else {
|
||||||
|
return SizedBox
|
||||||
|
.shrink(); // Show nothing if the Future completed with false or null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
Widget buildLeftPane(BuildContext context) {
|
Widget buildLeftPane(BuildContext context) {
|
||||||
final isIncomingOnly = bind.isIncomingOnly();
|
final isIncomingOnly = bind.isIncomingOnly();
|
||||||
final isOutgoingOnly = bind.isOutgoingOnly();
|
final isOutgoingOnly = bind.isOutgoingOnly();
|
||||||
final logo = loadLogo();
|
final logo = loadLogo();
|
||||||
final children = <Widget>[
|
final children = <Widget>[
|
||||||
|
if (!isOutgoingOnly) buildPresetPasswordWarning(),
|
||||||
if (bind.isCustomClient())
|
if (bind.isCustomClient())
|
||||||
Align(
|
Align(
|
||||||
alignment: Alignment.center,
|
alignment: Alignment.center,
|
||||||
|
@ -954,6 +954,14 @@ impl Config {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_permanent_password(password: &str) {
|
pub fn set_permanent_password(password: &str) {
|
||||||
|
if HARD_SETTINGS
|
||||||
|
.read()
|
||||||
|
.unwrap()
|
||||||
|
.get("password")
|
||||||
|
.map_or(false, |v| v == password)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
let mut config = CONFIG.write().unwrap();
|
let mut config = CONFIG.write().unwrap();
|
||||||
if password == config.password {
|
if password == config.password {
|
||||||
return;
|
return;
|
||||||
|
@ -1849,6 +1849,14 @@ pub fn is_disable_installation() -> SyncReturn<bool> {
|
|||||||
SyncReturn(config::is_disable_installation())
|
SyncReturn(config::is_disable_installation())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn is_preset_password() -> bool {
|
||||||
|
config::HARD_SETTINGS
|
||||||
|
.read()
|
||||||
|
.unwrap()
|
||||||
|
.get("password")
|
||||||
|
.map_or(false, |p| p == &crate::ipc::get_permanent_password())
|
||||||
|
}
|
||||||
|
|
||||||
/// Send a url scheme throught the ipc.
|
/// Send a url scheme throught the ipc.
|
||||||
///
|
///
|
||||||
/// * macOS only
|
/// * macOS only
|
||||||
|
@ -2,7 +2,6 @@ lazy_static::lazy_static! {
|
|||||||
pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
||||||
[
|
[
|
||||||
("desk_tip", "Your desktop can be accessed with this ID and password."),
|
("desk_tip", "Your desktop can be accessed with this ID and password."),
|
||||||
("outgoing_only_desk_tip", "This is a customized edition.\nYou can connect to other devices, but other devices cannot connect to your device."),
|
|
||||||
("connecting_status", "Connecting to the RustDesk network..."),
|
("connecting_status", "Connecting to the RustDesk network..."),
|
||||||
("not_ready_status", "Not ready. Please check your connection"),
|
("not_ready_status", "Not ready. Please check your connection"),
|
||||||
("ID/Relay Server", "ID/Relay server"),
|
("ID/Relay Server", "ID/Relay server"),
|
||||||
@ -215,5 +214,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("wrong-2fa-code", "Can't verify the code. Check that code and local time settings are correct"),
|
("wrong-2fa-code", "Can't verify the code. Check that code and local time settings are correct"),
|
||||||
("enter-2fa-title", "Two-factor authentication"),
|
("enter-2fa-title", "Two-factor authentication"),
|
||||||
("powered_by_me", "Powered by RustDesk"),
|
("powered_by_me", "Powered by RustDesk"),
|
||||||
|
("outgoing_only_desk_tip", "This is a customized edition.\nYou can connect to other devices, but other devices cannot connect to your device."),
|
||||||
|
("preset_password_warning", "This software uses a default password. Anyone knowing this password can gain full control of your device. If you did not expect this, uninstall the software immediately."),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -588,5 +588,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Please select the session you want to connect to", ""),
|
("Please select the session you want to connect to", ""),
|
||||||
("powered_by_me", ""),
|
("powered_by_me", ""),
|
||||||
("outgoing_only_desk_tip", ""),
|
("outgoing_only_desk_tip", ""),
|
||||||
|
("preset_password_warning", ""),
|
||||||
|
("Security Alert", ""),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user