mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Adds new view as banner
Summary: Diff removes view-as pill in the document breadcrumbs and add new view-as banner. Note: Banners are still missing mechanism to handle several banners. As of now both doc-usage and view-as banners could show up at the same time. Test Plan: Refactored existing test. Reviewers: jarek Reviewed By: jarek Subscribers: jarek Differential Revision: https://phab.getgrist.com/D3732
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import {ActionSummary} from 'app/common/ActionSummary';
|
||||
import {ApplyUAResult, QueryFilters} from 'app/common/ActiveDocAPI';
|
||||
import {ApplyUAResult, PermissionDataWithExtraUsers, QueryFilters} from 'app/common/ActiveDocAPI';
|
||||
import {BaseAPI, IOptions} from 'app/common/BaseAPI';
|
||||
import {BillingAPI, BillingAPIImpl} from 'app/common/BillingAPI';
|
||||
import {BrowserSettings} from 'app/common/BrowserSettings';
|
||||
@@ -199,6 +199,16 @@ export function getRealAccess(user: UserAccessData, permissionData: PermissionDa
|
||||
return roles.getStrongestRole(user.access, inheritedAccess);
|
||||
}
|
||||
|
||||
const roleNames: {[role: string]: string} = {
|
||||
[roles.OWNER]: 'Owner',
|
||||
[roles.EDITOR]: 'Editor',
|
||||
[roles.VIEWER]: 'Viewer',
|
||||
};
|
||||
|
||||
export function getUserRoleText(user: UserAccessData) {
|
||||
return roleNames[user.access!] || user.access || 'no access';
|
||||
}
|
||||
|
||||
export interface ActiveSessionInfo {
|
||||
user: FullUser & {helpScoutSignature?: string};
|
||||
org: Organization|null;
|
||||
@@ -401,6 +411,9 @@ export interface DocAPI {
|
||||
// Upload a single attachment and return the resulting metadata row ID.
|
||||
// The arguments are passed to FormData.append.
|
||||
uploadAttachment(value: string | Blob, filename?: string): Promise<number>;
|
||||
|
||||
// Get users that are worth proposing to "View As" for access control purposes.
|
||||
getUsersForViewAs(): Promise<PermissionDataWithExtraUsers>;
|
||||
}
|
||||
|
||||
// Operations that are supported by a doc worker.
|
||||
@@ -833,6 +846,10 @@ export class DocAPIImpl extends BaseAPI implements DocAPI {
|
||||
});
|
||||
}
|
||||
|
||||
public async getUsersForViewAs(): Promise<PermissionDataWithExtraUsers> {
|
||||
return this.requestJson(`${this._url}/usersForViewAs`);
|
||||
}
|
||||
|
||||
public async forceReload(): Promise<void> {
|
||||
await this.request(`${this._url}/force-reload`, {
|
||||
method: 'POST'
|
||||
|
||||
Reference in New Issue
Block a user