8000 Sharing: Multi-user / multi-library support with private and shared photos/albums · Issue #98 · photoprism/photoprism · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Sharing: Multi-user / multi-library support with private and shared photos/albums #98

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

Open
rkkoszewski opened this issue Feb 22, 2019 · 147 comments
Assignees
Labels
api Server API endpoints and documentation epic Composed of smaller, releasable features in-progress Somebody is working on this priority Supported by early sponsors or popular demand sharing Sharing with users, anonymously via links or publicly

Comments

@rkkoszewski
Copy link
rkkoszewski commented Feb 22, 2019

It would be great to be able to share a PhotoPrism server between several people, each having their own private pictures/albums, and pictures/albums that could be shared with other users on the same server.

This would probably increase the complexity of the project quite a bit as a whole session/login/profile system would need to be implemented and also handle how to manage the pictures (All pictures in a single folder and assigned to different users by Database, a special folder structure, etc), most likely not compatible with how it works now.

I was not able to find out from the Wiki about what kind depth is PhotoPrism aiming at regarding photo management. Any input on this from the Devs?

@lastzero lastzero added the idea Feedback wanted / feature request label Feb 26, 2019
@lastzero
Copy link
Member

@rkkoszewski This is something we want to do, but also not for the start.

@lastzero lastzero added the low-priority Everything nice to have but not so important label May 29, 2019
@lastzero lastzero added unfunded and removed low-priority Everything nice to have but not so important labels Dec 30, 2019
@lastzero
Copy link
Member

Related Gitter chat log for future reference:

Michael Mayer @lastzero 14:26
For multi user, we basically just need to add a users table to the db... what gets tricky are ACLs, roles and layered permissions - which is what people often mean with "multiple users". This won't be a free enterprise solution.

Ferdinand Mütsch @n1try 14:26
What I primarily meant by sharing is to have photo albums that are owned by multiple users (friends, family, ...) and are read + write for all of them. Probably a bigger feature

Michael Mayer @lastzero 14:27
I've done all of this for Deutsche Telekom ("Mediencenter") a couple of years ago, so I know what's needed.

Ferdinand Mütsch @n1try 14:29
Yep and user registration logic would probably be handy as well. I get your concerns regarding the free enterprise solution problem

Michael Mayer @lastzero 14:30
I'm all for making progress and adding cool features, especially sharing will be very important when the foundation is implemented in good quality.

Ferdinand Mütsch @n1try 14:31
May I open GitHub feature tickets for multi-user support and shared albums?

Michael Mayer @lastzero 14:31
There should be tickets already
As mentioned, just adding multiple logins is easy but if you don't do it right it can easily end up being a performance and security nightmare
The database should be able to hold the index in memory which is tricky with many users and much more photos, especially when you start to use sharding. This is not done in one or two days like the login itself.

Ferdinand Mütsch @n1try 14:37
I agree...

Michael Mayer @lastzero 14:39
So for a family with not as many photos and no security concerns, it can be done later after thoughtfully thinking about the tradeoffs and implications. This needs to be documented very well too with big warning signs.
However, it would be better for performance to simply run multiple instances and use P2P sharing for albums.
For this, we might provide a central identity service with unique user name.

@renothing
Copy link

maybe ActivityPub support is better than multi-user.

@lastzero
Copy link
Member

@renothing ActivityPub support looks like a great feature for a later release 👍

Anyone experience with https://github.com/pixelfed/pixelfed?

@mcombalia
Copy link

I agree just being able to provide multiple login accounts (with the same roles etc) is already a good step forward.

@muety
Copy link
muety commented Jun 11, 2020

Any news on this? 🙂

@ghost
Copy link
ghost commented Jun 12, 2020

i'd like to one day see something like google photos where you can link an account with user/pass to view only selected albums they are assigned to

@lastzero
Copy link
Member

Working on link sharing next, except you don't create a new account every time you share. You can set a password and expiry date though.

@ghost
Copy link
ghost commented Jun 12, 2020

is that a per photo things??
i like to add photos to an album and that album just gets bigger and bigger for the grand parents to view photos that get added to it.. just a nice simple "old person" proof way of letting them view all photos in the album

@lastzero
Copy link
Member

We start with albums, but technically you can share everything incl albums, labels, photos and files.

@fcimeson
Copy link
fcimeson commented Jul 12, 2020

Cloud services such as nextcloud have already solved this problem. On the server the files are all owned by the cloud server and it decides who can view and edit the files.

@lastzero
Copy link
Member

You can already upload to and sync with Nextcloud, however image quality will not be the same and users won't see album title, description and other metadata.

@fcimeson
Copy link

Right, sorry, I wasn't implying you could use nextcloud to solve this problem, I was trying to imply we could use nextcloud solution as a template for solving this problem.

lastzero added a commit that referenced this issue Sep 6, 2020
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
lastzero added a commit that referenced this issue Sep 13, 2020
Database column types are now UPPERCASE so that developers can easily recognize them. After upgrading to GORM 2.0, we can use generic types instead.

Signed-off-by: Michael Mayer <michael@liquidbytes.net>
lastzero added a commit that referenced this issue Sep 13, 2020
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
lastzero added a commit that referenced this issue Sep 16, 2020
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
lastzero added a commit that referenced this issue Sep 16, 2020
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
lastzero added a commit that referenced this issue Sep 16, 2020
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
@ibotty
Copy link
ibotty commented Dec 27, 2020

What does "unfounded" in this issue mean? Can one donate some amount of money specifically to move that feature forward? I would certainly pay for (a subset of) that feature to appear in the open source version.

@lastzero
Copy link
Member
lastzero commented Dec 27, 2020

See https://docs.photoprism.org/funding/

Yes, you can sponsor this and other issues. Ideally via GitHub Sponsors.

@silvermd
Copy link

Hello, I'm a silent reader and just want to give my attention here. I also wish mulituser. However, I am currently using truenas scale (app) and have to wait for an implementation and another solution to create the user. Thanks for all the effort, I'm really looking forward to the results.

Thanks, @ all

@lastzero
Copy link
Member

Thanks for your feedback! We'll keep that in mind and will continue working on this issue after the existing improvements have been released, so users can already enjoy those and don't need to wait much longer.

@SagarMhatre
Copy link

Is there a way to get the visitor in a docker image ?

@lastzero
Copy link
Member

Use our preview image and create an album share link you open in a private browser tab.

lastzero added a commit that referenced this issue Oct 31, 2022
Signed-off-by: Michael Mayer <michael@photoprism.app>
lastzero added a commit that referenced this issue Oct 31, 2022
Signed-off-by: Michael Mayer <michael@photoprism.app>
lastzero added a commit that referenced this issue Oct 31, 2022
Signed-off-by: Michael Mayer <michael@photoprism.app>
@lastzero
Copy link
Member

After today's changes, it looks like we can release the current version as an update. Native speakers are invited to add missing user interface translations for their language. We will wait another day or two for that. Thanks to everyone who contributed!

@lastzero
Copy link
Member

Be aware that multi-user support will be finalized after the upcoming release, as it includes many other improvements not related to user management. We do not want to delay these any further. This is also mentioned in the release notes, which you should read before upgrading.

Please don't push forward with multi-user enhancements yet, as this is work in progress and we may not be able to merge your pull request. If you want to help with something other than updating the translations, feel free to take a look at the issues labeled "help wanted".

@DeltaTangoLima
Copy link

I'm so excited to see some of the progress the team are making. Quick question: for those that moved to the preview release, when would be the right time to move back to latest stable, without losing any of the new functionality we've been trialing?

@lastzero
Copy link
Member
lastzero commented Nov 1, 2022

Depends on which preview release. The current preview is the release candidate, so it could be identical with the upcoming release.

lastzero added a commit that referenced this issue Nov 3, 2022
Signed-off-by: Michael Mayer <michael@photoprism.app>
lastzero added a commit that referenced this issue Nov 5, 2022
Signed-off-by: Michael Mayer <michael@photoprism.app>
chain710 pushed a commit to chain710/photoprism that referenced this issue Nov 7, 2022
* merge-221105: (346 commits)
  UX: Improve layout of form fields in photo edit dialog
  Account: Disable "gender" dropdown when busy photoprism#98
  Docker: Change "docker-compose" command to "docker compose" photoprism#1192
  Docker: Use docker compose profiles for watchtower example photoprism#1192
  Docker: Change "docker-compose" command to "docker compose" photoprism#1192
  Frontend: Upgrade dependencies in package.json and package-lock.json
  Frontend: Update translations.json and package-lock.json
  Weblate: Update backend translations
  Weblate: Update frontend translations
  Weblate: Update frontend translations
  Develop: Add "FOR TEST AND DEVELOPMENT ONLY" warning to config files
  NVIDIA: Update docker-compose.yml example photoprism#2613
  NVIDIA: Add docker-compose.yml example photoprism#2613
  NVIDIA: Update install-gpu.sh script photoprism#2613
  Frontend: Update translations.json and package-lock.json
  Weblate: Update frontend translations
  Tests: Refactor acceptance tests
  Tests: Add DateTime unit test
  Video: Change FFmpeg params for NVidia hardware transcoding photoprism#2613
  Frontend: Update package-lock.json
  ...
@SaswatPadhi
Copy link

@ark- Yes, there is a built-in "Visitor" account with the user ID "-2". You do not need to create it manually. It cannot log in with username and password, but only with share tokens. Previously it had the "Guest" role, which we now want to use for identified guests with passwords. So it is important to test if the existing functionality works as before (or better).

