Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

handle now unsupported oauth2 #3234

Merged
merged 1 commit into from
Aug 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/main/java/com/b44t/messenger/DcContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,15 @@ public void assumeMultiDevice() {
}
}

public boolean isGmailOauth2Addr(String addr) {
final String oauth2url = getOauth2Url(addr, "chat.delta:/foo");
return isGmailOauth2Url(oauth2url);
}

public boolean isGmailOauth2Url(String oauth2url) {
return oauth2url.startsWith("https://accounts.google.com/");
}

/**
* @return true if at least one chat has location streaming enabled
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

import static org.thoughtcrime.securesms.ConversationActivity.CHAT_ID_EXTRA;
import static org.thoughtcrime.securesms.ConversationActivity.STARTING_POSITION_EXTRA;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_ADDRESS;
import static org.thoughtcrime.securesms.connect.DcHelper.CONFIG_SERVER_FLAGS;
import static org.thoughtcrime.securesms.util.RelayUtil.acquireRelayMessageContent;
import static org.thoughtcrime.securesms.util.RelayUtil.getDirectSharingChatId;
import static org.thoughtcrime.securesms.util.RelayUtil.getSharedTitle;
Expand Down Expand Up @@ -141,6 +143,20 @@ protected void onCreate(Bundle icicle, boolean ready) {
}
// /add info


// remove gmail oauth2
final int serverFlags = dcContext.getConfigInt(CONFIG_SERVER_FLAGS);
if ((serverFlags & DcContext.DC_LP_AUTH_OAUTH2)!=0) {
Util.runOnAnyBackgroundThread(() -> {
if (dcContext.isGmailOauth2Addr(dcContext.getConfig(CONFIG_ADDRESS))) {
final DcMsg msg = new DcMsg(dcContext, DcMsg.DC_MSG_TEXT);
msg.setText("⚠️ GMail Users: If you have problems using GMail, go to \"Settings / Advanced / Password and Account\".\n\nThere, login again using an \"App Password\".");
dcContext.addDeviceMsg("info_about_gmail_oauth2_removal8", msg);
}
});
}
// /remove gmail oauth2

} catch(Exception e) {
e.printStackTrace();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,16 @@ public void onTextChanged(CharSequence s, int start, int before, int count) { }

int serverFlags = DcHelper.getInt(this, CONFIG_SERVER_FLAGS);
int sel = 0;
if((serverFlags&DcContext.DC_LP_AUTH_OAUTH2)!=0) sel = 1;
if((serverFlags&DcContext.DC_LP_AUTH_OAUTH2)!=0) {
sel = 1;

// remove gmail oauth2
if (DcHelper.getContext(this).isGmailOauth2Addr(email)) { // this is a blocking call, not perfect, but as rarely used and temporary, good enough
sel = 0;
updateProviderInfo(); // we refer to the hints in the device message, show them immediately
}
// /remove gmail oauth2
}
authMethod.setSelection(sel);
expandAdvanced = expandAdvanced || sel != 0;

Expand Down Expand Up @@ -424,6 +433,13 @@ protected Void doInBackground(Void... voids) {
// and should be whitelisted by the supported oauth2 services
String redirectUrl = "chat.delta:/"+BuildConfig.APPLICATION_ID+"/auth";
oauth2url = dcContext.getOauth2Url(email, redirectUrl);

// remove gmail oauth2
if (dcContext.isGmailOauth2Url(oauth2url)) {
oauth2url = null;
}
// /remove gmail oauth2

return null;
}

Expand Down
Loading