diff --git a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala index ca41978cd7..00ffcecad7 100644 --- a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala +++ b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala @@ -30,7 +30,7 @@ import code.CustomerDependants.MappedCustomerDependant import code.DynamicData.DynamicData import code.DynamicEndpoint.DynamicEndpoint import code.UserRefreshes.MappedUserRefreshes -import code.abacrule.MappedAbacRule +import code.abacrule.AbacRule import code.accountapplication.MappedAccountApplication import code.accountattribute.MappedAccountAttribute import code.accountholders.MapperAccountHolders @@ -1041,7 +1041,7 @@ object ToSchemify { MappedRegulatedEntity, AtmAttribute, Admin, - MappedAbacRule, + AbacRule, MappedBank, MappedBankAccount, BankAccountRouting, diff --git a/obp-api/src/main/scala/code/abacrule/AbacRule.scala b/obp-api/src/main/scala/code/abacrule/AbacRuleTrait.scala similarity index 56% rename from obp-api/src/main/scala/code/abacrule/AbacRule.scala rename to obp-api/src/main/scala/code/abacrule/AbacRuleTrait.scala index 1f5a711b53..e4309f342c 100644 --- a/obp-api/src/main/scala/code/abacrule/AbacRule.scala +++ b/obp-api/src/main/scala/code/abacrule/AbacRuleTrait.scala @@ -8,7 +8,7 @@ import net.liftweb.util.Helpers.tryo import java.util.Date -trait AbacRule { +trait AbacRuleTrait { def abacRuleId: String def ruleName: String def ruleCode: String @@ -18,32 +18,20 @@ trait AbacRule { def updatedByUserId: String } -class MappedAbacRule extends AbacRule with LongKeyedMapper[MappedAbacRule] with IdPK with CreatedUpdated { - def getSingleton = MappedAbacRule +class AbacRule extends AbacRuleTrait with LongKeyedMapper[AbacRule] with IdPK with CreatedUpdated { + def getSingleton = AbacRule object AbacRuleId extends MappedString(this, 255) { override def defaultValue = APIUtil.generateUUID() - override def dbColumnName = "abac_rule_id" - } - object RuleName extends MappedString(this, 255) { - override def dbColumnName = "rule_name" - } - object RuleCode extends MappedText(this) { - override def dbColumnName = "rule_code" } + object RuleName extends MappedString(this, 255) + object RuleCode extends MappedText(this) object IsActive extends MappedBoolean(this) { override def defaultValue = true - override def dbColumnName = "is_active" - } - object Description extends MappedText(this) { - override def dbColumnName = "description" - } - object CreatedByUserId extends MappedString(this, 255) { - override def dbColumnName = "created_by_user_id" - } - object UpdatedByUserId extends MappedString(this, 255) { - override def dbColumnName = "updated_by_user_id" } + object Description extends MappedText(this) + object CreatedByUserId extends MappedString(this, 255) + object UpdatedByUserId extends MappedString(this, 255) override def abacRuleId: String = AbacRuleId.get override def ruleName: String = RuleName.get @@ -54,23 +42,22 @@ class MappedAbacRule extends AbacRule with LongKeyedMapper[MappedAbacRule] with override def updatedByUserId: String = UpdatedByUserId.get } -object MappedAbacRule extends MappedAbacRule with LongKeyedMetaMapper[MappedAbacRule] { - override def dbTableName = "abac_rule" - override def dbIndexes: List[BaseIndex[MappedAbacRule]] = Index(AbacRuleId) :: Index(RuleName) :: Index(CreatedByUserId) :: super.dbIndexes +object AbacRule extends AbacRule with LongKeyedMetaMapper[AbacRule] { + override def dbIndexes: List[BaseIndex[AbacRule]] = Index(AbacRuleId) :: Index(RuleName) :: Index(CreatedByUserId) :: super.dbIndexes } trait AbacRuleProvider { - def getAbacRuleById(ruleId: String): Box[AbacRule] - def getAbacRuleByName(ruleName: String): Box[AbacRule] - def getAllAbacRules(): List[AbacRule] - def getActiveAbacRules(): List[AbacRule] + def getAbacRuleById(ruleId: String): Box[AbacRuleTrait] + def getAbacRuleByName(ruleName: String): Box[AbacRuleTrait] + def getAllAbacRules(): List[AbacRuleTrait] + def getActiveAbacRules(): List[AbacRuleTrait] def createAbacRule( ruleName: String, ruleCode: String, description: String, isActive: Boolean, createdBy: String - ): Box[AbacRule] + ): Box[AbacRuleTrait] def updateAbacRule( ruleId: String, ruleName: String, @@ -78,26 +65,26 @@ trait AbacRuleProvider { description: String, isActive: Boolean, updatedBy: String - ): Box[AbacRule] + ): Box[AbacRuleTrait] def deleteAbacRule(ruleId: String): Box[Boolean] } object MappedAbacRuleProvider extends AbacRuleProvider { - override def getAbacRuleById(ruleId: String): Box[AbacRule] = { - MappedAbacRule.find(By(MappedAbacRule.AbacRuleId, ruleId)) + override def getAbacRuleById(ruleId: String): Box[AbacRuleTrait] = { + AbacRule.find(By(AbacRule.AbacRuleId, ruleId)) } - override def getAbacRuleByName(ruleName: String): Box[AbacRule] = { - MappedAbacRule.find(By(MappedAbacRule.RuleName, ruleName)) + override def getAbacRuleByName(ruleName: String): Box[AbacRuleTrait] = { + AbacRule.find(By(AbacRule.RuleName, ruleName)) } - override def getAllAbacRules(): List[AbacRule] = { - MappedAbacRule.findAll() + override def getAllAbacRules(): List[AbacRuleTrait] = { + AbacRule.findAll() } - override def getActiveAbacRules(): List[AbacRule] = { - MappedAbacRule.findAll(By(MappedAbacRule.IsActive, true)) + override def getActiveAbacRules(): List[AbacRuleTrait] = { + AbacRule.findAll(By(AbacRule.IsActive, true)) } override def createAbacRule( @@ -106,9 +93,9 @@ object MappedAbacRuleProvider extends AbacRuleProvider { description: String, isActive: Boolean, createdBy: String - ): Box[AbacRule] = { + ): Box[AbacRuleTrait] = { tryo { - MappedAbacRule.create + AbacRule.create .RuleName(ruleName) .RuleCode(ruleCode) .Description(description) @@ -126,9 +113,9 @@ object MappedAbacRuleProvider extends AbacRuleProvider { description: String, isActive: Boolean, updatedBy: String - ): Box[AbacRule] = { + ): Box[AbacRuleTrait] = { for { - rule <- MappedAbacRule.find(By(MappedAbacRule.AbacRuleId, ruleId)) + rule <- AbacRule.find(By(AbacRule.AbacRuleId, ruleId)) updatedRule <- tryo { rule .RuleName(ruleName) @@ -143,7 +130,7 @@ object MappedAbacRuleProvider extends AbacRuleProvider { override def deleteAbacRule(ruleId: String): Box[Boolean] = { for { - rule <- MappedAbacRule.find(By(MappedAbacRule.AbacRuleId, ruleId)) + rule <- AbacRule.find(By(AbacRule.AbacRuleId, ruleId)) deleted <- tryo(rule.delete_!) } yield deleted } diff --git a/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala b/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala index 5af0070c20..b30e5e8e88 100644 --- a/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala +++ b/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala @@ -779,7 +779,7 @@ case class UpdateViewJsonV600( ViewsJsonV600(views.map(createViewJsonV600)) } - def createAbacRuleJsonV600(rule: code.abacrule.AbacRule): AbacRuleJsonV600 = { + def createAbacRuleJsonV600(rule: code.abacrule.AbacRuleTrait): AbacRuleJsonV600 = { AbacRuleJsonV600( abac_rule_id = rule.abacRuleId, rule_name = rule.ruleName, @@ -791,7 +791,7 @@ case class UpdateViewJsonV600( ) } - def createAbacRulesJsonV600(rules: List[code.abacrule.AbacRule]): AbacRulesJsonV600 = { + def createAbacRulesJsonV600(rules: List[code.abacrule.AbacRuleTrait]): AbacRulesJsonV600 = { AbacRulesJsonV600(rules.map(createAbacRuleJsonV600)) } } diff --git a/obp-api/src/test/scala/code/api/v6_0_0/SystemViewsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/SystemViewsTest.scala index d803e352ff..fc0980560e 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/SystemViewsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/SystemViewsTest.scala @@ -144,9 +144,9 @@ class SystemViewsTest extends V600ServerSetup with DefaultUsers { val isSystem = (json \ "is_system").values.asInstanceOf[Boolean] isSystem should equal(true) - And("View should have permissions defined") - val canSeeBalance = (json \ "can_see_bank_account_balance").values.asInstanceOf[Boolean] - canSeeBalance should be(true) + And("View should have permissions defined in allowed_actions") + val allowedActions = (json \ "allowed_actions").values.asInstanceOf[List[String]] + allowedActions should contain("can_see_bank_account_balance") } scenario("We try to get different system views by ID - Authorized access", ApiEndpoint2, VersionOfApi) {