Commit ad2636e0 authored by Michael Gratton's avatar Michael Gratton 🤞

Don't use GOA accounts with no valid IMAP/SMTP host names

This fixes GOA Exchange accounts showing up but being completely
unusable, e.g. in #241
parent f2a11edd
Pipeline #61631 failed with stages
in 22 minutes and 34 seconds
......@@ -610,7 +610,7 @@ public class Accounts.Manager : GLib.Object {
throw new ConfigError.MANAGEMENT(err.message);
}
if (goa_handle.get_mail() == null) {
if (!is_valid_goa_account(goa_handle)) {
// If we get here, the GOA account's mail service used
// to exist (we just loaded Geary's config for it) but
// no longer does. This indicates the mail service has
......@@ -783,12 +783,21 @@ public class Accounts.Manager : GLib.Object {
: id;
}
private async void create_goa_account(Goa.Object account,
GLib.Cancellable? cancellable) {
private bool is_valid_goa_account(Goa.Object handle) {
// Goa.Account.mail_disabled doesn't seem to reflect if we get
// get a valid mail object here, so just rely on that instead.
Goa.Mail? mail = account.get_mail();
if (mail != null) {
Goa.Mail? mail = handle.get_mail();
return (
mail != null &&
!Geary.String.is_empty(mail.imap_host) &&
!Geary.String.is_empty(mail.smtp_host)
);
}
private async void create_goa_account(Goa.Object account,
GLib.Cancellable? cancellable) {
if (is_valid_goa_account(account)) {
Goa.Mail? mail = account.get_mail();
string? name = mail.name;
if (Geary.String.is_empty_or_whitespace(name)) {
name = get_account_name();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment