feat(queries): user grants (#2838)

* refactor(domain): add user type

* fix(projections): start with login names

* fix(login_policy): correct handling of user domain claimed event

* fix(projections): add members

* refactor: simplify member projections

* add migration for members

* add metadata to member projections

* refactor: login name projection

* fix: set correct suffixes on login name projections

* test(projections): login name reduces

* fix: correct cols in reduce member

* test(projections): org, iam, project members

* member additional cols and conds as opt,
add project grant members

* fix(migration): members

* fix(migration): correct database name

* migration version

* migs

* better naming for member cond and col

* split project and project grant members

* prepare member columns

* feat(queries): membership query

* test(queries): membership prepare

* fix(queries): multiple projections for latest sequence

* fix(api): use query for membership queries in auth and management

* feat: org member queries

* fix(api): use query for iam member calls

* fix(queries): org members

* fix(queries): project members

* fix(queries): project grant members

* fix(query): member queries and user avatar column

* member cols

* fix(queries): membership stmt

* fix user test

* fix user test

* fix(projections): add user grant projection

* fix(user_grant): handle state changes

* add state to migration

* fix(management): use query for user grant requests

* merge eventstore-naming into user-grant-projection

* feat(queries): user grants

* fix(migrations): version

* fix(api): user query for user grants

* fix(query): event mappers for usergrant aggregate

* fix(projection): correct aggregate for user grants

* fix(queries): user grant roles as list contains

* cleanup reducers

* fix avater_key to avatar_key

* tests

* cleanup

* cleanup

* add resourceowner query

* fix: user grant project name search query

Co-authored-by: Livio Amstutz <livio.a@gmail.com>
Co-authored-by: fabi <fabienne.gerschwiler@gmail.com>
This commit is contained in:
Silvan
2022-01-14 10:45:50 +01:00
committed by GitHub
parent a63a995269
commit c542cab4f8
29 changed files with 1546 additions and 816 deletions

View File

@@ -230,7 +230,6 @@ func TestTextQuery_comp(t *testing.T) {
}
type want struct {
query interface{}
args []interface{}
isNil bool
}
tests := []struct {
@@ -247,7 +246,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.Eq{"test_table.test_col": "Hurst"},
args: nil,
},
},
{
@@ -259,7 +257,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.ILike{"test_table.test_col": "Hurst"},
args: nil,
},
},
{
@@ -271,7 +268,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.Like{"test_table.test_col": "Hurst%"},
args: nil,
},
},
{
@@ -283,7 +279,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.ILike{"test_table.test_col": "Hurst%"},
args: nil,
},
},
{
@@ -295,7 +290,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.Like{"test_table.test_col": "%Hurst"},
args: nil,
},
},
{
@@ -307,7 +301,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.ILike{"test_table.test_col": "%Hurst"},
args: nil,
},
},
{
@@ -319,7 +312,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.Like{"test_table.test_col": "%Hurst%"},
args: nil,
},
},
{
@@ -331,7 +323,6 @@ func TestTextQuery_comp(t *testing.T) {
},
want: want{
query: sq.ILike{"test_table.test_col": "%Hurst%"},
args: nil,
},
},
{
@@ -342,8 +333,10 @@ func TestTextQuery_comp(t *testing.T) {
Compare: TextListContains,
},
want: want{
query: "test_table.test_col @> ? ",
args: []interface{}{pq.StringArray{"Hurst"}},
query: &listContains{
col: testCol,
args: []interface{}{pq.StringArray{"Hurst"}},
},
},
},
{
@@ -376,7 +369,7 @@ func TestTextQuery_comp(t *testing.T) {
Text: tt.fields.Text,
Compare: tt.fields.Compare,
}
query, args := s.comp()
query := s.comp()
if query == nil && tt.want.isNil {
return
} else if tt.want.isNil && query != nil {
@@ -386,10 +379,6 @@ func TestTextQuery_comp(t *testing.T) {
if !reflect.DeepEqual(query, tt.want.query) {
t.Errorf("wrong query: want: %v, (%T), got: %v, (%T)", tt.want.query, tt.want.query, query, query)
}
if !reflect.DeepEqual(args, tt.want.args) {
t.Errorf("wrong args: want: %v, (%T), got: %v (%T)", tt.want.args, tt.want.args, args, args)
}
})
}
}
@@ -589,7 +578,6 @@ func TestNumberQuery_comp(t *testing.T) {
}
type want struct {
query interface{}
args []interface{}
isNil bool
}
tests := []struct {
@@ -606,7 +594,6 @@ func TestNumberQuery_comp(t *testing.T) {
},
want: want{
query: sq.Eq{"test_table.test_col": 42},
args: nil,
},
},
{
@@ -618,7 +605,6 @@ func TestNumberQuery_comp(t *testing.T) {
},
want: want{
query: sq.NotEq{"test_table.test_col": 42},
args: nil,
},
},
{
@@ -630,7 +616,6 @@ func TestNumberQuery_comp(t *testing.T) {
},
want: want{
query: sq.Lt{"test_table.test_col": 42},
args: nil,
},
},
{
@@ -642,7 +627,6 @@ func TestNumberQuery_comp(t *testing.T) {
},
want: want{
query: sq.Gt{"test_table.test_col": 42},
args: nil,
},
},
{
@@ -653,8 +637,10 @@ func TestNumberQuery_comp(t *testing.T) {
Compare: NumberListContains,
},
want: want{
query: "test_table.test_col @> ? ",
args: []interface{}{pq.Array(42)},
query: &listContains{
col: testCol,
args: []interface{}{pq.GenericArray{42}},
},
},
},
{
@@ -687,7 +673,7 @@ func TestNumberQuery_comp(t *testing.T) {
Number: tt.fields.Number,
Compare: tt.fields.Compare,
}
query, args := s.comp()
query := s.comp()
if query == nil && tt.want.isNil {
return
} else if tt.want.isNil && query != nil {
@@ -697,10 +683,6 @@ func TestNumberQuery_comp(t *testing.T) {
if !reflect.DeepEqual(query, tt.want.query) {
t.Errorf("wrong query: want: %v, (%T), got: %v, (%T)", tt.want.query, tt.want.query, query, query)
}
if !reflect.DeepEqual(args, tt.want.args) {
t.Errorf("wrong args: want: %v, (%T), got: %v (%T)", tt.want.args, tt.want.args, args, args)
}
})
}
}