diff --git a/package-lock.json b/package-lock.json index cdbffc72f5..ccde4dda84 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,6 +20,7 @@ "@nextcloud/l10n": "^3.0.1", "@nextcloud/logger": "^3.0.1", "@nextcloud/router": "^3.0.0", + "@nextcloud/sharing": "^0.2.2", "@nextcloud/timezones": "^0.1.1", "@nextcloud/vue-select": "^3.25.0", "@vueuse/components": "^10.9.0", @@ -4200,6 +4201,18 @@ "npm": "^10.0.0" } }, + "node_modules/@nextcloud/sharing": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@nextcloud/sharing/-/sharing-0.2.2.tgz", + "integrity": "sha512-ui0ZoVazroA+cF4+homhFSFAddd/P4uRYMfG3rw3QR8o6igrVFe0f0l21kYtUwXU0oC0K4v3k8j93zCTfz6v3g==", + "dependencies": { + "@nextcloud/initial-state": "^2.2.0" + }, + "engines": { + "node": "^20.0.0", + "npm": "^10.0.0" + } + }, "node_modules/@nextcloud/stylelint-config": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-3.0.1.tgz", diff --git a/package.json b/package.json index 8e53bea11c..b57e93ae82 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "@nextcloud/l10n": "^3.0.1", "@nextcloud/logger": "^3.0.1", "@nextcloud/router": "^3.0.0", + "@nextcloud/sharing": "^0.2.2", "@nextcloud/timezones": "^0.1.1", "@nextcloud/vue-select": "^3.25.0", "@vueuse/components": "^10.9.0", diff --git a/src/components/NcRichText/NcReferenceList.vue b/src/components/NcRichText/NcReferenceList.vue index e0e1df3b98..0cfc9965d7 100644 --- a/src/components/NcRichText/NcReferenceList.vue +++ b/src/components/NcRichText/NcReferenceList.vue @@ -15,6 +15,8 @@ import NcReferenceWidget from './NcReferenceWidget.vue' import { URL_PATTERN } from './helpers.js' import axios from '@nextcloud/axios' +import { getSharingToken } from '@nextcloud/sharing/public' +import { getCurrentUser } from '@nextcloud/auth' import { generateOcsUrl } from '@nextcloud/router' export default { @@ -118,15 +120,25 @@ export default { }, resolve() { const match = (new RegExp(URL_PATTERN).exec(this.text.trim())) + const isPublic = getCurrentUser() === null if (this.limit === 1 && match) { - return axios.get(generateOcsUrl('references/resolve', 2) + `?reference=${encodeURIComponent(match[0])}`) + return isPublic + ? axios.get(generateOcsUrl('references/resolvePublic') + `?reference=${encodeURIComponent(match[0])}&sharingToken=${getSharingToken()}`) + : axios.get(generateOcsUrl('references/resolve') + `?reference=${encodeURIComponent(match[0])}`) } - return axios.post(generateOcsUrl('references/extract', 2), { - text: this.text, - resolve: true, - limit: this.limit, - }) + return isPublic + ? axios.post(generateOcsUrl('references/extractPublic'), { + text: this.text, + resolve: true, + limit: this.limit, + sharingToken: getSharingToken(), + }) + : axios.post(generateOcsUrl('references/extract'), { + text: this.text, + resolve: true, + limit: this.limit, + }) }, }, }