From 4a8cc106862bee79fb1533338bde16669d40f5f5 Mon Sep 17 00:00:00 2001 From: Gabriel-403 <50576424+Gabriel-403@users.noreply.github.com> Date: Tue, 31 Aug 2021 17:33:20 +0800 Subject: [PATCH 1/2] feat: Extend multiple sections type of escapeAssertion (#180) * feat: Extend multiple sections type of escapeAssertion Signed-off-by: Gabriel-403 <1499015923@qq.com> * feat: add r2.value == p4.value and r1.value == p1.value type Signed-off-by: Gabriel-403 <1499015923@qq.com> --- src/util/util.ts | 5 ++++- test/util.test.ts | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/util/util.ts b/src/util/util.ts index 94f681e9..266c46b3 100644 --- a/src/util/util.ts +++ b/src/util/util.ts @@ -18,7 +18,10 @@ import { RoleManager } from '../rbac'; function escapeAssertion(s: string): string { - return s.replace(/([rp])\.|[0-9]\./g, (match) => { + if (s.startsWith('r') || s.startsWith('p')) { + s = s.replace('.', '_'); + } + return s.replace(/([| =)(&<>,+\-!*\/])([rp][0-9]*)\./g, (match) => { return match.replace('.', '_'); }); } diff --git a/test/util.test.ts b/test/util.test.ts index 36185693..129e2f9f 100644 --- a/test/util.test.ts +++ b/test/util.test.ts @@ -190,3 +190,21 @@ test('test keyGet2Func', () => { expect(util.keyGet2Func('/baz', '/foo', 'bar')).toEqual(''); expect(util.keyGet2Func('/foo/baz', '/foo', 'bar')).toEqual(''); }); + +test('test escapeAssertion', () => { + expect(util.escapeAssertion('r.attr.value == p.attr')).toEqual('r_attr.value == p_attr'); + expect(util.escapeAssertion('r.attp.value || p.attr')).toEqual('r_attp.value || p_attr'); + expect(util.escapeAssertion('r.attp.value && p.attr')).toEqual('r_attp.value && p_attr'); + expect(util.escapeAssertion('r.attp.value >p.attr')).toEqual('r_attp.value >p_attr'); + expect(util.escapeAssertion('r.attp.value Date: Tue, 31 Aug 2021 09:35:36 +0000 Subject: [PATCH 2/2] chore(release): 1.0.0-beta.4 [skip ci] # [1.0.0-beta.4](https://github.com/casbin/casbin.js/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2021-08-31) ### Features * Extend multiple sections type of escapeAssertion ([#180](https://github.com/casbin/casbin.js/issues/180)) ([4a8cc10](https://github.com/casbin/casbin.js/commit/4a8cc106862bee79fb1533338bde16669d40f5f5)) --- CHANGELOG.md | 7 +++++++ package.json | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88974b76..9299a975 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [1.0.0-beta.4](https://github.com/casbin/casbin.js/compare/v1.0.0-beta.3...v1.0.0-beta.4) (2021-08-31) + + +### Features + +* Extend multiple sections type of escapeAssertion ([#180](https://github.com/casbin/casbin.js/issues/180)) ([4a8cc10](https://github.com/casbin/casbin.js/commit/4a8cc106862bee79fb1533338bde16669d40f5f5)) + # [1.0.0-beta.3](https://github.com/casbin/casbin.js/compare/v1.0.0-beta.2...v1.0.0-beta.3) (2021-08-28) diff --git a/package.json b/package.json index be3db6d1..859ba44e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "casbin.js", - "version": "1.0.0-beta.3", + "version": "1.0.0-beta.4", "description": "An authorization library that supports access control models like ACL, RBAC, ABAC in Typescript", "main": "lib/cjs/index.js", "typings": "lib/cjs/index.d.ts",