-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
Provide interfaces for Plugins exposing an API #9377
Labels
Milestone
Comments
There's the |
jaudriga
added a commit
to audriga/roundcubemail
that referenced
this issue
Apr 16, 2024
Fixes roundcube#9377 . Allows rcmail::login() to be reused in plugins providing an API. The login function provides some useful logic for connecting to IMAP sources like checking credentials for validity or converting usernames in some cases. Before this change the login function always also created non-existing users or set some sesison vars, which what API plugins would like to avoid.
jaudriga
added a commit
to audriga/roundcubemail
that referenced
this issue
Apr 17, 2024
Fixes roundcube#9377 . Allows rcmail::login() to be reused in plugins providing an API. The login function provides some useful logic for connecting to IMAP sources like checking credentials for validity or converting usernames in some cases. Before this change the login function always also created non-existing users or set some sesison vars, which what API plugins would like to avoid.
I opened up a #9418 . I hope this makes it clearer what I meant initially. The JMAP RC Plugin is not a plugin in a strict sense, it follows a similar approach as Kolab's FreeBusy plugin, but uses the |
jaudriga
added a commit
to audriga/roundcubemail
that referenced
this issue
Apr 17, 2024
Fixes roundcube#9377 . Allows rcmail::login() to be reused in plugins providing an API. The login function provides some useful logic for connecting to IMAP sources like checking credentials for validity or converting usernames in some cases. Before this change the login function always also created non-existing users or set some sesison vars, which what API plugins would like to avoid.
jaudriga
added a commit
to audriga/roundcubemail
that referenced
this issue
May 14, 2024
Fixes roundcube#9377 . Allows rcmail::login() to be reused in plugins providing an API. The login function provides some useful logic for connecting to IMAP sources like checking credentials for validity or converting usernames in some cases. Before this change the login function always also created non-existing users or set some sesison vars, which what API plugins would like to avoid.
jaudriga
added a commit
to audriga/roundcubemail
that referenced
this issue
May 16, 2024
Fixes roundcube#9377 . Allows rcmail::login() to be reused in plugins providing an API. The login function provides some useful logic for connecting to IMAP sources like checking credentials for validity or converting usernames in some cases. Before this change the login function always also created non-existing users or set some sesison vars, which what API plugins would like to avoid.
jaudriga
added a commit
to audriga/roundcubemail
that referenced
this issue
Jul 15, 2024
Fixes roundcube#9377 . Allows rcmail::login() to be reused in plugins providing an API. The login function provides some useful logic for connecting to IMAP sources like checking credentials for validity or converting usernames in some cases. Before this change the login function always also created non-existing users or set some sesison vars, which what API plugins would like to avoid.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
audriga/roundcube-jmap is a plugin that exposes a JMAP API focusing on Contacts and Calendars within Roundcube. Currently, this involves duplicating some of Roundcube's index.php code, which is not ideal for maintenance and compatibility.
It would be helpful if Roundcube could provide some interfaces or hooks for plugins that want to expose an API. Presently, our implementation involves duplicating the following from RC's index.php:
rcmail->login()
.Including the iniset file might already be sufficient for such use cases. However, passing basic-auth credentials to the authenticate hook and the subsequent login is currently not ideal.
One requirement for us would be that this is also compatible with Roudcube installations in cPanel, which might pose additional requirements on authentication compared to vanilla Roundcube. At least, when we tested against RC in cPanel we ran into authentication issues when not using any hooks. Especially the authentication hook might be important.
Additional Information:
All code that audriga/roundcube-jmap duplicated from the index.php can be seen in bridge.php.
This issue is related to the discussions in #5918.
Another example of a plugin that provides an API is freebusy, which you can find here: https://git.kolab.org/source/freebusy/. My understanding is that it seem to differ from our approach by:
The text was updated successfully, but these errors were encountered: