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

Password not found #263

Open
selwynorren opened this issue Jul 29, 2021 · 10 comments
Open

Password not found #263

selwynorren opened this issue Jul 29, 2021 · 10 comments

Comments

@selwynorren
Copy link

What Happened

I have Caldav successfully setup in the online account plug, so when launching tasks I try to add a new task in my Caldav account, however I get the following pop up message that creating a new task failed and the details how Password not found
Screenshot from 2021-07-29 11-01-29

The terminal output there shows
** (io.elementary.tasks:2): CRITICAL **: 10:56:48.089: MainWindow.vala:281: Password not found

Expected Behavior

Create a task using my caldav account as that is linked to Google

Steps to Reproduce

Add a caldav account to the online accounts setting
launch tasks and try add a task using the Caldav account

Logs

As already provided

Platform Information

elementary OS 6 Early Access
Built on Ubuntu 20.04.1 LTS
Linux 5.8.0-63-generic

@selwynorren
Copy link
Author

I am now running Elementary OS 6 Stable and I am still having this same issue. I have a feeling I am not loading the caldav detail correct for this

I am using: https://www.google.com/calendar/dav/myusername/events

Is thsi correct, or should I be using something else to connect to my Google Workspace account?

@marbetschar
Copy link
Member

@danrabbit AFAIK you are using Tasks with the Google backend - maybe you can help out?

@Marukesu
Copy link
Contributor

Maybe the same issue that we have with Flatpaked mail? i tested the non-sandboxed version and it fails with:

MainWindow.vala:259: Unable to resolve the WebDAV uri from backend.

what i believe is expected since GTasks is not a webDAV, so the Google calDAV uri isn't supposed to work here.

@cameralibre
Copy link

cameralibre commented Aug 12, 2021

I get the same Password not found error with Nextcloud calDAV - when attempting to delete a task list, or change a task list color. Adding a new task works as expected.

I don't know if this is useful information, but the same calDAV setup in elementary Calendar allows me to change calendar colors and add/edit events with no problem, but clicking the delete button on calendars doesn't do anything.

@dcharles525
Copy link

I setup my google in the online accounts settings and also faced this issue.

@marbetschar
Copy link
Member

#269 seems to be related.

@marbetschar
Copy link
Member

marbetschar commented Aug 22, 2021

@Marukesu I think you are right and we are dealing with a Flatpak issue here. Does the following reasoning make sense to you?

Some operations do work in Flatpak, because they are ultimately passed to the system EDS for synchronization (e.g. adding a task). However, there are a few operations which are backend specific and are not officially supported by EDS. Those operations fail, because they try to retrieve the backend credentials from within the Flatpak sandbox - which fails for the same reason as we encountered in Mail.

The operations not working within Flatpak are: Adding a task list, Removing a task list, Change a task list's name, Changing a task list's color. Of course this only applies for synchronized accounts - not the local one.

@selwynorren
Copy link
Author

selwynorren commented Aug 22, 2021

so after this last post I uninstalled the flatpak version of tasks and opted to build from source.

Now when I try and add a tasks to my Google Account I get the following error:
Unable to resolve the WebDAV uri from backend.

In the terminal I get this error
** (io.elementary.tasks:10854): CRITICAL **: 21:07:43.863: MainWindow.vala:285: Unable to resolve the WebDAV uri from backend.

I also noticed that when compiling from source the app icon is missing.

@Marukesu
Copy link
Contributor

Those operations fail, because they try to retrieve the backend credentials from within the Flatpak sandbox

Something i tried locally is providing a fallback to lookup_password_sync that get the password from the system and save them on the sandbox. It's bassically e_source_credentials_provider_impl_password_lookup_sync function, divided into two parts:

     // on the host, in a daemon connected to DBus
    public string lookup_credentials (string uid) throws Error {
        string? password;
        E.secret_store_lookup_sync (uid, out password, null);
        if (password == null) {
            throw new IOError.NOT_FOUND ("Password not found");
        }

       return password;
    }

    // inside the sandbox
    public E.NamedParameters? get_credentials_from_host (E.Source source) throws Error {
        var password = dbus_interface.lookup_credentials (source.uid);
        var parameters = new E.NamedParameters ();
        parameters.set (E.SOURCE_CREDENTIAL_PASSWORD, password);
        return parameters;
    }

So when we try to get the credential, we can do this:

E.NamedParameters credentials;
try {
    credential_provider.lookup_password_sync (source, null, out credentials);
} catch (Error e) {
    if (e is Error.NOT_FOUND && is_sandboxed ()) {
        credentials = get_credentials_from_host (source);
        credential_provider.store_sync (source, credentials, true);  // so we only escape the sandbox only one time
    } else {
        throw e;
    }
}

Now when I try and add a tasks to my Google Account I get the following error:
Unable to resolve the WebDAV uri from backend.

@selwynorren as i said on my first comment, i believe that's expected because Google CalDAV API don't support tasks, right now, the only way to add a Google account to tasks is using evolution from apt.

@selwynorren
Copy link
Author

@selwynorren as i said on my first comment, i believe that's expected because Google CalDAV API don't support tasks, right now, the only way to add a Google account to tasks is using evolution from apt.

Thanks, I never made the connection of what you were saying in your first comment. Such a pity, I have high hopes for Tasks and cant wait to see the Google Tasks API integrated (I see it is available) Not that I used Google Tasks all that often, however I do need a way to sync my task list between my various systems and my entire company is Google Workspace enabled, so it would have been nice.

I will try the evolution system and see how that works for me, I seem to recall not much success when I was using the daily builds.

Thanks everyone for their hard work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

5 participants