System wide RBAC changes

This commit is contained in:
Denis Arh
2021-07-08 11:42:18 +02:00
parent a1de3374ad
commit 20e05280b3
223 changed files with 5500 additions and 3263 deletions
+1 -1
View File
@@ -5,7 +5,6 @@ import (
"context"
"encoding/json"
"fmt"
"github.com/PaesslerAG/gval"
"io"
"io/ioutil"
"net/http"
@@ -14,6 +13,7 @@ import (
"strings"
"time"
"github.com/PaesslerAG/gval"
"github.com/cortezaproject/corteza-server/pkg/errors"
"github.com/cortezaproject/corteza-server/pkg/handle"
"github.com/spf13/cast"
+14 -5
View File
@@ -2,8 +2,9 @@ package expr
import (
"fmt"
"github.com/PaesslerAG/gval"
"reflect"
"github.com/PaesslerAG/gval"
)
func ArrayFunctions() []gval.Language {
@@ -113,14 +114,22 @@ func count(arr interface{}, v ...interface{}) (count int, err error) {
return
}
// has finds any occurrence of the values in slice
func has(arr interface{}, v ...interface{}) (b bool, err error) {
if arr, err = toSlice(arr); err != nil {
// has finds any occurrence of the values in slice or key in a map
func has(arr interface{}, vv ...interface{}) (b bool, err error) {
arr = UntypedValue(arr)
if isMap(arr) {
for _, v := range vv {
if reflect.ValueOf(arr).MapIndex(reflect.ValueOf(v)).IsValid() {
return true, nil
}
}
return
}
var c int
if c, err = count(arr, v...); err != nil {
if c, err = count(arr, vv...); err != nil {
return
}
+10
View File
@@ -312,6 +312,16 @@ func Test_has(t *testing.T) {
val: []interface{}{0.1, 1.1},
expect: false,
},
{
arr: map[string]interface{}{"a": 1},
val: []interface{}{"a", "b"},
expect: true,
},
{
arr: map[string]interface{}{"a": 1},
val: []interface{}{"b"},
expect: false,
},
}
for p, tc := range tcc {
+4
View File
@@ -106,6 +106,10 @@ func isSlice(v interface{}) bool {
return reflect.TypeOf(v).Kind() == reflect.Slice || reflect.TypeOf(v).Kind() == reflect.Array
}
func isMap(v interface{}) bool {
return reflect.TypeOf(v).Kind() == reflect.Map
}
// toArray removes expr types (if wrapped) and checks if the variable is slice
// internal only
//
+2 -1
View File
@@ -3,6 +3,7 @@ package expr
import (
"context"
"fmt"
"github.com/PaesslerAG/gval"
)
@@ -85,7 +86,7 @@ func Parser(ll ...gval.Language) gval.Language {
func AllFunctions() []gval.Language {
ff := make([]gval.Language, 0, 100)
//ff = append(ff, GenericFunctions()...)
ff = append(ff, GenericFunctions()...)
ff = append(ff, StringFunctions()...)
ff = append(ff, JsonFunctions()...)
ff = append(ff, NumericFunctions()...)