mirror of
https://github.com/chatmail/core.git
synced 2026-04-24 17:06:28 +03:00
Clean up the worst rebase mistakes
This commit is contained in:
committed by
dignifiedquire
parent
ab41679855
commit
a791af2d90
104
src/oauth2.rs
104
src/oauth2.rs
@@ -6,7 +6,6 @@ use serde::Deserialize;
|
||||
use crate::context::Context;
|
||||
use crate::dc_sqlite3::*;
|
||||
use crate::dc_tools::*;
|
||||
use crate::types::*;
|
||||
|
||||
const OAUTH2_GMAIL: Oauth2 = Oauth2 {
|
||||
client_id: "959970109878-4mvtgf6feshskf7695nfln6002mom908.apps.googleusercontent.com",
|
||||
@@ -52,7 +51,7 @@ pub fn dc_get_oauth2_url(
|
||||
if let Some(oauth2) = Oauth2::from_address(addr) {
|
||||
dc_sqlite3_set_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
&context.sql,
|
||||
"oauth2_pending_redirect_uri",
|
||||
Some(redirect_uri.as_ref()),
|
||||
);
|
||||
@@ -79,66 +78,45 @@ pub fn dc_get_oauth2_access_token(
|
||||
|
||||
// read generated token
|
||||
if 0 == flags & 0x1 && !is_expired(context) {
|
||||
let access_token = dc_sqlite3_get_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_access_token",
|
||||
None,
|
||||
);
|
||||
let access_token =
|
||||
dc_sqlite3_get_config(context, &context.sql, "oauth2_access_token", None);
|
||||
if access_token.is_some() {
|
||||
// success
|
||||
return access_token;
|
||||
}
|
||||
}
|
||||
|
||||
let refresh_token = dc_sqlite3_get_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_refresh_token",
|
||||
None,
|
||||
);
|
||||
let refresh_token_for = dc_sqlite3_get_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_refresh_token_for",
|
||||
None,
|
||||
)
|
||||
.unwrap_or_else(|| "unset".into());
|
||||
let refresh_token =
|
||||
dc_sqlite3_get_config(context, &context.sql, "oauth2_refresh_token", None);
|
||||
let refresh_token_for =
|
||||
dc_sqlite3_get_config(context, &context.sql, "oauth2_refresh_token_for", None)
|
||||
.unwrap_or_else(|| "unset".into());
|
||||
|
||||
let (redirect_uri, token_url, update_redirect_uri_on_success) =
|
||||
if refresh_token.is_none() || refresh_token_for != code.as_ref() {
|
||||
info!(
|
||||
context,
|
||||
0, "Generate OAuth2 refresh_token and access_token...",
|
||||
);
|
||||
(
|
||||
dc_sqlite3_get_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_pending_redirect_uri",
|
||||
None,
|
||||
)
|
||||
let (redirect_uri, token_url, update_redirect_uri_on_success) = if refresh_token.is_none()
|
||||
|| refresh_token_for != code.as_ref()
|
||||
{
|
||||
info!(
|
||||
context,
|
||||
0, "Generate OAuth2 refresh_token and access_token...",
|
||||
);
|
||||
(
|
||||
dc_sqlite3_get_config(context, &context.sql, "oauth2_pending_redirect_uri", None)
|
||||
.unwrap_or_else(|| "unset".into()),
|
||||
oauth2.init_token,
|
||||
true,
|
||||
)
|
||||
} else {
|
||||
info!(
|
||||
context,
|
||||
0, "Regenerate OAuth2 access_token by refresh_token...",
|
||||
);
|
||||
(
|
||||
dc_sqlite3_get_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_redirect_uri",
|
||||
None,
|
||||
)
|
||||
oauth2.init_token,
|
||||
true,
|
||||
)
|
||||
} else {
|
||||
info!(
|
||||
context,
|
||||
0, "Regenerate OAuth2 access_token by refresh_token...",
|
||||
);
|
||||
(
|
||||
dc_sqlite3_get_config(context, &context.sql, "oauth2_redirect_uri", None)
|
||||
.unwrap_or_else(|| "unset".into()),
|
||||
oauth2.refresh_token,
|
||||
false,
|
||||
)
|
||||
};
|
||||
oauth2.refresh_token,
|
||||
false,
|
||||
)
|
||||
};
|
||||
let mut token_url = replace_in_uri(&token_url, "$CLIENT_ID", oauth2.client_id);
|
||||
token_url = replace_in_uri(&token_url, "$REDIRECT_URI", &redirect_uri);
|
||||
token_url = replace_in_uri(&token_url, "$CODE", code.as_ref());
|
||||
@@ -177,15 +155,10 @@ pub fn dc_get_oauth2_access_token(
|
||||
println!("response: {:?}", &parsed);
|
||||
let response = parsed.unwrap();
|
||||
if let Some(ref token) = response.refresh_token {
|
||||
dc_sqlite3_set_config(context, &context.sql, "oauth2_refresh_token", Some(token));
|
||||
dc_sqlite3_set_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_refresh_token",
|
||||
Some(token),
|
||||
);
|
||||
dc_sqlite3_set_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
&context.sql,
|
||||
"oauth2_refresh_token_for",
|
||||
Some(code.as_ref()),
|
||||
);
|
||||
@@ -194,12 +167,7 @@ pub fn dc_get_oauth2_access_token(
|
||||
// after that, save the access token.
|
||||
// if it's unset, we may get it in the next round as we have the refresh_token now.
|
||||
if let Some(ref token) = response.access_token {
|
||||
dc_sqlite3_set_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
"oauth2_access_token",
|
||||
Some(token),
|
||||
);
|
||||
dc_sqlite3_set_config(context, &context.sql, "oauth2_access_token", Some(token));
|
||||
let expires_in = response
|
||||
.expires_in
|
||||
// refresh a bet before
|
||||
@@ -207,7 +175,7 @@ pub fn dc_get_oauth2_access_token(
|
||||
.unwrap_or_else(|| 0);
|
||||
dc_sqlite3_set_config_int64(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
&context.sql,
|
||||
"oauth2_timestamp_expires",
|
||||
expires_in,
|
||||
);
|
||||
@@ -215,7 +183,7 @@ pub fn dc_get_oauth2_access_token(
|
||||
if update_redirect_uri_on_success {
|
||||
dc_sqlite3_set_config(
|
||||
context,
|
||||
&context.sql.clone().read().unwrap(),
|
||||
&context.sql,
|
||||
"oauth2_redirect_uri",
|
||||
Some(redirect_uri.as_ref()),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user