mirror of
https://github.com/zitadel/zitadel.git
synced 2025-11-14 13:43:48 +00:00
feat: delete (#243)
* feat: project role remove * feat: search queries * feat: search queries * feat: cascade remove/change project role * fix: comment in project grant * fix: remove projecr grant * fix: only search usergrants of my org * fix: delete usergrants * fix: delete usergrants * fix: check if role exists on project grant * feat: bulk add project role * fix: tests * fix: update user grants on project update * fix: return roles * feat: add resourceowner name on project grants * fix: migration number * fix: tests * fix: generate protos * fix: some unnecessary code
This commit is contained in:
@@ -19,6 +19,7 @@ const (
|
||||
UserGrantKeyResourceOwner = "resource_owner"
|
||||
UserGrantKeyState = "state"
|
||||
UserGrantKeyOrgName = "org_name"
|
||||
UserGrantKeyRole = "role_keys"
|
||||
)
|
||||
|
||||
type UserGrantView struct {
|
||||
@@ -98,7 +99,7 @@ func (g *UserGrantView) AppendEvent(event *models.Event) (err error) {
|
||||
g.CreationDate = event.CreationDate
|
||||
g.setRootData(event)
|
||||
err = g.setData(event)
|
||||
case es_model.UserGrantChanged:
|
||||
case es_model.UserGrantChanged, es_model.UserGrantCascadeChanged:
|
||||
err = g.setData(event)
|
||||
case es_model.UserGrantDeactivated:
|
||||
g.State = int32(model.USERGRANTSTATE_INACTIVE)
|
||||
|
||||
@@ -63,6 +63,8 @@ func (key UserGrantSearchKey) ToColumnName() string {
|
||||
return UserGrantKeyID
|
||||
case grant_model.USERGRANTSEARCHKEY_ORG_NAME:
|
||||
return UserGrantKeyOrgName
|
||||
case grant_model.USERGRANTSEARCHKEY_ROLE_KEY:
|
||||
return UserGrantKeyRole
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -62,6 +62,34 @@ func UserGrantsByProjectID(db *gorm.DB, table, projectID string) ([]*model.UserG
|
||||
return users, nil
|
||||
}
|
||||
|
||||
func UserGrantsByProjectIDAndRole(db *gorm.DB, table, projectID, roleKey string) ([]*model.UserGrantView, error) {
|
||||
users := make([]*model.UserGrantView, 0)
|
||||
queries := []*grant_model.UserGrantSearchQuery{
|
||||
&grant_model.UserGrantSearchQuery{Key: grant_model.USERGRANTSEARCHKEY_PROJECT_ID, Value: projectID, Method: global_model.SEARCHMETHOD_EQUALS},
|
||||
&grant_model.UserGrantSearchQuery{Key: grant_model.USERGRANTSEARCHKEY_ROLE_KEY, Value: roleKey, Method: global_model.SEARCHMETHOD_LIST_CONTAINS},
|
||||
}
|
||||
query := view.PrepareSearchQuery(table, model.UserGrantSearchRequest{Queries: queries})
|
||||
_, err := query(db, &users)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return users, nil
|
||||
}
|
||||
|
||||
func UserGrantsByOrgIDAndProjectID(db *gorm.DB, table, orgID, projectID string) ([]*model.UserGrantView, error) {
|
||||
users := make([]*model.UserGrantView, 0)
|
||||
queries := []*grant_model.UserGrantSearchQuery{
|
||||
&grant_model.UserGrantSearchQuery{Key: grant_model.USERGRANTSEARCHKEY_RESOURCEOWNER, Value: orgID, Method: global_model.SEARCHMETHOD_EQUALS},
|
||||
&grant_model.UserGrantSearchQuery{Key: grant_model.USERGRANTSEARCHKEY_PROJECT_ID, Value: projectID, Method: global_model.SEARCHMETHOD_EQUALS},
|
||||
}
|
||||
query := view.PrepareSearchQuery(table, model.UserGrantSearchRequest{Queries: queries})
|
||||
_, err := query(db, &users)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return users, nil
|
||||
}
|
||||
|
||||
func UserGrantsByOrgID(db *gorm.DB, table, orgID string) ([]*model.UserGrantView, error) {
|
||||
users := make([]*model.UserGrantView, 0)
|
||||
queries := []*grant_model.UserGrantSearchQuery{
|
||||
|
||||
Reference in New Issue
Block a user