No files here when tapping entry listed in File Widget
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 2.5k
- Forks
- 1k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 13
Description
Steps to reproduce
- Install out-of-the-box Nextcloud Server 27.1.3 at https://example.com/nextcloud
- Install and configure latest iOS Nextcloud app
- Install File widget on home screen
- Tap any file listed on the file widget
- Nextcloud app opens, but shows a wrong (non-existing) path where the installation subfolder (/nextcloud) is added to path
Expected behaviour
I would like to land on the viewer of the specific file but instead the app opens with a wrong path. It seems that the first path element is wrong
This only happens if the server is installed in a sub-folder like https://example.com/nextcloud - not if it's running at https://example.com
Actual behaviour
The app shows a (non-existing) path
Screenshots
Recording taken from iOS Simulator, but same behaviour on actual devices (iPhone8 as well as iPad mini 6) with version 4.9.1.0 loaded from AppStore.
https://github.com/nextcloud/ios/assets/8344334/4f51944b-7d09-491c-ad4f-1e32b277082f
Logs
2023-11-13 11:05:41 [INFO] Application will enter in foreground
2023-11-13 11:05:45 [INFO] Reload data source network files forced false
2023-11-13 11:05:45 [INFO] Application did become active
Initial
2023-11-13 11:05:45 [INFO] Initialize Auto upload with 0 uploads
2023-11-13 11:05:45 Network request started: PROPFIND https://example.com/nextcloud/remote.php/dav/files/admin
2023-11-13 11:05:45 Network request started: GET https://example.com/nextcloud/status.php
[Request]: GET https://example.com/nextcloud/status.php
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Access-Control-Allow-Origin: *
Cache-Control: no-store, no-cache, must-revalidate
content-security-policy: default-src 'self'; script-src 'self' 'nonce-dThmVjlWaUJ0SjdDUnNUYmxNZEJscXUrU3VQM21aRmxvYm1OUkNySThuWT06Mkw2N3RCWExnL1NiRG95WTU1SVc1OTNvS0lqSG9mVWYxZFBHSVYrdDNVST0='; style-src 'self' 'unsafe-inline'; frame-src *; img-src * data: blob:; font-src 'self' data:; media-src *; connect-src *; object-src 'none'; base-uri 'self';
Content-Type: application/json
Date: Mon, 13 Nov 2023 10:05:45 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"27.1.3.2","versionstring":"27.1.3","edition":"","productname":"Nextcloud","extendedSupport":false}
[Network Duration]: 0.04228699207305908s
[Serialization Duration]: 4.500150680541992e-06s
[Result]: success(170 bytes)
2023-11-13 11:05:45 Network response request: https://example.com/nextcloud/status.php, result: success(170 bytes)
2023-11-13 11:05:45 Network request started: GET https://example.com/nextcloud/ocs/v2.php/cloud/user
[Request]: PROPFIND https://example.com/nextcloud/remote.php/dav/files/admin
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
Depth: 0
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: 1795 bytes
[Response]:
[Status Code]: 207
[Headers]:
Cache-Control: no-store, no-cache, must-revalidate
Content-Encoding: gzip
content-security-policy: default-src 'none';
Content-Type: application/xml; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:45 GMT
dav: 1, 3, extended-mkcol, access-control, calendarserver-principal-property-search, nextcloud-checksum-update, nc-calendar-search, nc-enable-birthday-calendar
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
Vary: Brief,Prefer
x-content-type-options: nosniff
x-debug-token: ZVH0-fzpHEf5k9BGpZmCAgAARhM
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-fzpHEf5k9BGpZmCAgAARhM
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns"><d:response><d:href>/nextcloud/remote.php/dav/files/admin/</d:href><d:propstat><d:prop><d:getlastmodified>Mon, 13 Nov 2023 09:56:59 GMT</d:getlastmodified><d:getetag>"6551f2ebe13c6"</d:getetag><d:resourcetype><d:collection/></d:resourcetype><d:quota-available-bytes>-3</d:quota-available-bytes><d:quota-used-bytes>591652538</d:quota-used-bytes><oc:permissions>GDNVCK</oc:permissions><oc:id>00000002occz5fcvp8sm</oc:id><oc:fileid>2</oc:fileid><oc:size>591652538</oc:size><oc:favorite>0</oc:favorite><oc:share-types/><oc:owner-id>admin</oc:owner-id><oc:owner-display-name>admin</oc:owner-display-name><oc:comments-unread>0</oc:comments-unread><oc:data-fingerprint></oc:data-fingerprint><nc:creation_time>0</nc:creation_time><nc:is-encrypted>0</nc:is-encrypted><nc:has-preview>false</nc:has-preview><nc:mount-type></nc:mount-type><nc:rich-workspace></nc:rich-workspace><nc:note></nc:note><nc:system-tags/><x1:share-permissions xmlns:x1="http://open-collaboration-services.org/ns">15</x1:share-permissions><x2:share-permissions xmlns:x2="http://open-cloud-mesh.org/ns">["read","write"]</x2:share-permissions></d:prop><d:status>HTTP/1.1 200 OK</d:status></d:propstat><d:propstat><d:prop><d:getcontenttype/><oc:checksums/><oc:downloadURL/><nc:upload_time/><nc:lock/><nc:lock-owner/><nc:lock-owner-editor/><nc:lock-owner-displayname/><nc:lock-owner-type/><nc:lock-time/><nc:lock-timeout/><nc:file-metadata-size/><nc:file-metadata-gps/></d:prop><d:status>HTTP/1.1 404 Not Found</d:status></d:propstat></d:response></d:multistatus>
[Network Duration]: 0.08174610137939453s
[Serialization Duration]: 8.00006091594696e-06s
[Result]: success(1707 bytes)
2023-11-13 11:05:45 Network response request: https://example.com/nextcloud/remote.php/dav/files/admin, result: success(1707 bytes)
[Request]: GET https://example.com/nextcloud/ocs/v2.php/cloud/user
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Length: 509
content-security-policy: default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'
Content-Type: application/json; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:45 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
feature-policy: autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-fzpHEf5k9BGpZmCBAAARgo
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"enabled":true,"storageLocation":"\/Data2\/www\/nextcloud2\/data\/admin","id":"admin","lastLogin":1699868151000,"backend":"Database","subadmin":[],"quota":{"free":682265583616,"used":591652538,"total":682857236154,"relative":0.09,"quota":-3},"manager":"","avatarScope":"v2-federated","email":"mail@patrickfischer.ch","emailScope":"v2-federated","additional_mail":[],"additional_mailScope":[],"displayname":"admin","display-name":"admin","displaynameScope":"v2-federated","phone":"","phoneScope":"v2-local","address":"","addressScope":"v2-local","website":"","websiteScope":"v2-local","twitter":"","twitterScope":"v2-local","fediverse":"","fediverseScope":"v2-local","organisation":"","organisationScope":"v2-local","role":"","roleScope":"v2-local","headline":"","headlineScope":"v2-local","biography":"","biographyScope":"v2-local","profile_enabled":"1","profile_enabledScope":"v2-local","groups":["admin"],"language":"en_GB","locale":"en_150","notify_email":null,"backendCapabilities":{"setDisplayName":true,"setPassword":true}}}}
[Network Duration]: 0.030890941619873047s
[Serialization Duration]: 5.583278834819794e-06s
[Result]: success(1102 bytes)
2023-11-13 11:05:45 Network response request: https://example.com/nextcloud/ocs/v2.php/cloud/user, result: success(1102 bytes)
2023-11-13 11:05:45 [INFO] start synchronize Favorite
2023-11-13 11:05:45 Network request started: REPORT https://example.com/nextcloud/remote.php/dav/files/admin
2023-11-13 11:05:45 Network request started: GET https://example.com/nextcloud/index.php/avatar/admin/384
2023-11-13 11:05:45 Network request started: GET https://example.com/nextcloud/ocs/v1.php/cloud/capabilities
2023-11-13 11:05:45 Network request started: GET https://example.com/nextcloud/ocs/v2.php/apps/dashboard/api/v1/widgets
[Request]: GET https://example.com/nextcloud/ocs/v2.php/apps/dashboard/api/v1/widgets
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Length: 374
content-security-policy: default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'
Content-Type: application/json; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:46 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
feature-policy: autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-vzpHEf5k9BGpZmCCAAARhU
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"activity":{"id":"activity","title":"Recent activity","order":20,"icon_class":"icon-activity","icon_url":"https:\/\/example.com\/nextcloud\/apps\/activity\/img\/activity-dark.svg","widget_url":"https:\/\/example.com\/nextcloud\/apps\/activity\/","item_icons_round":false,"item_api_versions":[1,2],"reload_interval":30,"buttons":[{"type":"more","text":"More activities","link":"https:\/\/example.com\/nextcloud\/apps\/activity\/"}]},"recommendations":{"id":"recommendations","title":"Recommended files","order":0,"icon_class":"icon-files-dark","icon_url":"https:\/\/example.com\/nextcloud\/apps\/files\/img\/app.svg","widget_url":null,"item_icons_round":false,"item_api_versions":[1,2],"reload_interval":0},"user_status":{"id":"user_status","title":"Recent statuses","order":5,"icon_class":"icon-user-status-dark","icon_url":"https:\/\/example.com\/nextcloud\/apps\/user_status\/img\/app-dark.svg","widget_url":null,"item_icons_round":true,"item_api_versions":[1,2],"reload_interval":0}}}}
[Network Duration]: 0.05411398410797119s
[Serialization Duration]: 5.666632205247879e-06s
[Result]: success(1094 bytes)
2023-11-13 11:05:46 Network response request: https://example.com/nextcloud/ocs/v2.php/apps/dashboard/api/v1/widgets, result: success(1094 bytes)
[Request]: REPORT https://example.com/nextcloud/remote.php/dav/files/admin
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: 1870 bytes
[Response]:
[Status Code]: 207
[Headers]:
Cache-Control: no-store, no-cache, must-revalidate
content-security-policy: default-src 'none';
Content-Type: application/xml; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:46 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-debug-token: ZVH0-vzpHEf5k9BGpZmCBQAARgo
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-vzpHEf5k9BGpZmCBQAARgo
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns"/>
[Network Duration]: 0.06077897548675537s
[Serialization Duration]: 5.333451554179192e-06s
[Result]: success(156 bytes)
2023-11-13 11:05:46 Network response request: https://example.com/nextcloud/remote.php/dav/files/admin, result: success(156 bytes)
[Request]: GET https://example.com/nextcloud/ocs/v1.php/cloud/capabilities
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Length: 1898
content-security-policy: default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'
Content-Type: application/json; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:46 GMT
Etag: "b2b8ef86d2afd82c4088d028a9f5ce07"
Expires: Thu, 19 Nov 1981 08:52:00 GMT
feature-policy: autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-vzpHEf5k9BGpZmCBwAARgc
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
{"ocs":{"meta":{"status":"ok","statuscode":100,"message":"OK","totalitems":"","itemsperpage":""},"data":{"version":{"major":27,"minor":1,"micro":3,"string":"27.1.3","edition":"","extendedSupport":false},"capabilities":{"core":{"pollinterval":60,"webdav-root":"remote.php\/webdav","reference-api":true,"reference-regex":"(\\s|\\n|^)(https?:\\\/\\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z]+(?:\\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|\\n|$)"},"bruteforce":{"delay":0,"allow-listed":false},"metadataAvailable":{"size":["\/image\\\/(png|jpeg|heif|webp|tiff)\/"],"gps":["\/image\\\/(png|jpeg|heif|webp|tiff)\/"]},"files":{"bigfilechunking":true,"blacklisted_files":[".htaccess"],"directEditing":{"url":"https:\/\/example.com\/nextcloud\/ocs\/v2.phpoud\/ocsapp\/apps\/files\/api\/v1\/directEditing","etag":"c748e8fc588b54fc5af38c4481a19d20","supportsFileId":true},"comments":true,"undelete":true,"versioning":true,"version_labeling":true,"version_deletion":true},"activity":{"apiv2":["filters","filters-api","previews","rich-strings"]},"circles":{"version":"27.0.1","status":{"globalScale":false},"settings":{"frontendEnabled":true,"allowedCircles":262143,"allowedUserTypes":31,"membersLimit":-1},"circle":{"constants":{"flags":{"1":"Single","2":"Personal","4":"System","8":"Visible","16":"Open","32":"Invite","64":"Join Request","128":"Friends","256":"Password Protected","512":"No Owner","1024":"Hidden","2048":"Backend","4096":"Local","8192":"Root","16384":"Circle Invite","32768":"Federated","65536":"Mount point"},"source":{"core":{"1":"Nextcloud Account","2":"Nextcloud Group","4":"Email Address","8":"Contact","16":"Circle","10000":"Nextcloud App"},"extra":{"10001":"Circles App","10002":"Admin Command Line"}}},"config":{"coreFlags":[1,2,4],"systemFlags":[512,1024,2048]}},"member":{"constants":{"level":{"1":"Member","4":"Moderator","8":"Admin","9":"Owner"}},"type":{"0":"single","1":"user","2":"group","4":"mail","8":"contact","16":"circle","10000":"app"}}},"ocm":{"enabled":true,"apiVersion":"1.0-proposal1","endPoint":"https:\/\/example.com\/nextcloud\/ocm","resourceTypes":[{"name":"file","shareTypes":["user","group"],"protocols":{"webdav":"\/public.php\/webdav\/"}}]},"dav":{"chunking":"1.0","bulkupload":"1.0"},"files_sharing":{"api_enabled":true,"public":{"enabled":true,"password":{"enforced":false,"askForOptionalPassword":false},"expire_date":{"enabled":false},"multiple_links":true,"expire_date_internal":{"enabled":false},"expire_date_remote":{"enabled":false},"send_mail":false,"upload":true,"upload_files_drop":true},"resharing":true,"user":{"send_mail":false,"expire_date":{"enabled":true}},"group_sharing":true,"group":{"enabled":true,"expire_date":{"enabled":true}},"default_permissions":31,"federation":{"outgoing":true,"incoming":true,"expire_date":{"enabled":true},"expire_date_supported":{"enabled":true}},"sharee":{"query_lookup_default":false,"always_show_unique":true},"sharebymail":{"enabled":true,"send_password_by_mail":true,"upload_files_drop":{"enabled":true},"password":{"enabled":true,"enforced":false},"expire_date":{"enabled":true,"enforced":false}}},"groupfolders":{"hasGroupFolders":false},"notifications":{"ocs-endpoints":["list","get","delete","delete-all","icons","rich-strings","action-web","user-status","exists"],"push":["devices","object-data","delete"],"admin-notifications":["ocs","cli"]},"password_policy":{"minLength":10,"enforceNonCommonPassword":true,"enforceNumericCharacters":false,"enforceSpecialCharacters":false,"enforceUpperLowerCase":false,"api":{"generate":"https:\/\/example.com\/nextcloud\/ocs\/v2.phpoud\/ocsapp\/apps\/password_policy\/api\/v1\/generate","validate":"https:\/\/example.com\/nextcloud\/ocs\/v2.phpoud\/ocsapp\/apps\/password_policy\/api\/v1\/validate"}},"provisioning_api":{"version":"1.17.0","AccountPropertyScopesVersion":2,"AccountPropertyScopesFederatedEnabled":true,"AccountPropertyScopesPublishedEnabled":true},"theming":{"name":"Nextcloud","url":"https:\/\/nextcloud.com","slogan":"a safe home for all your data","color":"#0082c9","color-text":"#ffffff","color-element":"#0082c9","color-element-bright":"#0082c9","color-element-dark":"#0082c9","logo":"https:\/\/example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0","background":"https:\/\/example.com\/nextcloud\/apps\/theming\/img\/background\/kamil-porembinski-clouds.jpg","background-plain":false,"background-default":true,"logoheader":"https:\/\/example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0","favicon":"https:\/\/example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0"},"user_status":{"enabled":true,"restore":true,"supports_emoji":true},"weather_status":{"enabled":true}}}}}
[Network Duration]: 0.06002199649810791s
[Serialization Duration]: 0.0s
[Result]: success(Optional(4666 bytes))
{
"ocs" : {
"meta" : {
"status" : "ok",
"message" : "OK",
"totalitems" : "",
"statuscode" : 100,
"itemsperpage" : ""
},
"data" : {
"version" : {
"extendedSupport" : false,
"minor" : 1,
"micro" : 3,
"major" : 27,
"string" : "27.1.3",
"edition" : ""
},
"capabilities" : {
"user_status" : {
"enabled" : true,
"restore" : true,
"supports_emoji" : true
},
"groupfolders" : {
"hasGroupFolders" : false
},
"dav" : {
"chunking" : "1.0",
"bulkupload" : "1.0"
},
"bruteforce" : {
"delay" : 0,
"allow-listed" : false
},
"files_sharing" : {
"public" : {
"upload" : true,
"password" : {
"askForOptionalPassword" : false,
"enforced" : false
},
"enabled" : true,
"multiple_links" : true,
"expire_date_internal" : {
"enabled" : false
},
"expire_date_remote" : {
"enabled" : false
},
"upload_files_drop" : true,
"send_mail" : false,
"expire_date" : {
"enabled" : false
}
},
"sharee" : {
"query_lookup_default" : false,
"always_show_unique" : true
},
"api_enabled" : true,
"group_sharing" : true,
"resharing" : true,
"default_permissions" : 31,
"federation" : {
"expire_date_supported" : {
"enabled" : true
},
"incoming" : true,
"outgoing" : true,
"expire_date" : {
"enabled" : true
}
},
"sharebymail" : {
"password" : {
"enabled" : true,
"enforced" : false
},
"enabled" : true,
"upload_files_drop" : {
"enabled" : true
},
"send_password_by_mail" : true,
"expire_date" : {
"enabled" : true,
"enforced" : false
}
},
"group" : {
"enabled" : true,
"expire_date" : {
"enabled" : true
}
},
"user" : {
"send_mail" : false,
"expire_date" : {
"enabled" : true
}
}
},
"weather_status" : {
"enabled" : true
},
"theming" : {
"color-element" : "#0082c9",
"slogan" : "a safe home for all your data",
"color-element-bright" : "#0082c9",
"url" : "https:\/\/nextcloud.com",
"color" : "#0082c9",
"logo" : "https:\/\/example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0",
"background" : "https:\/\/example.com\/nextcloud\/apps\/theming\/img\/background\/kamil-porembinski-clouds.jpg",
"background-default" : true,
"logoheader" : "https:\/\/example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0",
"background-plain" : false,
"favicon" : "https:\/\/example.com\/nextcloud\/core\/img\/logo\/logo.svg?v=0",
"color-element-dark" : "#0082c9",
"name" : "Nextcloud",
"color-text" : "#ffffff"
},
"files" : {
"comments" : true,
"blacklisted_files" : [
".htaccess"
],
"versioning" : true,
"directEditing" : {
"url" : "https:\/\/example.com\/nextcloud\/ocs\/v2.phpoud\/ocsapp\/apps\/files\/api\/v1\/directEditing",
"etag" : "c748e8fc588b54fc5af38c4481a19d20",
"supportsFileId" : true
},
"bigfilechunking" : true,
"undelete" : true,
"version_deletion" : true,
"version_labeling" : true
},
"password_policy" : {
"minLength" : 10,
"enforceNonCommonPassword" : true,
"enforceUpperLowerCase" : false,
"enforceNumericCharacters" : false,
"api" : {
"generate" : "https:\/\/example.com\/nextcloud\/ocs\/v2.phpoud\/ocsapp\/apps\/password_policy\/api\/v1\/generate",
"validate" : "https:\/\/example.com\/nextcloud\/ocs\/v2.phpoud\/ocsapp\/apps\/password_policy\/api\/v1\/validate"
},
"enforceSpecialCharacters" : false
},
"activity" : {
"apiv2" : [
"filters",
"filters-api",
"previews",
"rich-strings"
]
},
"metadataAvailable" : {
"gps" : [
"\/image\\\/(png|jpeg|heif|webp|tiff)\/"
],
"size" : [
"\/image\\\/(png|jpeg|heif|webp|tiff)\/"
]
},
"ocm" : {
"endPoint" : "https:\/\/example.com\/nextcloud\/ocm",
"enabled" : true,
"resourceTypes" : [
{
"name" : "file",
"shareTypes" : [
"user",
"group"
],
"protocols" : {
"webdav" : "\/public.php\/webdav\/"
}
}
],
"apiVersion" : "1.0-proposal1"
},
"circles" : {
"status" : {
"globalScale" : false
},
"circle" : {
"constants" : {
"flags" : {
"2" : "Personal",
"128" : "Friends",
"16384" : "Circle Invite",
"32" : "Invite",
"64" : "Join Request",
"256" : "Password Protected",
"4" : "System",
"16" : "Open",
"512" : "No Owner",
"1024" : "Hidden",
"2048" : "Backend",
"4096" : "Local",
"8192" : "Root",
"32768" : "Federated",
"8" : "Visible",
"65536" : "Mount point",
"1" : "Single"
},
"source" : {
"extra" : {
"10001" : "Circles App",
"10002" : "Admin Command Line"
},
"core" : {
"1" : "Nextcloud Account",
"8" : "Contact",
"4" : "Email Address",
"2" : "Nextcloud Group",
"16" : "Circle",
"10000" : "Nextcloud App"
}
}
},
"config" : {
"coreFlags" : [
1,
2,
4
],
"systemFlags" : [
512,
1024,
2048
]
}
},
"member" : {
"constants" : {
"level" : {
"1" : "Member",
"8" : "Admin",
"4" : "Moderator",
"9" : "Owner"
}
},
"type" : {
"16" : "circle",
"8" : "contact",
"4" : "mail",
"0" : "single",
"1" : "user",
"10000" : "app",
"2" : "group"
}
},
"settings" : {
"allowedUserTypes" : 31,
"membersLimit" : -1,
"frontendEnabled" : true,
"allowedCircles" : 262143
},
"version" : "27.0.1"
},
"notifications" : {
"push" : [
"devices",
"object-data",
"delete"
],
"admin-notifications" : [
"ocs",
"cli"
],
"ocs-endpoints" : [
"list",
"get",
"delete",
"delete-all",
"icons",
"rich-strings",
"action-web",
"user-status",
"exists"
]
},
"core" : {
"pollinterval" : 60,
"reference-api" : true,
"webdav-root" : "remote.php\/webdav",
"reference-regex" : "(\\s|\\n|^)(https?:\\\/\\\/)((?:[-A-Z0-9+_]+\\.)+[-A-Z]+(?:\\\/[-A-Z0-9+&@#%?=~_|!:,.;()]*)*)(\\s|\\n|$)"
},
"provisioning_api" : {
"AccountPropertyScopesVersion" : 2,
"AccountPropertyScopesFederatedEnabled" : true,
"AccountPropertyScopesPublishedEnabled" : true,
"version" : "1.17.0"
}
}
}
}
}
[Request]: GET https://example.com/nextcloud/index.php/avatar/admin/384
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
If-None-Match: "8c7d6903e2d27cd193797adb84ea8832"
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 304
[Headers]:
Cache-Control: private, max-age=86400, immutable
Content-Disposition: inline; filename="avatar.512.png"
content-security-policy: default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'
Date: Mon, 13 Nov 2023 10:05:46 GMT
Etag: "8c7d6903e2d27cd193797adb84ea8832"
Expires: Tue, 14 Nov 2023 10:05:46 +0000
feature-policy: autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'
Last-Modified: Tue, 22 Aug 2023 13:53:20 GMT
Pragma: private
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-nc-iscustomavatar: 0
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-vzpHEf5k9BGpZmCBgAARhM
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]: None
[Network Duration]: 0.0643620491027832s
[Serialization Duration]: 0.0s
[Result]: failure(Alamofire.AFError.responseValidationFailed(reason: Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(code: 304)))
2023-11-13 11:05:46 Network request started: GET https://example.com/nextcloud/apps/user_status/img/app-dark.svg
[Request]: GET https://example.com/nextcloud/apps/user_status/img/app-dark.svg
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Accept-Ranges: bytes
Cache-Control: max-age=15778463
Content-Length: 401
Content-Type: image/svg+xml
Date: Mon, 13 Nov 2023 10:05:46 GMT
Etag: "191-608a020c78480"
Last-Modified: Thu, 26 Oct 2023 15:21:38 GMT
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
<svg width="24" height="24" enable-background="new 0 0 24 24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect width="24" height="24" fill="none"/><path d="m10.615 2.1094c-4.8491 0.68106-8.6152 4.8615-8.6152 9.8906 0 5.5 4.5 10 10 10 5.0292 0 9.2096-3.7661 9.8906-8.6152-1.4654 1.601-3.5625 2.6152-5.8906 2.6152-4.4 0-8-3.6-8-8 0-2.3281 1.0143-4.4252 2.6152-5.8906z"/></svg>
[Network Duration]: 0.0038650035858154297s
[Serialization Duration]: 0.0s
[Result]: success(Optional(401 bytes))
2023-11-13 11:05:46 [INFO] end synchronize Favorite
2023-11-13 11:05:46 [INFO] start synchronize Offline
2023-11-13 11:05:46 [INFO] end synchronize offline
2023-11-13 11:05:46 Network request started: GET https://example.com/nextcloud/ocs/v2.php/apps/files/api/v1/directEditing
2023-11-13 11:05:46 Network request started: GET https://example.com/nextcloud/ocs/v2.php/apps/user_status/api/v1/user_status
2023-11-13 11:05:46 Network request started: GET https://example.com/nextcloud/apps/activity/img/activity-dark.svg
[Request]: GET https://example.com/nextcloud/apps/activity/img/activity-dark.svg
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Accept-Ranges: bytes
Cache-Control: max-age=15778463
Content-Length: 205
Content-Type: image/svg+xml
Date: Mon, 13 Nov 2023 10:05:46 GMT
Etag: "cd-608a021419680"
Last-Modified: Thu, 26 Oct 2023 15:21:46 GMT
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" version="1.0" viewbox="0 0 32 32">
<path d="m16 1-10 18h11l-1 12 10-18h-11z"/>
</svg>
[Network Duration]: 0.007249951362609863s
[Serialization Duration]: 0.0s
[Result]: success(Optional(205 bytes))
[Request]: GET https://example.com/nextcloud/ocs/v2.php/apps/files/api/v1/directEditing
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Length: 326
content-security-policy: default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'
Content-Type: application/json; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:46 GMT
Etag: "c748e8fc588b54fc5af38c4481a19d20"
Expires: Thu, 19 Nov 1981 08:52:00 GMT
feature-policy: autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-vzpHEf5k9BGpZmCCgAARhM
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"editors":{"text":{"id":"text","name":"Nextcloud Text","mimetypes":["text\/markdown","text\/plain","application\/cmd","application\/x-empty","application\/x-msdos-program","application\/javascript","application\/json","application\/x-perl","application\/x-php","application\/x-tex","application\/xml","application\/yaml","text\/css","text\/csv","text\/html","text\/org","text\/x-c","text\/x-c++src","text\/x-h","text\/x-java-source","text\/x-ldif","text\/x-python","text\/x-shellscript"],"optionalMimetypes":[],"secure":false}},"creators":{"textdocument":{"id":"textdocument","editor":"text","name":"text document","extension":"md","templates":false,"mimetype":"text\/markdown"}}}}}
[Network Duration]: 0.0191190242767334s
[Serialization Duration]: 4.458241164684296e-06s
[Result]: success(753 bytes)
2023-11-13 11:05:46 Network response request: https://example.com/nextcloud/ocs/v2.php/apps/files/api/v1/directEditing, result: success(753 bytes)
[Request]: GET https://example.com/nextcloud/ocs/v2.php/apps/user_status/api/v1/user_status
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Cache-Control: no-cache, no-store, must-revalidate
Content-Encoding: gzip
Content-Length: 149
content-security-policy: default-src 'none';base-uri 'none';manifest-src 'self';frame-ancestors 'none'
Content-Type: application/json; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:46 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
feature-policy: autoplay 'none';camera 'none';fullscreen 'none';geolocation 'none';microphone 'none';payment 'none'
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-request-id: ZVH0-vzpHEf5k9BGpZmCCwAARgc
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"},"data":{"userId":"admin","message":null,"messageId":null,"messageIsPredefined":false,"icon":null,"clearAt":null,"status":"online","statusIsUserDefined":false}}}
[Network Duration]: 0.018770933151245117s
[Serialization Duration]: 2.791639417409897e-06s
[Result]: success(223 bytes)
2023-11-13 11:05:46 Network response request: https://example.com/nextcloud/ocs/v2.php/apps/user_status/api/v1/user_status, result: success(223 bytes)
2023-11-13 11:05:46 Network request started: GET https://example.com/nextcloud/apps/files/img/app.svg
[Request]: GET https://example.com/nextcloud/apps/files/img/app.svg
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: None
[Response]:
[Status Code]: 200
[Headers]:
Accept-Ranges: bytes
Cache-Control: max-age=15778463
Content-Length: 222
Content-Type: image/svg+xml
Date: Mon, 13 Nov 2023 10:05:46 GMT
Etag: "de-608a020c78480"
Last-Modified: Thu, 26 Oct 2023 15:21:38 GMT
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
<svg width="32" height="32" version="1.1" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="m3 4c-0.5 0-1 0.5-1 1v22c0 0.52 0.48 1 1 1h26c0.52 0 1-0.482 1-1v-18c0-0.5-0.5-1-1-1h-13l-4-4z" fill="#fff"/></svg>
[Network Duration]: 0.0036590099334716797s
[Serialization Duration]: 0.0s
[Result]: success(Optional(222 bytes))
2023-11-13 11:05:46 [INFO] Reload data source network files forced false
[Request]: PROPFIND https://example.com/nextcloud/remote.php/dav/files/admin/nextcloud
[Headers]:
Accept: application/json
Authorization: Basic YWRtaW46bHB1OEJyblZmZWNxM2E3QTJTMEZWdjhrQlNYcGZsVGNtRE5DRlZNVG54T3RaeFNnVWtzV2R0VjJMUFF4VlYzNUpWa3dNVGJT
Content-Type: application/x-www-form-urlencoded
Depth: 0
OCS-APIRequest: true
User-Agent: Mozilla/5.0 (iOS) Nextcloud-iOS/4.9.1
[Body]: 1795 bytes
[Response]:
[Status Code]: 404
[Headers]:
Cache-Control: no-store, no-cache, must-revalidate
content-security-policy: default-src 'none';
Content-Type: application/xml; charset=utf-8
Date: Mon, 13 Nov 2023 10:05:46 GMT
dav: 1, 3, extended-mkcol, access-control, calendarserver-principal-property-search, nextcloud-checksum-update, nc-calendar-search, nc-enable-birthday-calendar
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
referrer-policy: no-referrer
Server: Apache/2.4.52 (Ubuntu)
Strict-Transport-Security: max-age=63072000; includeSubdomains;
Vary: Brief,Prefer
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-permitted-cross-domain-policies: none
x-robots-tag: noindex, nofollow
x-xss-protection: 1; mode=block
[Body]:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\NotFound</s:exception>
<s:message>File with name //nextcloud could not be located</s:message>
</d:error>
[Network Duration]: 0.03146195411682129s
[Serialization Duration]: 5.791662260890007e-06s
[Result]: failure(Alamofire.AFError.responseValidationFailed(reason: Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(code: 404)))
2023-11-13 11:05:46 Network request started: PROPFIND https://example.com/nextcloud/remote.php/dav/files/admin/nextcloud (404)
2023-11-13 11:05:46 Network response request: https://example.com/nextcloud/remote.php/dav/files/admin/nextcloud, result: failure(Alamofire.AFError.responseValidationFailed(reason: Alamofire.AFError.ResponseValidationFailureReason.unacceptableStatusCode(code: 404)))
[LOG] PROCESS-UPLOAD-TIMER 0
[LOG] PROCESS-UPLOAD-TIMER 0
[LOG] PROCESS-UPLOAD-TIMER 0
Reasoning or why should it be changed/implemented?
Environment data
iOS 17.0.1
Nextcloud iOS app version: 4.9.1.0
Server operating system: Ubuntu 22.04
Web server: Apache
Database: mariadb
PHP version: PHP 8.1.2-1ubuntu2.14
Nextcloud version: 27.1.3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the File widget handoff with a Nextcloud Server installation in a subfolder, such as /nextcloud, then trace how the iOS app receives and interprets the selected file path. Done means tapping a widget entry opens that file in the viewer for both subfolder and root installations.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100