diff --git a/packages/nc-gui-v2/components/smartsheet/Toolbar.vue b/packages/nc-gui-v2/components/smartsheet/Toolbar.vue
index 01260b88b3..a49d8e4a7b 100644
--- a/packages/nc-gui-v2/components/smartsheet/Toolbar.vue
+++ b/packages/nc-gui-v2/components/smartsheet/Toolbar.vue
@@ -5,6 +5,7 @@ import ToggleDrawer from '~/components/smartsheet/sidebar/toolbar/ToggleDrawer.v
const { isGrid, isForm, isGallery } = useSmartsheetStoreOrThrow()
const isPublic = inject(IsPublicInj, ref(false))
const { allowCSVDownload } = useSharedView()
+const { isUIAllowed } = useUIPermission()
const { isOpen } = useSidebar()
@@ -31,7 +32,7 @@ const { isOpen } = useSidebar()
-
+
diff --git a/packages/nc-gui-v2/composables/useUIPermission/rolePermissions.ts b/packages/nc-gui-v2/composables/useUIPermission/rolePermissions.ts
index b0884700bd..b89ef57c00 100644
--- a/packages/nc-gui-v2/composables/useUIPermission/rolePermissions.ts
+++ b/packages/nc-gui-v2/composables/useUIPermission/rolePermissions.ts
@@ -8,6 +8,7 @@ const rolePermissions = {
column: true,
tableAttachment: true,
tableRowUpdate: true,
+ dataInsert: true,
rowComments: true,
gridViewOptions: true,
sortSync: true,
diff --git a/packages/nc-gui-v2/composables/useViewColumns.ts b/packages/nc-gui-v2/composables/useViewColumns.ts
index 830e9651eb..9923839ed0 100644
--- a/packages/nc-gui-v2/composables/useViewColumns.ts
+++ b/packages/nc-gui-v2/composables/useViewColumns.ts
@@ -19,6 +19,10 @@ export function useViewColumns(view: Ref | undefined, meta: ComputedRe
const { isSharedBase } = useProject()
+ const isLocalMode = computed(
+ () => isPublic.value || !isUIAllowed('hideAllColumns') || !isUIAllowed('showAllColumns') || isSharedBase.value,
+ )
+
const loadViewColumns = async () => {
if (!meta || !view) return
@@ -52,7 +56,7 @@ export function useViewColumns(view: Ref | undefined, meta: ComputedRe
}
const showAll = async (ignoreIds?: any) => {
- if (isPublic.value || isSharedBase.value) {
+ if (isLocalMode.value) {
fields.value = fields.value?.map((field: Field) => ({
...field,
show: true,
@@ -75,7 +79,7 @@ export function useViewColumns(view: Ref | undefined, meta: ComputedRe
reloadData?.()
}
const hideAll = async (ignoreIds?: any) => {
- if (isPublic.value || isSharedBase.value) {
+ if (isLocalMode.value) {
fields.value = fields.value?.map((field: Field) => ({
...field,
show: false,
@@ -144,7 +148,7 @@ export function useViewColumns(view: Ref | undefined, meta: ComputedRe
},
set(v: boolean) {
if (view?.value?.id) {
- if (!isPublic.value && !isSharedBase.value) {
+ if (!isLocalMode.value) {
$api.dbView
.update(view.value.id, {
show_system_fields: v,