fix remote_dir
This commit is contained in:
parent
840413db5f
commit
fa2407d857
@ -969,6 +969,25 @@ impl LoginConfigHandler {
|
|||||||
self.save_config(config);
|
self.save_config(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_remote_dir(&self) -> String {
|
||||||
|
serde_json::from_str::<HashMap<String, String>>(&self.get_option("remote_dir"))
|
||||||
|
.unwrap_or_default()
|
||||||
|
.remove(&self.info.username)
|
||||||
|
.unwrap_or_default()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_all_remote_dir(&self, path: String) -> String {
|
||||||
|
let d = self.get_option("remote_dir");
|
||||||
|
let user = self.info.username.clone();
|
||||||
|
let mut x = serde_json::from_str::<HashMap<String, String>>(&d).unwrap_or_default();
|
||||||
|
if path.is_empty() {
|
||||||
|
x.remove(&user);
|
||||||
|
} else {
|
||||||
|
x.insert(user, path);
|
||||||
|
}
|
||||||
|
serde_json::to_string::<HashMap<String, String>>(&x).unwrap_or_default()
|
||||||
|
}
|
||||||
|
|
||||||
fn create_login_msg(&self, password: Vec<u8>) -> Message {
|
fn create_login_msg(&self, password: Vec<u8>) -> Message {
|
||||||
#[cfg(any(target_os = "android", target_os = "ios"))]
|
#[cfg(any(target_os = "android", target_os = "ios"))]
|
||||||
let my_id = crate::common::MOBILE_INFO1.lock().unwrap().clone();
|
let my_id = crate::common::MOBILE_INFO1.lock().unwrap().clone();
|
||||||
@ -984,7 +1003,7 @@ impl LoginConfigHandler {
|
|||||||
};
|
};
|
||||||
if self.is_file_transfer {
|
if self.is_file_transfer {
|
||||||
lr.set_file_transfer(FileTransfer {
|
lr.set_file_transfer(FileTransfer {
|
||||||
dir: self.get_option("remote_dir"),
|
dir: self.get_remote_dir(),
|
||||||
show_hidden: !self.get_option("remote_show_hidden").is_empty(),
|
show_hidden: !self.get_option("remote_show_hidden").is_empty(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
@ -539,7 +539,10 @@ impl Handler {
|
|||||||
if self.is_file_transfer() {
|
if self.is_file_transfer() {
|
||||||
let close_state = self.read().unwrap().close_state.clone();
|
let close_state = self.read().unwrap().close_state.clone();
|
||||||
let mut has_change = false;
|
let mut has_change = false;
|
||||||
for (k, v) in close_state {
|
for (k, mut v) in close_state {
|
||||||
|
if k == "remote_dir" {
|
||||||
|
v = self.lc.read().unwrap().get_all_remote_dir(v);
|
||||||
|
}
|
||||||
let v2 = if v.is_empty() { None } else { Some(&v) };
|
let v2 = if v.is_empty() { None } else { Some(&v) };
|
||||||
if v2 != config.options.get(&k) {
|
if v2 != config.options.get(&k) {
|
||||||
has_change = true;
|
has_change = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user