1
0
Fork 0
mirror of https://gitlab.com/bramw/baserow.git synced 2025-04-06 22:08:52 +00:00
bramw_baserow/enterprise/web-frontend/modules/baserow_enterprise/plugins.js
2023-08-25 15:31:05 +00:00

56 lines
1.9 KiB
JavaScript

import { BaserowPlugin } from '@baserow/modules/core/plugins'
import ChatwootSupportSidebarWorkspace from '@baserow_enterprise/components/ChatwootSupportSidebarWorkspace'
import AuditLogSidebarWorkspace from '@baserow_enterprise/components/AuditLogSidebarWorkspace'
import MemberRolesDatabaseContextItem from '@baserow_enterprise/components/member-roles/MemberRolesDatabaseContextItem'
import MemberRolesTableContextItem from '@baserow_enterprise/components/member-roles/MemberRolesTableContextItem'
import EnterpriseFeatures from '@baserow_enterprise/features'
import SnapshotModalWarning from '@baserow_enterprise/components/SnapshotModalWarning'
export class EnterprisePlugin extends BaserowPlugin {
static getType() {
return 'enterprise'
}
getSidebarWorkspaceComponents(workspace) {
const supportEnabled = this.app.$hasFeature(
EnterpriseFeatures.SUPPORT,
workspace.id
)
const sidebarItems = []
if (supportEnabled) {
sidebarItems.push(ChatwootSupportSidebarWorkspace)
}
sidebarItems.push(AuditLogSidebarWorkspace)
return sidebarItems
}
getAdditionalDatabaseContextComponents(workspace, database) {
if (
this.app.$hasFeature(EnterpriseFeatures.RBAC, workspace.id) &&
this.app.$hasPermission('application.read_role', database, workspace.id)
) {
return [MemberRolesDatabaseContextItem]
} else {
return []
}
}
getAdditionalTableContextComponents(workspace, table) {
if (
this.app.$hasFeature(EnterpriseFeatures.RBAC, workspace.id) &&
this.app.$hasPermission('database.table.read_role', table, workspace.id)
) {
return [MemberRolesTableContextItem]
} else {
return []
}
}
getExtraSnapshotModalComponents(workspace) {
const rbacSupport = this.app.$hasFeature(
EnterpriseFeatures.RBAC,
workspace.id
)
return rbacSupport ? SnapshotModalWarning : null
}
}