mirror of
https://github.com/kubevela/kubevela.git
synced 2026-03-05 03:01:21 +00:00
Feat: add RBAC support (#3493)
* Feat: add the rbac data model Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add some api about the project Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add CRUD about the project and the project user Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add CRUD about the role and perm check filter function Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: update swagger config Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add default roles and perm policies Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add perm check filter for all webservice Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: change the method that find project name Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: query applications and envs by user perm Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: support get login user info Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: change default permissions Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: change PermPolicy to Permission Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Feat: add some unit test and fix the e2e test error Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: change some comment word Signed-off-by: barnettZQG <barnett.zqg@gmail.com> * Fix: e2e api path error Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
This commit is contained in:
@@ -63,3 +63,25 @@ func EqualSlice(a, b []string) bool {
|
||||
sort.Strings(b)
|
||||
return reflect.DeepEqual(a, b)
|
||||
}
|
||||
|
||||
// SliceIncludeSlice the a slice include the b slice
|
||||
func SliceIncludeSlice(a, b []string) bool {
|
||||
if EqualSlice(a, b) {
|
||||
return true
|
||||
}
|
||||
for _, item := range b {
|
||||
if !StringsContain(a, item) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
// MapKey2Array convery map keys to array
|
||||
func MapKey2Array(source map[string]string) []string {
|
||||
var list []string
|
||||
for k := range source {
|
||||
list = append(list, k)
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
@@ -77,3 +77,25 @@ func TestEqual(t *testing.T) {
|
||||
caseB = []string{"b", "a", "c"}
|
||||
assert.Equal(t, EqualSlice(caseA, caseB), false)
|
||||
}
|
||||
|
||||
func TestSliceIncludeSlice(t *testing.T) {
|
||||
caseA := []string{"b", "a", "c"}
|
||||
caseB := []string{}
|
||||
assert.Equal(t, SliceIncludeSlice(caseA, caseB), true)
|
||||
|
||||
caseA = []string{"b", "a", "c"}
|
||||
caseB = []string{"b"}
|
||||
assert.Equal(t, SliceIncludeSlice(caseA, caseB), true)
|
||||
|
||||
caseA = []string{"b", "a", "c"}
|
||||
caseB = []string{"b", "c"}
|
||||
assert.Equal(t, SliceIncludeSlice(caseA, caseB), true)
|
||||
|
||||
caseA = []string{"b", "a", "c"}
|
||||
caseB = []string{"b", "c", "d"}
|
||||
assert.Equal(t, SliceIncludeSlice(caseA, caseB), false)
|
||||
|
||||
caseA = []string{"b", "a", "c"}
|
||||
caseB = []string{"b", "c", "a"}
|
||||
assert.Equal(t, SliceIncludeSlice(caseA, caseB), true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user