I was playing with photoprism users command and I created a new user as photoprism user add test.

With photoprism users ls, I see that both test and admin accounts have admin role.
However, the "Super Admin" field has no for test vs yes for admin.

I tried a quick grep but couldn't find anything much on the "Super Admin" capability. Could you please explain the additional rights granted by yes on "Super Admin"? Thanks!

@graciousgrey
Copy link
Member

The role of a user with superadmin status cannot be changed, whereas a user with the admin role can be assigned a different role. Documentation will follow once we have introduced more multi-user functionality such as additional roles.

@jojo-gfx
Copy link
jojo-gfx commented Nov 20, 2022

Uaah, have seen it now that photoprism have no usermanagement after I setup it with 60k photos and now... uaaah!
This feature had to implement from beginning/planning the software ... urgs! Now it will be a heavy problem, it to implement after it is growing so big.
Hopefully you will have success with it because it is THE feature what is making the software incredible or relative senseless!
Hope!!!!!!!! ... because the generally functions are great! ;)

A suggestion from me, because many many OSS projects implement the usermanagement in the main sowftwar layer and makes the whole system big, slow and in worst case unusable. Please use the tadabase here as slave to do this perfectly database driven work parts! E.g. the Typo3 project never changed their system to database driven management of rights and at time big projects with many users and content are horrible slow because this old programming failure.
Databases are incredible efficient in intersection of massive data ammounts and this is, what usermanagement does! :) So you also can keep your code clean with no trips into the hell!
Also proffesional developers often use databases only as stupid data storage, but they all forget, databases are mega intelligent and absolute the fastest way to use data and its context between.

The most software developers don't know, what a database is... bad thing! Hopefully here it will be better! :)

Generally, I'm a big fan of photoprism so far... :D

*near by:
Ah, by the way... would be nice you cloud create a guest-view, where any content could be generally offered to users as display window. Also, at time with all album sharing links you can view all other shared albums also. Ao at time is works like, what I mean, but on a currious way. ;) ... you have to autenticate with any sharing link and then you can use it free.
Would think, it's still a bug and it's also based on not implemented databasedriven usermanagement. :D

Also would be nice to have here, and also in the the sharing per link, the map available, because it's a killer feature here what is really really great, but only for the adminuser it's a shame because nobody around can use this incredible nice working killerfeature!

... have taken a look in the generated database and looks not so good per first short view.
Seems usermanagement packed into the servers programming, but only per short look at time.
Could it be, one user can only match one group? No good Idea. Please think here about groups who increment features/rights and add them to a combination, what can ad to a user, so not he is only admin or not ... because also an admin has the normal functions of a normal user and admin is only a addon to normal user e.g.. otherwise you will manage this in the program as own cases and will hit you in an heavy ammount of complexity and no flexible structures, also in look of new functions in the future. So far what I've seen now ... don't look, it's true. ;)

@photoprism photoprism locked as off-topic and limited conversation to collaborators Nov 20, 2022
@lastzero
Copy link
Member

We would like to remind you that this is not a forum and that you can use GitHub Discussions for general questions and comments:

Thank you! 💖

@lastzero lastzero moved this to Development 🐝 in Roadmap 🚀✨ Jun 8, 2023
@lastzero lastzero added the sharing Sharing with users, anonymously via links or publicly label Oct 13, 2024
@lastzero lastzero added epic Composed of smaller, releasable features and removed idea Feedback wanted / feature request labels Oct 27, 2024
@lastzero lastzero changed the title Multi-User Photo Gallery with private and shared photos/albums Sharing: Multi-user / multi-library support with private and shared photos/albums Oct 27, 2024
@lastzero
Copy link
Member

I've updated the title of this issue and changed the label to "epic" since initial multi-user support for those sharing a single library was released in 2023, with 2-Factor Authentication and Single Sign-On via OpenID Connect added this year:

What's still missing to fully satisfy this feature request is the ability to easily set up and index multiple independent libraries on the same instance (so you don't have to set up multiple instances manually), and an improved user interface that makes sharing with other users more convenient and obvious than sending them links to click on:

Note that in order to avoid duplicate work and merge conflicts, we can only start implementing this once the ongoing upgrade of our frontend component framework is complete:

This also applies to other frontend-related issues such as batch editing and selecting an album cover image. Thank you very much for your patience and continued support! 🌈💎✨

@lastzero lastzero assigned graciousgrey and omerdduran and unassigned moximoti Apr 29, 2025
@lastzero lastzero added the api Server API endpoints and documentation label May 24, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
api Server API endpoints and documentation epic Composed of smaller, releasable features in-progress Somebody is working on this priority Supported by early sponsors or popular demand sharing Sharing with users, anonymously via links or publicly
Projects
Status: Development 🐝
Development

No branches or pull requests

0