diff --git a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala index 488eafe8d..71890a42f 100644 --- a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala +++ b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala @@ -760,6 +760,7 @@ class Boot extends MdcLoggable { val accountant = Views.views.vend.getOrCreateSystemView(SYSTEM_ACCOUNTANT_VIEW_ID).isDefined val standard = Views.views.vend.getOrCreateSystemView(SYSTEM_STANDARD_VIEW_ID).isDefined val stageOne = Views.views.vend.getOrCreateSystemView(SYSTEM_STAGE_ONE_VIEW_ID).isDefined + val enableCustomViews = Views.views.vend.getOrCreateSystemView(SYSTEM_ENABLE_CUSTOM_VIEWS_VIEW_ID).isDefined // Only create Firehose view if they are enabled at instance. val accountFirehose = if (ApiPropsWithAlias.allowAccountFirehose) Views.views.vend.getOrCreateSystemView(SYSTEM_FIREHOSE_VIEW_ID).isDefined @@ -773,6 +774,7 @@ class Boot extends MdcLoggable { |System view ${SYSTEM_FIREHOSE_VIEW_ID} exists/created at the instance: ${accountFirehose} |System view ${SYSTEM_STANDARD_VIEW_ID} exists/created at the instance: ${standard} |System view ${SYSTEM_STAGE_ONE_VIEW_ID} exists/created at the instance: ${stageOne} + |System view ${SYSTEM_ENABLE_CUSTOM_VIEWS_VIEW_ID} exists/created at the instance: ${enableCustomViews} |""".stripMargin logger.info(comment) diff --git a/obp-api/src/main/scala/code/api/constant/constant.scala b/obp-api/src/main/scala/code/api/constant/constant.scala index 45cbfec42..fbe91fcc8 100644 --- a/obp-api/src/main/scala/code/api/constant/constant.scala +++ b/obp-api/src/main/scala/code/api/constant/constant.scala @@ -29,6 +29,7 @@ object Constant extends MdcLoggable { final val SYSTEM_FIREHOSE_VIEW_ID = "firehose" final val SYSTEM_STANDARD_VIEW_ID = "standard" final val SYSTEM_STAGE_ONE_VIEW_ID = "StageOne" + final val SYSTEM_ENABLE_CUSTOM_VIEWS_VIEW_ID = "EnableCustomViews" final val SYSTEM_READ_ACCOUNTS_BASIC_VIEW_ID = "ReadAccountsBasic" final val SYSTEM_READ_ACCOUNTS_DETAIL_VIEW_ID = "ReadAccountsDetail" final val SYSTEM_READ_BALANCES_VIEW_ID = "ReadBalances" diff --git a/obp-api/src/main/scala/code/api/util/migration/MigrationOfViewDefinitionPermissions.scala b/obp-api/src/main/scala/code/api/util/migration/MigrationOfViewDefinitionPermissions.scala index 688de02c3..181e7f0a9 100644 --- a/obp-api/src/main/scala/code/api/util/migration/MigrationOfViewDefinitionPermissions.scala +++ b/obp-api/src/main/scala/code/api/util/migration/MigrationOfViewDefinitionPermissions.scala @@ -24,9 +24,9 @@ object MigrationOfViewDefinitionPermissions { .canSeeTransactionRequests_(true) .canSeeAvailableViewsForBankAccount_(true) .canUpdateBankAccountLabel_(true) - .canCreateCustomView_(true) - .canDeleteCustomView_(true) - .canUpdateCustomView_(true) + .canCreateCustomView_(false) + .canDeleteCustomView_(false) + .canUpdateCustomView_(false) .canSeeViewsWithPermissionsForOneUser_(true) .canSeeViewsWithPermissionsForAllUsers_(true) .canGrantAccessToCustomViews_(true) @@ -47,9 +47,9 @@ object MigrationOfViewDefinitionPermissions { .canSeeTransactionRequests_(true) .canSeeAvailableViewsForBankAccount_(true) .canUpdateBankAccountLabel_(true) - .canCreateCustomView_(true) - .canDeleteCustomView_(true) - .canUpdateCustomView_(true) + .canCreateCustomView_(false) + .canDeleteCustomView_(false) + .canUpdateCustomView_(false) .canSeeViewsWithPermissionsForOneUser_(true) .canSeeViewsWithPermissionsForAllUsers_(true) .canGrantAccessToCustomViews_(true) diff --git a/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala b/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala index 852740e07..ef66248f3 100644 --- a/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala +++ b/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala @@ -683,10 +683,10 @@ trait APIMethods121 { hide_metadata_if_alias_used = updateJsonV121.hide_metadata_if_alias_used, allowed_actions = updateJsonV121.allowed_actions ) - anyViewContainsCancanUpdateCustomViewPermission = Views.views.vend.permission(BankIdAccountId(account.bankId, account.accountId), u) + anyViewContainsCanUpdateCustomViewPermission = Views.views.vend.permission(BankIdAccountId(account.bankId, account.accountId), u) .map(_.views.map(_.canUpdateCustomView).find(_.==(true)).getOrElse(false)).getOrElse(false) _ <- booleanToBox( - anyViewContainsCancanUpdateCustomViewPermission, + anyViewContainsCanUpdateCustomViewPermission, s"${ErrorMessages.CreateCustomViewError} You need the `${ViewDefinition.canUpdateCustomView_.dbColumnName}` permission on any your views" ) updatedView <- Views.views.vend.updateCustomView(BankIdAccountId(bankId, accountId),viewId, updateViewJson) ?~ CreateCustomViewError diff --git a/obp-api/src/main/scala/code/views/MapperViews.scala b/obp-api/src/main/scala/code/views/MapperViews.scala index 352937921..3e5433b2b 100644 --- a/obp-api/src/main/scala/code/views/MapperViews.scala +++ b/obp-api/src/main/scala/code/views/MapperViews.scala @@ -794,6 +794,9 @@ object MapperViews extends Views with MdcLoggable { .canSeeViewsWithPermissionsForAllUsers_(false) .canRevokeAccessToCustomViews_(false) .canGrantAccessToCustomViews_(false) + .canCreateCustomView_(false) + .canDeleteCustomView_(false) + .canUpdateCustomView_(false) viewId match { case SYSTEM_OWNER_VIEW_ID | SYSTEM_STANDARD_VIEW_ID => @@ -802,9 +805,6 @@ object MapperViews extends Views with MdcLoggable { .canSeeTransactionRequests_(true) .canSeeTransactionRequestTypes_(true) .canUpdateBankAccountLabel_(true) - .canCreateCustomView_(true) - .canDeleteCustomView_(true) - .canUpdateCustomView_(true) .canSeeViewsWithPermissionsForOneUser_(true) .canSeeViewsWithPermissionsForAllUsers_(true) .canRevokeAccessToCustomViews_(true) @@ -815,6 +815,11 @@ object MapperViews extends Views with MdcLoggable { entity .canSeeTransactionDescription_(false) .canAddTransactionRequestToAnyAccount_(false) + case SYSTEM_ENABLE_CUSTOM_VIEWS_VIEW_ID => + entity + .canCreateCustomView_(true) + .canDeleteCustomView_(true) + .canUpdateCustomView_(true) case SYSTEM_FIREHOSE_VIEW_ID => entity .isFirehose_(true) diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/model/ViewModel.scala b/obp-commons/src/main/scala/com/openbankproject/commons/model/ViewModel.scala index 6f760e071..ad50663c5 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/model/ViewModel.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/model/ViewModel.scala @@ -428,6 +428,7 @@ trait View { def canCreateStandingOrder: Boolean + //If any view set these to true, you can create/delete/update the custom view def canCreateCustomView: Boolean def canDeleteCustomView: Boolean def canUpdateCustomView: Boolean