listmonk icon indicating copy to clipboard operation
listmonk copied to clipboard

Multi User support

Open arielmoraes opened this issue 3 years ago • 78 comments

Does listmonk support multi users (each one with its own Dashboard)?

If not, is it feasible to fork it and do the required changes?

arielmoraes avatar Oct 26 '21 23:10 arielmoraes

It doesn't right now, but it has been on the to-do since the beginning. Some context here https://github.com/knadh/listmonk/issues/125.

The requirements are:

  • A lightweight authentication lib.
  • Support for native credentials (e-mail / password).
  • Support for oAuth.
  • Granular permissions per user that control API calls and the corresponding UI interactions.

I wrote some pseudocode here a while ago, but never got a chance to focus on this. If you would like to take this up as a project, please feel free to propose a spec. Thanks!

knadh avatar Oct 27 '21 04:10 knadh

I see, but is that for multi users accessing a shared set of resources or each own user with separate data?

arielmoraes avatar Oct 27 '21 04:10 arielmoraes

There could be lists that are user owned (this is tricky to do), but multi-user here is not intended to be multi-tenancy, but permission'd access to the same instance.

knadh avatar Oct 27 '21 04:10 knadh

What about using tools such as ory/kratos or keratin/authn-server, so a powerful user management is shipped in no time and listmonk only has to build the bridge ?

I am not suggesting something like an external auth service, but really a full featured user management system embed into listmonk.

And if one wants to extend this, building multi tenancy would simply mean, spinning another listmonk but still having user management in a single place ?

jooola avatar Oct 27 '21 14:10 jooola

+1 to this ... infact, it might solve #499 ... its almost unusable now since every email is unique. Quite limiting.

charlesmudy avatar Oct 28 '21 13:10 charlesmudy

What about using tools such as ory/kratos or keratin/authn-server, so a powerful user management is shipped in no time and listmonk only has to build the bridge ?

These are full fledged, standalone auth servers, programs bigger than listmonk even. Embedding them into listmonk may not be ideal. I'll take a closer look at them though. The auth system will have oAuth support to plugin external providers.

But, multi-user scopes and views vs. multi-tenancy are two different beasts. Multi-tenancy is not on the roadmap.

+1 to this ... infact, it might solve #499 ... its almost unusable now since every email is unique. Quite limiting.

This is unrelated. Subscribers (and by extension, their primary ID, e-mails) being globally unique first-class citizens won't change.

knadh avatar Oct 28 '21 17:10 knadh

Multi User Support is a much needed feature which boosts the usage of a wonderful platform like "listmonk" in an organizational setting.

RKVodde avatar Jan 25 '22 18:01 RKVodde

I agree that multi-user support would be a great enhancement. However, like the developer said it's tricky because of which user has access to what. Just pointing out that if multi-user support is a thing LDAP or SSO (SAML, CAS, OpenID) should be supported.

bryceprutsos avatar Feb 08 '22 08:02 bryceprutsos

For me it would be great to have a minimal multi user mode: Just have multiple logins, all with the same access. The reason why this is important, because you can withdraw permissions of the user (aka delete or block a user), when someone leaves the team. We also then do not need to share passwords (this is so bad) and can use multiple accounts and do password reset via email oink. As a first step, this would help to get feedback and set the start for multiple logins.

NicoHood avatar Feb 08 '22 09:02 NicoHood

+1 @NicoHood. There should be a simple native permission based multi-user system. Once that's in place, plugging in OAuth, LDAP should be straight forward.

knadh avatar Feb 08 '22 09:02 knadh

Any progress on the multi user support.

RKVodde avatar Sep 04 '22 20:09 RKVodde

@RKVodde nothing yet, unfortunately. I was looking at this again last week and came across this new lib: https://github.com/go-pkgz/auth

Haven't had a chance to look at it up close yet.

knadh avatar Sep 05 '22 10:09 knadh

I am not into go-lang but this is what I found, might help. https://github.com/volatiletech/authboss

RKVodde avatar Sep 19 '22 20:09 RKVodde

@RKVodde nothing yet, unfortunately. I was looking at this again last week and came across this new lib: https://github.com/go-pkgz/auth

Haven't had a chance to look at it up close yet.

I used this library before for a custom OAuth setup and it was fairly straightforward which is nice. I actually switched to it after failing to get authboss working which was actually a painful experience.

c-nv-s avatar Oct 09 '22 13:10 c-nv-s

Sounds good!

rpmcoding avatar Oct 27 '22 17:10 rpmcoding

Hi, I am interested on it but found no multi-user support. Is it something being worked on? Before we start evaluating alternatives. Cheers.

titansmc avatar Dec 02 '22 14:12 titansmc

It's on the to-do, but haven't started working on it yet. Unable to give a timeline, unfortunately.

knadh avatar Dec 05 '22 08:12 knadh

I'm also interested in this. I just want to stay subbed on the topic.

pwnoobz avatar Jan 17 '23 21:01 pwnoobz

Hi I'm gonna start working on this function so if anybody got something already running message me plz!

jmaisonneuve01 avatar Jan 24 '23 21:01 jmaisonneuve01

@jmaisonneuve01 please share a plan/proposal/spec of what and how you're planning to implement.

knadh avatar Jan 25 '23 05:01 knadh

@jmaisonneuve01 please share a plan/proposal/spec of what and how you're planning to implement.

Still gathering and analyzing your code for the moment ill keep you updated

jmaisonneuve01 avatar Jan 25 '23 06:01 jmaisonneuve01

Any news on this one @jmaisonneuve01

samuk avatar Mar 07 '23 22:03 samuk

https://github.com/coreos/go-oidc

Any chance the OIDC could be used ?

titansmc avatar Mar 22 '23 15:03 titansmc

For what it's worth until this feature is available. I use caddy and forward_auth as a work around (nginx supports something like this as well). It's not perfect but it allows me to give multiple people access to the server without having this feature in place.

floridarangers avatar Apr 24 '23 12:04 floridarangers