Exemplo n.º 1
0
    private void SaveGoogleSettings()
    {
        Config google_config = Conf.Get("GoogleBackends");

        google_config.SetOption("GMailSearchFolder",main.GMailSearchFolder.Text);

        string username = main.GoogleUsername.Text.Trim();

        if (username != String.Empty)
        {
            username = username + "@gmail.com";
            google_config.SetOption("GMailUsername",username);
        }

        if (main.IsGoogleAppsAccount.Checked)
        {
            google_config.SetOption("GoogleAppsAccountName",main.GoogleAppsAccountName.Text);
        }
        else
        {
            google_config.SetOption("GoogleAppsAccountName",String.Empty);
        }

        if (main.OptionStorePasswordConf.Checked)
        {
            google_config.SetOption("GMailPasswordSource","conf-file");
            google_config.SetOption("GMailPassword",main.GooglePassword.Text);
        }
        else if (main.OptionStorePasswordKWallet.Checked && !String.IsNullOrEmpty(username))
        {
            try {
                KdeUtils.StorePasswordKDEWallet("beagle",username,main.GooglePassword.Text);
                google_config.SetOption("GMailPasswordSource","kdewallet");
            } catch (ArgumentException e) {
                QMessageBox.Warning(this,"KDEWallet",e.Message);
            }
        }

        Conf.Save(google_config);
    }
Exemplo n.º 2
0
    private void LoadGoogleSettings()
    {
        Config google_config = Conf.Get("GoogleBackends");

        main.GMailSearchFolder.Text = google_config.GetOption("GMailSearchFolder",null);

        string username = google_config.GetOption("GMailUsername",null);

        if (!username.EndsWith("@gmail.com"))
        {
            username = null;
        }
        else
        {
            main.GoogleUsername.Text = username.Remove(username.Length - 10);
        }

        string google_apps_domain = google_config.GetOption("GoogleAppsAccountName",null);

        if (google_apps_domain != null)
        {
            google_apps_domain = google_apps_domain.Trim();
        }
        if (String.IsNullOrEmpty(google_apps_domain))
        {
            main.IsGoogleAppsAccount.Checked = false;
            main.GoogleAppsAccountName.SetDisabled(true);
        }
        else
        {
            main.IsGoogleAppsAccount.Checked = true;
            main.GoogleAppsAccountName.SetDisabled(false);
            main.GoogleAppsAccountName.Text = google_apps_domain;
        }

        string password_source = google_config.GetOption("GMailPasswordSource","conf-file");

        if (password_source == "gnome-keyring")
        {
            QMessageBox.Critical(this,"Google password storage option","Gnome keyring support not available from beagle-settings-qt");
            return;
        }

        if (password_source == "kdewallet")
        {
            if (String.IsNullOrEmpty(username))
            {
                return;
            }

            try {
                string password = KdeUtils.ReadPasswordKDEWallet("beagle",username);
                main.GooglePassword.Text = password;
                main.OptionStorePasswordKWallet.SetChecked(true);
            } catch (ArgumentException e) {
                QMessageBox.Warning(this,"KDEWallet",e.Message);
            }
            return;
        }

        if (password_source != "conf-file")
        {
            QMessageBox.Warning(this,"Google password storage option","Unknown password storage option.");
            return;
        }

        main.GooglePassword.Text = google_config.GetOption("GMailPassword",null);
        main.OptionStorePasswordConf.SetChecked(true);
    }
Exemplo n.º 3
0
        private void ReadConf(Config config)
        {
            if (config == null || config.Name != "GoogleBackends")
            {
                return;
            }

            username      = config.GetOption("GMailUsername", null);
            search_folder = config.GetOption("GMailSearchFolder", null);

            string password_source = config.GetOption("GMailPasswordSource", "conf-data");

            password_source = password_source.ToLower();
            switch (password_source)
            {
            case "conf-file":
                password = config.GetOption("GMailPassword", null);
                break;

            case "gnome-keyring":
                Log.Error("GMailPasswordSource: gnome-keyring is not supported yet");
                break;

            case "kdewallet":
                try {
                    password = KdeUtils.ReadPasswordKDEWallet("beagle", username);
                } catch (Exception e) {
                    Log.Error(e, "Error in reading password in KDE wallet");
                }
                break;

            default:
                Log.Error("GMailPasswordSource should be one of 'kdewallet,gnome-keyring,conf-file");
                break;
            }

            valid_account = (
                !String.IsNullOrEmpty(username) &&
                !String.IsNullOrEmpty(password) &&
                !String.IsNullOrEmpty(search_folder));

            if (!valid_account)
            {
                Log.Warn("GMail account information not set. Search is disabled.");
            }
            else
            {
                Log.Debug("GMail account information successfully read.");
            }

            domain = config.GetOption("GoogleAppDomainName", null);
            if (String.IsNullOrEmpty(domain))
            {
                domain = GMAIL_DOMAIN;
            }
            else
            {
                // Google Apps domain is of form
                // a/mydomain.name
                domain = ("a/" + domain);
            }
        }