mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
(core) clean up snapshot list when access rules are in effect
Summary: When access rules are in effect on a document, non-owners currently don't have access to snapshots. Previously when the document history tab is opened in this situation, an error toast would appear, along with a small message that was hard to see in dark mode. This change removes the toast and improves the message somewhat. Test Plan: updated test Reviewers: jarek Reviewed By: jarek Differential Revision: https://phab.getgrist.com/D4218
This commit is contained in:
parent
e380fcfa90
commit
67afd74817
@ -74,12 +74,24 @@ export class DocHistory extends Disposable implements IDomComponent {
|
||||
docApi.getSnapshots().then(result =>
|
||||
snapshots.isDisposed() || snapshots.set(result.snapshots)).catch(err => {
|
||||
snapshotsDenied.set(true);
|
||||
reportError(err);
|
||||
// "cannot confirm access" is what we expect if snapshots
|
||||
// are denied because of access rules.
|
||||
if (!String(err).match(/cannot confirm access/)) {
|
||||
reportError(err);
|
||||
}
|
||||
});
|
||||
return dom(
|
||||
'div',
|
||||
{tabIndex: '-1'}, // Voodoo needed to allow copying text.
|
||||
dom.maybe(snapshotsDenied, () => cssSnapshotDenied(
|
||||
t("Snapshots are unavailable."),
|
||||
dom(
|
||||
'p',
|
||||
t("Snapshots are unavailable."),
|
||||
),
|
||||
dom(
|
||||
'p',
|
||||
t("Only owners have access to snapshots for documents with access rules."),
|
||||
),
|
||||
testId('doc-history-error'))),
|
||||
// Note that most recent snapshots are first.
|
||||
dom.domComputed(snapshots, (snapshotList) => snapshotList.map((snapshot, index) => {
|
||||
@ -128,6 +140,8 @@ const cssSnapshot = styled('div', `
|
||||
|
||||
const cssSnapshotDenied = styled('div', `
|
||||
margin: 8px 16px;
|
||||
text-align: center;
|
||||
color: ${theme.text};
|
||||
`);
|
||||
|
||||
const cssSnapshotTime = styled('div', `
|
||||
|
@ -1715,7 +1715,7 @@ export class ActiveDoc extends EventEmitter {
|
||||
|
||||
public async getSnapshots(docSession: OptDocSession, skipMetadataCache?: boolean): Promise<DocSnapshots> {
|
||||
if (await this._granularAccess.hasNuancedAccess(docSession)) {
|
||||
throw new Error('cannot confirm access to snapshots');
|
||||
throw new Error('cannot confirm access to snapshots because of access rules');
|
||||
}
|
||||
return this._docManager.storageManager.getSnapshots(this.docName, skipMetadataCache);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user