AppOp: Change identity_url field type to Url
This commit is contained in:
parent
cfa70a3396
commit
696c2e526d
7 changed files with 26 additions and 26 deletions
|
@ -32,7 +32,7 @@ impl AppOp {
|
|||
if let Some(sid) = sid {
|
||||
if let Some(secret) = secret {
|
||||
let _ = self.backend.send(BKCommand::AddThreePID(
|
||||
self.identity_url.clone(),
|
||||
self.identity_url.to_string(), // TODO: Change type to Url
|
||||
secret.clone(),
|
||||
sid.clone(),
|
||||
));
|
||||
|
@ -87,13 +87,13 @@ impl AppOp {
|
|||
});
|
||||
|
||||
let value = entry.clone();
|
||||
let id_server = self.identity_url.clone();
|
||||
let id_server = self.identity_url.to_string();
|
||||
dialog.connect_response(move |w, r| {
|
||||
match gtk::ResponseType::from(r) {
|
||||
gtk::ResponseType::Ok => {
|
||||
if let Some(token) = value.get_text() {
|
||||
let _ = backend.send(BKCommand::SubmitPhoneToken(
|
||||
id_server.clone(),
|
||||
id_server.clone(), // TODO: Change type to Url
|
||||
secret.clone(),
|
||||
sid.clone(),
|
||||
token.to_string(),
|
||||
|
@ -124,14 +124,14 @@ impl AppOp {
|
|||
&msg,
|
||||
);
|
||||
let backend = self.backend.clone();
|
||||
let id_server = self.identity_url.clone();
|
||||
let id_server = self.identity_url.to_string();
|
||||
dialog.add_button(&i18n("Cancel"), gtk::ResponseType::Cancel.into());
|
||||
dialog.add_button(&i18n("Continue"), gtk::ResponseType::Ok.into());
|
||||
dialog.connect_response(move |w, r| {
|
||||
match gtk::ResponseType::from(r) {
|
||||
gtk::ResponseType::Ok => {
|
||||
let _ = backend.send(BKCommand::AddThreePID(
|
||||
id_server.clone(),
|
||||
id_server.clone(), // TODO: Change type to Url
|
||||
secret.clone(),
|
||||
sid.clone(),
|
||||
));
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
use crate::i18n::i18n;
|
||||
use log::error;
|
||||
|
||||
use crate::globals;
|
||||
use gtk;
|
||||
use gtk::prelude::*;
|
||||
|
||||
|
@ -153,20 +152,16 @@ impl AppOp {
|
|||
username: Option<String>,
|
||||
password: Option<String>,
|
||||
server: Url,
|
||||
identity: Option<String>,
|
||||
identity: Url,
|
||||
) -> Option<()> {
|
||||
self.server_url = server;
|
||||
|
||||
self.identity_url = match identity {
|
||||
Some(u) => u,
|
||||
None => String::from(globals::DEFAULT_IDENTITYSERVER),
|
||||
};
|
||||
self.identity_url = identity;
|
||||
|
||||
self.store_pass(
|
||||
username.clone()?,
|
||||
password.clone()?,
|
||||
self.server_url.to_string(),
|
||||
self.identity_url.clone(),
|
||||
self.identity_url.to_string(),
|
||||
)
|
||||
.unwrap_or_else(|_| {
|
||||
// TODO: show an error
|
||||
|
|
|
@ -55,7 +55,7 @@ pub struct AppOp {
|
|||
pub device_id: Option<String>,
|
||||
pub avatar: Option<String>,
|
||||
pub server_url: Url,
|
||||
pub identity_url: String,
|
||||
pub identity_url: Url,
|
||||
|
||||
pub active_room: Option<String>,
|
||||
pub rooms: RoomList,
|
||||
|
@ -99,7 +99,7 @@ impl AppOp {
|
|||
device_id: None,
|
||||
avatar: None,
|
||||
server_url: globals::DEFAULT_HOMESERVER.clone(),
|
||||
identity_url: String::from(globals::DEFAULT_IDENTITYSERVER),
|
||||
identity_url: globals::DEFAULT_IDENTITYSERVER.clone(),
|
||||
syncing: false,
|
||||
msg_queue: vec![],
|
||||
sending_message: false,
|
||||
|
@ -137,7 +137,7 @@ impl AppOp {
|
|||
if let Ok((token, uid)) = self.get_token() {
|
||||
self.set_token(Some(token), Some(uid), pass.2);
|
||||
} else {
|
||||
self.connect(Some(pass.0), Some(pass.1), pass.2, Some(pass.3));
|
||||
self.connect(Some(pass.0), Some(pass.1), pass.2, pass.3);
|
||||
}
|
||||
} else {
|
||||
self.set_state(AppState::Login);
|
||||
|
|
|
@ -6,7 +6,6 @@ pub static MSG_ICON_SIZE: i32 = 40;
|
|||
pub static USERLIST_ICON_SIZE: i32 = 30;
|
||||
pub static PILL_ICON_SIZE: i32 = 18;
|
||||
pub static MINUTES_TO_SPLIT_MSGS: i64 = 30;
|
||||
pub static DEFAULT_IDENTITYSERVER: &'static str = "https://vector.im";
|
||||
pub static PLACEHOLDER_TEXT: &'static str = "Matrix username, email or phone number";
|
||||
pub static RIOT_REGISTER_URL: &'static str = "https://riot.im/app/#/register";
|
||||
|
||||
|
@ -16,4 +15,6 @@ pub static MAX_STICKER_SIZE: (i32, i32) = (200, 130);
|
|||
lazy_static! {
|
||||
pub static ref DEFAULT_HOMESERVER: Url =
|
||||
Url::parse("https://matrix.org").expect("Malformed DEFAULT_HOMESERVER value");
|
||||
pub static ref DEFAULT_IDENTITYSERVER: Url =
|
||||
Url::parse("https://vector.im").expect("Malformed DEFAULT_IDENTITYSERVER value");
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ pub trait PasswordStorage {
|
|||
ss_storage::store_pass(username, password, server, identity)
|
||||
}
|
||||
|
||||
fn get_pass(&self) -> Result<(String, String, Url, String), Error> {
|
||||
fn get_pass(&self) -> Result<(String, String, Url, Url), Error> {
|
||||
ss_storage::get_pass()
|
||||
}
|
||||
|
||||
|
@ -187,14 +187,14 @@ mod ss_storage {
|
|||
p.delete()?;
|
||||
}
|
||||
/* Fallback to default identity server if there is none */
|
||||
let identity = String::from(globals::DEFAULT_IDENTITYSERVER);
|
||||
let identity = globals::DEFAULT_IDENTITYSERVER.to_string();
|
||||
|
||||
store_pass(username, pwd, server, identity)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn get_pass() -> Result<(String, String, Url, String), Error> {
|
||||
pub fn get_pass() -> Result<(String, String, Url, Url), Error> {
|
||||
migrate_old_passwd()?;
|
||||
|
||||
let ss = SecretService::new(EncryptionType::Dh)?;
|
||||
|
@ -230,8 +230,8 @@ mod ss_storage {
|
|||
|
||||
/* Fallback to the vector identity server when there is none */
|
||||
let identity = match attr {
|
||||
Some(a) => a.1.clone(),
|
||||
None => String::from(globals::DEFAULT_IDENTITYSERVER),
|
||||
Some(a) => Url::parse(&a.1)?,
|
||||
None => globals::DEFAULT_IDENTITYSERVER.clone(),
|
||||
};
|
||||
|
||||
let tup = (
|
||||
|
|
|
@ -159,7 +159,7 @@ impl<'a> Address<'a> {
|
|||
let action = self.action.clone();
|
||||
let entry = self.entry.clone();
|
||||
let address = self.address.clone();
|
||||
let id_server = self.op.identity_url.clone();
|
||||
let id_server = self.op.identity_url.to_string();
|
||||
let backend = self.op.backend.clone();
|
||||
self.signal_id = Some(self.button.clone().connect_clicked(move |w| {
|
||||
if !w.get_sensitive() || !w.is_visible() {
|
||||
|
@ -185,7 +185,7 @@ impl<'a> Address<'a> {
|
|||
add_address(
|
||||
&backend,
|
||||
medium,
|
||||
id_server.clone(),
|
||||
id_server.clone(), // TODO: Change type to Url
|
||||
entry.get_text().map_or(None, |gstr| Some(gstr.to_string())),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ use crate::actions;
|
|||
use crate::actions::global::AppState;
|
||||
use crate::actions::login::LoginState;
|
||||
use crate::appop::AppOp;
|
||||
use crate::globals;
|
||||
use crate::i18n::i18n;
|
||||
use crate::widgets::ErrorDialog;
|
||||
|
||||
|
@ -103,14 +104,17 @@ impl LoginWidget {
|
|||
|
||||
let mut homeserver_url =
|
||||
hs_url.expect("hs_url must return earlier if it's Err");
|
||||
let mut idserver = None;
|
||||
let mut idserver = globals::DEFAULT_IDENTITYSERVER.clone();
|
||||
match get_well_known(&txt) {
|
||||
// TODO: Use Url everywhere
|
||||
Ok(response) => {
|
||||
info!("Got well-known response from {}: {:#?}", &txt, response);
|
||||
homeserver_url =
|
||||
Url::parse(&response.homeserver.base_url).unwrap_or(homeserver_url);
|
||||
idserver = response.identity_server.map(|ids| ids.base_url);
|
||||
idserver = response
|
||||
.identity_server
|
||||
.and_then(|ids| Url::parse(&ids.base_url).ok())
|
||||
.unwrap_or(idserver);
|
||||
}
|
||||
Err(e) => info!("Failed to .well-known request: {:#?}", e),
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue