From d7aca7d0fe9ca517a037d50e10d905e79a955192 Mon Sep 17 00:00:00 2001 From: Ieva Date: Mon, 7 Oct 2024 15:47:16 +0100 Subject: [PATCH] Role mapping: Add `group_mapping_uid` column to `user_role` table (#93810) * add group_mapping_uid column to user_role table * add group mapping UID to user role struct --- pkg/services/accesscontrol/models.go | 9 +++++---- .../migrations/accesscontrol/migrations.go | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/pkg/services/accesscontrol/models.go b/pkg/services/accesscontrol/models.go index d772acf8153..c28a01429e1 100644 --- a/pkg/services/accesscontrol/models.go +++ b/pkg/services/accesscontrol/models.go @@ -173,10 +173,11 @@ type TeamRole struct { } type UserRole struct { - ID int64 `json:"id" xorm:"pk autoincr 'id'"` - OrgID int64 `json:"orgId" xorm:"org_id"` - RoleID int64 `json:"roleId" xorm:"role_id"` - UserID int64 `json:"userId" xorm:"user_id"` + ID int64 `json:"id" xorm:"pk autoincr 'id'"` + OrgID int64 `json:"orgId" xorm:"org_id"` + RoleID int64 `json:"roleId" xorm:"role_id"` + UserID int64 `json:"userId" xorm:"user_id"` + GroupMappingUID string `json:"groupMappingUID" xorm:"group_mapping_uid"` Created time.Time } diff --git a/pkg/services/sqlstore/migrations/accesscontrol/migrations.go b/pkg/services/sqlstore/migrations/accesscontrol/migrations.go index da3c021dee0..31e9530c959 100644 --- a/pkg/services/sqlstore/migrations/accesscontrol/migrations.go +++ b/pkg/services/sqlstore/migrations/accesscontrol/migrations.go @@ -196,4 +196,18 @@ func AddMigration(mg *migrator.Migrator) { Type: migrator.UniqueIndex, Cols: []string{"role_id", "action", "scope"}, })) + + mg.AddMigration("add group mapping UID column to user_role table", migrator.NewAddColumnMigration(userRoleV1, &migrator.Column{ + Name: "group_mapping_uid", Type: migrator.DB_NVarchar, Length: 40, Default: "''", Nullable: true, + })) + + mg.AddMigration("add user_role org ID, user ID, role ID, group mapping UID index", migrator.NewAddIndexMigration(userRoleV1, &migrator.Index{ + Type: migrator.UniqueIndex, + Cols: []string{"org_id", "user_id", "role_id", "group_mapping_uid"}, + })) + + mg.AddMigration("remove user_role org ID, user ID, role ID index", migrator.NewDropIndexMigration(userRoleV1, &migrator.Index{ + Type: migrator.UniqueIndex, + Cols: []string{"org_id", "user_id", "role_id"}, + })) }