default-connect-password option
This commit is contained in:
		
							parent
							
								
									22c6f5e589
								
							
						
					
					
						commit
						97f26f880b
					
				| @ -2113,6 +2113,7 @@ pub mod keys { | |||||||
|     pub const OPTION_HIDE_PROXY_SETTINGS: &str = "hide-proxy-settings"; |     pub const OPTION_HIDE_PROXY_SETTINGS: &str = "hide-proxy-settings"; | ||||||
|     pub const OPTION_HIDE_USERNAME_ON_CARD: &str = "hide-username-on-card"; |     pub const OPTION_HIDE_USERNAME_ON_CARD: &str = "hide-username-on-card"; | ||||||
|     pub const OPTION_HIDE_HELP_CARDS: &str = "hide-help-cards"; |     pub const OPTION_HIDE_HELP_CARDS: &str = "hide-help-cards"; | ||||||
|  |     pub const OPTION_DEFAULT_CONNECT_PASSWORD: &str = "default-connect-password"; | ||||||
| 
 | 
 | ||||||
|     // flutter local options
 |     // flutter local options
 | ||||||
|     pub const OPTION_FLUTTER_REMOTE_MENUBAR_STATE: &str = "remoteMenubarState"; |     pub const OPTION_FLUTTER_REMOTE_MENUBAR_STATE: &str = "remoteMenubarState"; | ||||||
| @ -2254,6 +2255,7 @@ pub mod keys { | |||||||
|         OPTION_HIDE_PROXY_SETTINGS, |         OPTION_HIDE_PROXY_SETTINGS, | ||||||
|         OPTION_HIDE_USERNAME_ON_CARD, |         OPTION_HIDE_USERNAME_ON_CARD, | ||||||
|         OPTION_HIDE_HELP_CARDS, |         OPTION_HIDE_HELP_CARDS, | ||||||
|  |         OPTION_DEFAULT_CONNECT_PASSWORD, | ||||||
|     ]; |     ]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -543,7 +543,7 @@ impl Client { | |||||||
|         conn: &mut Stream, |         conn: &mut Stream, | ||||||
|     ) -> ResultType<Option<Vec<u8>>> { |     ) -> ResultType<Option<Vec<u8>>> { | ||||||
|         let rs_pk = get_rs_pk(if key.is_empty() { |         let rs_pk = get_rs_pk(if key.is_empty() { | ||||||
|             hbb_common::config::RS_PUB_KEY |             config::RS_PUB_KEY | ||||||
|         } else { |         } else { | ||||||
|             key |             key | ||||||
|         }); |         }); | ||||||
| @ -2625,7 +2625,7 @@ struct LoginErrorMsgBox { | |||||||
| 
 | 
 | ||||||
| lazy_static::lazy_static! { | lazy_static::lazy_static! { | ||||||
|     static ref LOGIN_ERROR_MAP: Arc<HashMap<&'static str, LoginErrorMsgBox>> = { |     static ref LOGIN_ERROR_MAP: Arc<HashMap<&'static str, LoginErrorMsgBox>> = { | ||||||
|         use hbb_common::config::LINK_HEADLESS_LINUX_SUPPORT; |         use config::LINK_HEADLESS_LINUX_SUPPORT; | ||||||
|         let map = HashMap::from([(LOGIN_SCREEN_WAYLAND, LoginErrorMsgBox{ |         let map = HashMap::from([(LOGIN_SCREEN_WAYLAND, LoginErrorMsgBox{ | ||||||
|             msgtype: "error", |             msgtype: "error", | ||||||
|             title: "Login Error", |             title: "Login Error", | ||||||
| @ -2791,6 +2791,20 @@ pub async fn handle_hash( | |||||||
|     if password.is_empty() { |     if password.is_empty() { | ||||||
|         try_get_password_from_personal_ab(lc.clone(), &mut password); |         try_get_password_from_personal_ab(lc.clone(), &mut password); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     if password.is_empty() { | ||||||
|  |         let p = | ||||||
|  |             crate::ui_interface::get_buildin_option(config::keys::OPTION_DEFAULT_CONNECT_PASSWORD); | ||||||
|  |         if !p.is_empty() { | ||||||
|  |             let mut hasher = Sha256::new(); | ||||||
|  |             hasher.update(p.clone()); | ||||||
|  |             hasher.update(&hash.salt); | ||||||
|  |             let res = hasher.finalize(); | ||||||
|  |             password = res[..].into(); | ||||||
|  |             lc.write().unwrap().password_source = PasswordSource::SharedAb(p); // reuse SharedAb here
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     lc.write().unwrap().password = password.clone(); |     lc.write().unwrap().password = password.clone(); | ||||||
|     let password = if password.is_empty() { |     let password = if password.is_empty() { | ||||||
|         // login without password, the remote side can click accept
 |         // login without password, the remote side can click accept
 | ||||||
| @ -2813,7 +2827,7 @@ pub async fn handle_hash( | |||||||
| #[inline] | #[inline] | ||||||
| fn try_get_password_from_personal_ab(lc: Arc<RwLock<LoginConfigHandler>>, password: &mut Vec<u8>) { | fn try_get_password_from_personal_ab(lc: Arc<RwLock<LoginConfigHandler>>, password: &mut Vec<u8>) { | ||||||
|     let access_token = LocalConfig::get_option("access_token"); |     let access_token = LocalConfig::get_option("access_token"); | ||||||
|     let ab = hbb_common::config::Ab::load(); |     let ab = config::Ab::load(); | ||||||
|     if !access_token.is_empty() && access_token == ab.access_token { |     if !access_token.is_empty() && access_token == ab.access_token { | ||||||
|         let id = lc.read().unwrap().id.clone(); |         let id = lc.read().unwrap().id.clone(); | ||||||
|         if let Some(ab) = ab.ab_entries.iter().find(|a| a.personal()) { |         if let Some(ab) = ab.ab_entries.iter().find(|a| a.personal()) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user