From e5e952aec60abc70342e0fb1bce7b563b4d18e20 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Mon, 25 Apr 2022 14:50:09 +0530 Subject: [PATCH 1/2] fix: verify model, view and project exist while migrating ui acl re #1847 Signed-off-by: Pranav C --- .../jobs/ncProjectUpgraderV2_0090000.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts b/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts index 11b87feb59..21df164474 100644 --- a/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts +++ b/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts @@ -1070,17 +1070,26 @@ async function migrateUIAcl(ctx: MigrateCtxV1, ncMeta: any) { }> = await ncMeta.metaList(null, null, 'nc_disabled_models_for_role'); for (const acl of uiAclList) { + // if missing model name skip the view acl migration + if (!acl.title) continue; + let fk_view_id; if (acl.type === 'vtable') { + // if missing parent model name skip the view acl migration + if (!acl.parent_model_title) continue; fk_view_id = - ctx.objViewRef[acl.project_id][acl.parent_model_title][acl.title].id; + ctx.objViewRef[acl.project_id]?.[acl.parent_model_title]?.[acl.title] + ?.id; } else { fk_view_id = - ctx.objViewRef[acl.project_id][acl.title][ - ctx.objModelRef[acl.project_id][acl.title].title - ].id || ctx.objViewRef[acl.project_id][acl.title][acl.title].id; + ctx.objViewRef?.[acl.project_id]?.[acl.title]?.[ + ctx.objModelRef?.[acl.project_id]?.[acl.title]?.title + ].id || ctx.objViewRef[acl.project_id]?.[acl.title]?.[acl.title]?.id; } + // if view id missing skip ui acl view migration + if (!fk_view_id) continue; + await ModelRoleVisibility.insert( { role: acl.role, From 8358666c9eaa2b10eaa12cb8184835fb9bc7b850 Mon Sep 17 00:00:00 2001 From: Pranav C Date: Mon, 25 Apr 2022 15:56:09 +0530 Subject: [PATCH 2/2] fix: extract using alias reference if table_name reference is not found Signed-off-by: Pranav C --- .../jobs/ncProjectUpgraderV2_0090000.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts b/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts index 21df164474..c0ef59e8ed 100644 --- a/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts +++ b/packages/nocodb/src/lib/noco/upgrader/jobs/ncProjectUpgraderV2_0090000.ts @@ -1078,8 +1078,12 @@ async function migrateUIAcl(ctx: MigrateCtxV1, ncMeta: any) { // if missing parent model name skip the view acl migration if (!acl.parent_model_title) continue; fk_view_id = - ctx.objViewRef[acl.project_id]?.[acl.parent_model_title]?.[acl.title] - ?.id; + ctx.objViewRef[acl.project_id]?.[ + ( + ctx.objModelRef?.[acl.project_id]?.[acl.parent_model_title] || + ctx.objModelAliasRef?.[acl.project_id]?.[acl.parent_model_title] + )?.table_name + ]?.[acl.title]?.id; } else { fk_view_id = ctx.objViewRef?.[acl.project_id]?.[acl.title]?.[ @@ -1121,9 +1125,14 @@ async function migrateSharedViews(ctx: MigrateCtxV1, ncMeta: any) { if (sharedView.view_type !== 'table' && sharedView.view_type !== 'view') { fk_view_id = - ctx.objViewRef[sharedView.project_id]?.[sharedView.model_name]?.[ - sharedView.view_name - ]?.id; + ctx.objViewRef[sharedView.project_id]?.[ + ( + ctx.objModelRef?.[sharedView.project_id]?.[sharedView.model_name] || + ctx.objModelAliasRef?.[sharedView.project_id]?.[ + sharedView.model_name + ] + )?.title + ]?.[sharedView.view_name]?.id; } else { fk_view_id = ctx.objViewRef[sharedView.project_id]?.[sharedView.model_name]?.[