nextcloud / nextcloud/server

Improve smartness of handling public and internal links

Open
#39,148 7 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

0. Needs triage design enhancement feature: sharing
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

We've discussed improving sharing for a long while - the multiple types of share links are confusing, you can enter a name but people don't see the input box and so on. I know fully fixing this is hard, but there's a relatively quick thing that will help a lot to make public links work better.

The most common mistake is mistaking a public link for an internal link. So what if Nextcloud would act like this:

  • if you open a public link and are not logged in, you see what you see now
  • if you are the user who created the public link, you see the public link as you see it now (to check how it looks for others - people test the links often)
  • if you open the public link and you are logged in into that same Nextcloud and have access to the file, it acts as an internal link
  • if you open the public link and you are logged in into that same Nextcloud and do not have access to the file, the file is shared with you and then loads it, acting as an internal link

We could alternatively add a big, obvious button that does some or all of these things, for cases where for example somebody else who is logged in wants to check out what the public link looks like. But I would vote for 'just working'.

this isn't a full fix of the link confusion issue, but it would be a 60% solution... In the future, we could eliminate internal links, and have only 'public' links that have a switch - "external" on or off, a bit like Talk rooms can be configured to let guests in or not.

It would make the checking of a public link by a colleague a bit harder (they would have to log out or use a anonymous window). I dunno if this really is an issue - with Google and Microsoft you can't do this either.

Discussed with @jancborchardt and @nimishavijay

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by tracing how Nextcloud distinguishes public-link access from internal-link access and how permissions are checked, then verify the four logged-in and anonymous behaviors described in the issue without losing the creator's current public-link view.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
authorization, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.