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

Can't add shared photos to an album #2095

Open
jakobroehrl opened this issue Oct 17, 2023 · 11 comments
Open

Can't add shared photos to an album #2095

jakobroehrl opened this issue Oct 17, 2023 · 11 comments
Labels
0. Needs triage Pending approval or rejection. This issue is pending approval. bug Something isn't working

Comments

@jakobroehrl
Copy link
Contributor

I share a lot of pics with my wife.
I can add all of them to an album, but she can not:
"Failed to add xyz.jpg to album own."

object { app: "photos", uid: "verena", level: "2", error: Error }
​app: "photos"
​error: Error: Invalid response: 403
​​columnNumber: 1641624
​​fileName: "https://server/apps/photos/js/photos-main.js?v=a4ddf491-16"
​​lineNumber: 2
​​message: "Invalid response: 403 "
​​
response: Object { data: <?xml version="1.0" encoding="utf-8"?>\n<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">\n <s:exception>Sabre\\DAV\\Exception\\Forbidden</s:exception>\n <s:message>Can't add file to album, only files from user can be added</s:message>\n</d:error>\n, status: 403, statusText: "", … }

@jakobroehrl jakobroehrl added bug Something isn't working 0. Needs triage Pending approval or rejection. This issue is pending approval. labels Oct 17, 2023
@jsobiecki
Copy link

I can confirm issue reported by @jakobroehrl on m end. I received identical output when tried to add shared file to album. I'm using Photos 2.3.0 and Nextcloud version 27.1.2.

@AxelTheGerman
Copy link

Same here, just took Photos for a spin and unable to add most of my (i.e. shared with me) pictures even though it's also a collaborative album with the same user who owns the pictures

@StormOli
Copy link

Can confirm this issue still exists in Photos 2.3.0 and Nextcloud 27.1.3

@jakobroehrl
Copy link
Contributor Author

Still with NC 28 there:
DAV COPY error: 403 (Forbidden)

@derDings81
Copy link

I lately also ran into this problem. Users can only add their own files to albums.

It would really be great if this could be fixed or at least a workaround and better error handling could be implemented. :-)

@ubrfkr
Copy link

ubrfkr commented Jan 4, 2024

I also have this problem. Does anyone know of a work-around? I had a look at the source-code but couldn't orientate myself to find an easy solution.

@alishayei
Copy link

No updates?

@lgdumlao
Copy link

Same problem on Nextcloud 27.1.8, Photos 2.3.0 and Memories 7.2.0. This is still the case even if I am given edit authorization on the shared folder.

@dhzl84
Copy link

dhzl84 commented Apr 19, 2024

Still not working on Nextcloud 28.0.4, Photos 2.4.0 and Memories 7.2.0

@helmo
Copy link

helmo commented Apr 26, 2024

I'm also ran into this.

I found the code that generates this error in https://github.com/nextcloud/photos/blob/master/lib/Sabre/Album/AlbumRoot.php#L167

When I comment just that line "it works for me".... but that's a very limited testcase. I think we need to add a condition there that checks access when the uid does not match.

@tmlmt
Copy link

tmlmt commented May 23, 2024

I confirm this error, which also affects pulsejet/memories which depends on nextcloud/photos

When adding a photo owned by another user but shared with me, the following error appears in the log:

Application: webdav
Message: Forbidden Can't add file to album, only files from myuser can be added

Which actually comes from line 152 in this extract:

$ownerUID = $sourceNode->getFileInfo()->getOwner()->getUID();
$uid = $this->userId;
if ($ownerUID !== $uid) {
throw new Forbidden("Can't add file to album, only files from $uid can be added");
}

Obviously, the check is incomplete, it should also be authorized to add a photo which is shared to us.

Replacing the above lines 151 to 153 by the following does the trick (as well as of course disabling this check entirely):

                if ($ownerUID !== $uid && !$this->albumMapper->isCollaborator($this->album->getAlbum()->getId(), $ownerUID)) {
                        throw new Forbidden("Can't add photo to album, only photos from $uid can be added unless the album is shared with the owner of the photo ($ownerUID)");
                }

My photo gets added but I get a number of weird things:

  • Previews have trouble being displayed. I need to refresh the page for them to appear. And I get an error in the log saying that some folder "appdata_xxxxxxxx/preview/a/b/1/2/3" couldn't get created. But it was created and the preview is generated is seems ...
  • the photo gets copied to the root of my Photos folder: is this the expected behavior?
  • I get another error message saying "Failed to add myphoto.jpg to collection photos/myuser/albums/myalbumname" in the UI and a "Webdav / Not found: myphoto.jpg" in the log. This comes from the following line:
    logger.error(t('photos', 'Failed to add {fileBaseName} to collection {collectionFileName}.', { fileBaseName: file.basename, collectionFileName }), { error })
    Why this error? I don't even see a folder called photos/myuser/albums in my data?

All in all, why so many webdav operations and copying files around to handle albums? It sounds a bit messy

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage Pending approval or rejection. This issue is pending approval. bug Something isn't working
Projects
None yet
Development

No branches or pull requests