Skip to content

Commit 8e7e7b1

Browse files
Sampsa Pennasampsapenna
andcommitted
fix nonexistent id cache causing legacy shares to break synchronization (merge commit)
Merge branch 'bugfix/hotfix-ignore-missing-id-for-legacy-shares' into 'main' * fix nonexistent id cache causing legacy shares to break synchronization See merge request https://gitlab.ci.csc.fi/sds-dev/sd-connect/swift-browser-ui/-/merge_requests/366 Approved-by: Teemu Kataja <[email protected]> Co-authored-by: Sampsa Penna <[email protected]> Merged by Sampsa Penna <[email protected]>
2 parents c454d77 + 31f2868 commit 8e7e7b1

File tree

2 files changed

+34
-24
lines changed

2 files changed

+34
-24
lines changed

swift_browser_ui_frontend/src/common/conv.js

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -112,31 +112,38 @@ export async function syncContainerACLs(store) {
112112
if (aclmeta[container][share].read) {
113113
// Check if the shared access only concerns view rights
114114
let tmpid = await client.projectCheckIDs(share);
115+
let whitelisted = false;
116+
117+
if (tmpid !== undefined) {
118+
let whitelistUrl = new URL(store.state.uploadEndpoint.concat(
119+
`/check/${store.state.active.name}/${container}/${tmpid.name}`,
120+
));
121+
let signatureUrl = new URL("/sign/3600", document.location.origin);
122+
signatureUrl.searchParams.append(
123+
"path",
124+
`/check/${store.state.active.name}/${container}/${tmpid.name}`,
125+
);
126+
let signed = await GET(signatureUrl);
127+
signed = await signed.json();
128+
whitelistUrl.searchParams.append("valid", signed.valid);
129+
whitelistUrl.searchParams.append("signature", signed.signature);
130+
131+
let whitelistedResp = await fetch(
132+
whitelistUrl,
133+
{
134+
method: "GET",
135+
},
136+
);
137+
138+
if (whitelistedResp.status == 200) {
139+
whitelisted = true;
140+
}
141+
}
115142

116-
let whitelistUrl = new URL(store.state.uploadEndpoint.concat(
117-
`/check/${store.state.active.name}/${container}/${tmpid.name}`,
118-
));
119-
let signatureUrl = new URL("/sign/3600", document.location.origin);
120-
signatureUrl.searchParams.append(
121-
"path",
122-
`/check/${store.state.active.name}/${container}/${tmpid.name}`,
123-
);
124-
let signed = await GET(signatureUrl);
125-
signed = await signed.json();
126-
whitelistUrl.searchParams.append("valid", signed.valid);
127-
whitelistUrl.searchParams.append("signature", signed.signature);
128-
129-
let whitelisted = await fetch(
130-
whitelistUrl,
131-
{
132-
method: "GET",
133-
},
134-
);
135-
136-
if (whitelisted.status == 204) {
137-
accesslist.push("v");
138-
} else {
143+
if (whitelisted) {
139144
accesslist.push("r");
145+
} else {
146+
accesslist.push("v");
140147
}
141148
}
142149
if (aclmeta[container][share].write) {

swift_browser_ui_frontend/src/common/swift_x_account_sharing_bind.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,10 @@ class SwiftXAccountSharing {
323323
},
324324
).then(
325325
(resp) => {
326-
return resp.json();
326+
if (resp.status == 200) {
327+
return resp.json();
328+
}
329+
else return undefined;
327330
},
328331
);
329332

0 commit comments

Comments
 (0)