Cannot share individual lists #1818

Closed
opened 2021-08-18 17:03:18 +00:00 by Sabinno · 8 comments

For a long time now, I haven't been able to share individual lists. Sharing lists works fine on the demo site. When I hover over a list, the menu icon simply does not appear at all. It appears over namespaces but not lists. I get the "favorite list" icon though.

I have tried:

  • using Chrome and Edge, latest stable, on Windows 10
  • clearing cache on both browsers both just on Vikunja and throughout the entire browser
  • deleted and pulled latest container images for api and frontend and restarted
  • enabled registration in env vars (previously was disabled) and restarted

Here's my api/v1/info converted to yaml so that a human being can read it:

---
version: v0.17.0+132-f98c7877fc
frontend_url: https://vikunja.contoso.com/
motd: ''
link_sharing_enabled: true
max_file_size: 20MB
registration_enabled: true
available_migrators:
task_attachments_enabled: true
enabled_background_providers:
totp_enabled: true
legal:
  imprint_url: ''
  privacy_policy_url: ''
caldav_enabled: true
auth:
  local:
    enabled: true
  openid_connect:
    enabled: false
    redirect_url: ''
    providers:
email_reminders_enabled: true
user_deletion_enabled: true
For a long time now, I haven't been able to share individual lists. Sharing lists works fine on the demo site. When I hover over a list, the menu icon simply does not appear at all. It appears over namespaces but not lists. I get the "favorite list" icon though. I have tried: * using Chrome and Edge, latest stable, on Windows 10 * clearing cache on both browsers both just on Vikunja and throughout the entire browser * deleted and pulled latest container images for api and frontend and restarted * enabled registration in env vars (previously was disabled) and restarted Here's my `api/v1/info` converted to yaml so that a human being can read it: ```yaml --- version: v0.17.0+132-f98c7877fc frontend_url: https://vikunja.contoso.com/ motd: '' link_sharing_enabled: true max_file_size: 20MB registration_enabled: true available_migrators: task_attachments_enabled: true enabled_background_providers: totp_enabled: true legal: imprint_url: '' privacy_policy_url: '' caldav_enabled: true auth: local: enabled: true openid_connect: enabled: false redirect_url: '' providers: email_reminders_enabled: true user_deletion_enabled: true ```
konrad added the
kind/bug
label 2021-08-18 17:38:19 +00:00
Owner

I wasn't able to reproduce with browserstack on a Chrome 92, which seems to confirm your test on the demo site.

Does the "general" menu hover effect appear when you hover over a list? It should look something like this:
image

Are you able to access any of the other menu entries from the list menu or none at all?
This is the Menu I'm talking about:
image

Can you access that same menu from the three dots at the top of the page next to the list title, when the list is opened? Like this:
image

I wasn't able to reproduce with browserstack on a Chrome 92, which seems to confirm your test on the demo site. Does the "general" menu hover effect appear when you hover over a list? It should look something like this: ![image](/attachments/27fd624d-9313-4d27-9aac-5b8d3a9f959c) Are you able to access any of the other menu entries from the list menu or none at all? This is the Menu I'm talking about: ![image](/attachments/3389dbc8-415a-4093-b26a-f43ddfb12100) Can you access that same menu from the three dots at the top of the page next to the list title, when the list is opened? Like this: ![image](/attachments/47c84f46-965b-4acf-a745-ac8046d4e4e5)
Author

I do not get the menu options on either the list in the sidebar nor next to the list title.

https://i.imgur.com/jt0haZd.png

https://i.imgur.com/wIOvZw1.png

I do not get the menu options on either the list in the sidebar nor next to the list title. ![https://i.imgur.com/jt0haZd.png](https://i.imgur.com/jt0haZd.png) ![https://i.imgur.com/wIOvZw1.png](https://i.imgur.com/wIOvZw1.png)
Owner

On every list or only ones you did not create? Does it work with newly created ones?

If you open any list view and look at in the network tab at the request to the api for that list, what is the max right header showing?

On every list or only ones you did not create? Does it work with newly created ones? If you open any list view and look at in the network tab at the request to the api for that list, what is the max right header showing?
Author

Every list -- I just created a brand new namespace and list to test as well.

I'm looking at the network tab on this new list; here's what I think is all the information given in the API request/response headers. Please let me know if this isn't what you need. I'm a little confused on what you mean exactly by "max right header".

General
---
Request URL: https://vikunja.argonaut.network/api/v1/lists/18/tasks?sort_by[]=position&sort_by[]=id&order_by[]=asc&order_by[]=desc&filter_by[]=done&filter_value[]=false&filter_comparator[]=equals&filter_concat=and&page=1
Request Method: GET
Status Code: 200 
Remote Address: 172.67.209.187:443
Referrer Policy: strict-origin-when-cross-origin

Response Headers
---
access-control-expose-headers: x-pagination-total-pages, x-pagination-result-count
alt-svc: h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400, h3=":443"; ma=86400
cf-cache-status: DYNAMIC
cf-ray: 6824abe7bb050d1a-ATL
content-length: 3
content-type: application/json; charset=UTF-8
date: Sat, 21 Aug 2021 14:50:02 GMT
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=IVshtzevd768nR9DWufHx%2FDjGhhLdmsOL%2FR0wdr4OsDyPTBCbtgU%2FnIeyChaVwb8A7NTzcBTJiOwu4OIsMAvmVMV%2BUypg%2BhGZPjtrQkpAX4M6ER8J%2FitdrPejcScABFXWjIP8YZTUk%2BdLPc%3D"}],"group":"cf-nel","max_age":604800}
server: cloudflare
vary: Origin
x-pagination-result-count: 0
x-pagination-total-pages: 0

Request Headers
---
:authority: vikunja.argonaut.network
:method: GET
:path: /api/v1/lists/18/tasks?sort_by[]=position&sort_by[]=id&order_by[]=asc&order_by[]=desc&filter_by[]=done&filter_value[]=false&filter_comparator[]=equals&filter_concat=and&page=1
:scheme: https
accept: application/json, text/plain, */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9,de;q=0.8
authorization: Bearer redacted
dnt: 1
referer: https://vikunja.argonaut.network/lists/18/list
sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Microsoft Edge";v="92"
sec-ch-ua-mobile: ?0
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73

Query String Parameters
---
sort_by[]: position
sort_by[]: id
order_by[]: asc
order_by[]: desc
filter_by[]: done
filter_value[]: false
filter_comparator[]: equals
filter_concat: and
page: 1
Every list -- I just created a brand new namespace and list to test as well. I'm looking at the network tab on this new list; here's what I think is all the information given in the API request/response headers. Please let me know if this isn't what you need. I'm a little confused on what you mean exactly by "max right header". ``` General --- Request URL: https://vikunja.argonaut.network/api/v1/lists/18/tasks?sort_by[]=position&sort_by[]=id&order_by[]=asc&order_by[]=desc&filter_by[]=done&filter_value[]=false&filter_comparator[]=equals&filter_concat=and&page=1 Request Method: GET Status Code: 200 Remote Address: 172.67.209.187:443 Referrer Policy: strict-origin-when-cross-origin Response Headers --- access-control-expose-headers: x-pagination-total-pages, x-pagination-result-count alt-svc: h3-27=":443"; ma=86400, h3-28=":443"; ma=86400, h3-29=":443"; ma=86400, h3=":443"; ma=86400 cf-cache-status: DYNAMIC cf-ray: 6824abe7bb050d1a-ATL content-length: 3 content-type: application/json; charset=UTF-8 date: Sat, 21 Aug 2021 14:50:02 GMT expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=IVshtzevd768nR9DWufHx%2FDjGhhLdmsOL%2FR0wdr4OsDyPTBCbtgU%2FnIeyChaVwb8A7NTzcBTJiOwu4OIsMAvmVMV%2BUypg%2BhGZPjtrQkpAX4M6ER8J%2FitdrPejcScABFXWjIP8YZTUk%2BdLPc%3D"}],"group":"cf-nel","max_age":604800} server: cloudflare vary: Origin x-pagination-result-count: 0 x-pagination-total-pages: 0 Request Headers --- :authority: vikunja.argonaut.network :method: GET :path: /api/v1/lists/18/tasks?sort_by[]=position&sort_by[]=id&order_by[]=asc&order_by[]=desc&filter_by[]=done&filter_value[]=false&filter_comparator[]=equals&filter_concat=and&page=1 :scheme: https accept: application/json, text/plain, */* accept-encoding: gzip, deflate, br accept-language: en-US,en;q=0.9,de;q=0.8 authorization: Bearer redacted dnt: 1 referer: https://vikunja.argonaut.network/lists/18/list sec-ch-ua: "Chromium";v="92", " Not A;Brand";v="99", "Microsoft Edge";v="92" sec-ch-ua-mobile: ?0 sec-fetch-dest: empty sec-fetch-mode: cors sec-fetch-site: same-origin user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.73 Query String Parameters --- sort_by[]: position sort_by[]: id order_by[]: asc order_by[]: desc filter_by[]: done filter_value[]: false filter_comparator[]: equals filter_concat: and page: 1 ```
Owner

When you access the list (not the tasks only) there's a X-Max-Right header which indicates the maximum right the current user has. The frontend uses this to decide whether to show the settings or not.

You can check this with curl:

$ curl -H "Authorization: Bearer $BEARER" localhost:3456/api/v1/lists/40 -v  

*   Trying ::1:3456...
* Connected to localhost (::1) port 3456 (#0)
> GET /api/v1/lists/40 HTTP/1.1
> Host: localhost:3456
> User-Agent: curl/7.76.1
> Accept: */*
> Authorization: Bearer $BEARER
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Access-Control-Expose-Headers: x-max-right
< Content-Type: application/json; charset=UTF-8
< Vary: Origin
< X-Max-Right: 2
< Date: Mon, 23 Aug 2021 15:59:38 GMT
< Content-Length: 363
< 
{"id":40,"title":"something","description":"","identifier":"","hex_color":"","namespace_id":22,"owner":{"id":6,"name":"","username":"test","created":"1970-01-01T01:00:00Z","updated":"2021-04-07T15:53:43Z"},"is_archived":false,"background_information":null,"is_favorite":false,"position":2621440,"created":"2021-03-14T19:53:10Z","updated":"2021-04-07T14:12:05Z"}
* Connection #0 to host localhost left intact

In this example, there's a X-Max-Right: 2 header in the response which indicates a maximum right of 2 (admin) for that particular list.

Does this header exist on your instance for the /api/v1/lists/<id> request?

I can see that you're using cloudflare - does it work if you disable the cloudflare proxy?

When you access the list (not the tasks only) there's a `X-Max-Right` header which indicates the maximum right the current user has. The frontend uses this to decide whether to show the settings or not. You can check this with curl: ``` $ curl -H "Authorization: Bearer $BEARER" localhost:3456/api/v1/lists/40 -v * Trying ::1:3456... * Connected to localhost (::1) port 3456 (#0) > GET /api/v1/lists/40 HTTP/1.1 > Host: localhost:3456 > User-Agent: curl/7.76.1 > Accept: */* > Authorization: Bearer $BEARER > * Mark bundle as not supporting multiuse < HTTP/1.1 200 OK < Access-Control-Expose-Headers: x-max-right < Content-Type: application/json; charset=UTF-8 < Vary: Origin < X-Max-Right: 2 < Date: Mon, 23 Aug 2021 15:59:38 GMT < Content-Length: 363 < {"id":40,"title":"something","description":"","identifier":"","hex_color":"","namespace_id":22,"owner":{"id":6,"name":"","username":"test","created":"1970-01-01T01:00:00Z","updated":"2021-04-07T15:53:43Z"},"is_archived":false,"background_information":null,"is_favorite":false,"position":2621440,"created":"2021-03-14T19:53:10Z","updated":"2021-04-07T14:12:05Z"} * Connection #0 to host localhost left intact ``` In this example, there's a `X-Max-Right: 2` header in the response which indicates a maximum right of 2 (admin) for that particular list. Does this header exist on your instance for the `/api/v1/lists/<id>` request? I can see that you're using cloudflare - does it work if you disable the cloudflare proxy?
Author

I found it. I just wasn't looking for the right thing. Thank you for clarifying.
x-max-right: 2

I found it. I just wasn't looking for the right thing. Thank you for clarifying. `x-max-right: 2`
Owner

I think I found it. I've created an account on your instance and looked around a bit and it looks like this was caused by disabling list backgrounds completely on your instance. Since upload backgrounds are enabled by default, I suspect no-one found this before.

0947ae9ce9 should fix that. Please upgrade your instance to the latest unstable version once the CI has released a new version (in ~30min).

I think I found it. I've created an account on your instance and looked around a bit and it looks like this was caused by disabling list backgrounds completely on your instance. Since upload backgrounds are enabled by default, I suspect no-one found this before. https://kolaente.dev/vikunja/frontend/commit/0947ae9ce96595f30b36e568ce8981a78e507ed4 should fix that. Please upgrade your instance to the latest unstable version once the CI has released a new version (in ~30min).
Author

You fixed it! Awesome.

You fixed it! Awesome.
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: vikunja/vikunja#1818
No description provided.