MM-15021: Adding new builtin system schema for Guests (#10601)
* MM-15021: Adding new builtin system schema for Guests * Fixing tests * Setting properly the permissions * Adding guests to sampledata * Restrict more roles updates in the app layer for guests * Adding comment to explain that permissions migration must go at the end * Setting the default guest role for custom scheme during migration * Fixing import and export * Creating scheme guest roles on migration * Fixing tests * Fixing tests * Fixing tests
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
987360f325
Коммит
584ec68755
@@ -28,6 +28,7 @@ func testNewTeamMemberFromModel(t *testing.T) {
|
||||
UserId: model.NewId(),
|
||||
Roles: "team_user team_admin custom_role",
|
||||
DeleteAt: 12345,
|
||||
SchemeGuest: false,
|
||||
SchemeUser: true,
|
||||
SchemeAdmin: true,
|
||||
ExplicitRoles: "custom_role",
|
||||
@@ -38,8 +39,10 @@ func testNewTeamMemberFromModel(t *testing.T) {
|
||||
assert.Equal(t, m.TeamId, db.TeamId)
|
||||
assert.Equal(t, m.UserId, db.UserId)
|
||||
assert.Equal(t, m.DeleteAt, db.DeleteAt)
|
||||
assert.Equal(t, true, db.SchemeGuest.Valid)
|
||||
assert.Equal(t, true, db.SchemeUser.Valid)
|
||||
assert.Equal(t, true, db.SchemeAdmin.Valid)
|
||||
assert.Equal(t, m.SchemeGuest, db.SchemeGuest.Bool)
|
||||
assert.Equal(t, m.SchemeUser, db.SchemeUser.Bool)
|
||||
assert.Equal(t, m.SchemeAdmin, db.SchemeAdmin.Bool)
|
||||
assert.Equal(t, m.ExplicitRoles, db.Roles)
|
||||
@@ -53,8 +56,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
UserId: model.NewId(),
|
||||
Roles: "custom_role",
|
||||
DeleteAt: 12345,
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: true},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -65,6 +70,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
assert.Equal(t, db.UserId, m.UserId)
|
||||
assert.Equal(t, "custom_role team_user team_admin", m.Roles)
|
||||
assert.Equal(t, db.DeleteAt, m.DeleteAt)
|
||||
assert.Equal(t, db.SchemeGuest.Bool, m.SchemeGuest)
|
||||
assert.Equal(t, db.SchemeUser.Bool, m.SchemeUser)
|
||||
assert.Equal(t, db.SchemeAdmin.Bool, m.SchemeAdmin)
|
||||
assert.Equal(t, db.Roles, m.ExplicitRoles)
|
||||
@@ -74,8 +80,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Unmigrated_NoScheme_User", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "team_user",
|
||||
SchemeGuest: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: false, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -83,6 +91,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_user", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
@@ -91,8 +100,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Unmigrated_NoScheme_Admin", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "team_user team_admin",
|
||||
SchemeGuest: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: false, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -100,6 +111,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_user team_admin", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, true, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
@@ -108,8 +120,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Unmigrated_NoScheme_CustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: false, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -117,6 +131,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -125,8 +140,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Unmigrated_NoScheme_UserAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "team_user custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: false, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -134,6 +151,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_user custom_role", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -142,8 +160,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Unmigrated_NoScheme_AdminAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "team_user team_admin custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: false, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -151,6 +171,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_user team_admin custom_role", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, true, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -159,8 +180,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Unmigrated_NoScheme_NoRoles", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: false, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: false, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -168,6 +191,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
@@ -177,8 +201,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_NoScheme_User", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -186,6 +212,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_user", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
@@ -194,8 +221,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_NoScheme_Admin", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: true},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -203,16 +232,39 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_user team_admin", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, true, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_NoScheme_Guest", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "team_guest", m.Roles)
|
||||
assert.Equal(t, true, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_NoScheme_CustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -220,6 +272,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -228,8 +281,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_NoScheme_UserAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -237,6 +292,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role team_user", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -245,8 +301,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_NoScheme_AdminAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: true},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -254,16 +312,39 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role team_user team_admin", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, true, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_NoScheme_GuestAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role team_guest", m.Roles)
|
||||
assert.Equal(t, true, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_NoScheme_NoRoles", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: false},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: false},
|
||||
}
|
||||
@@ -271,6 +352,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
@@ -280,8 +362,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_TeamScheme_User", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
@@ -289,6 +373,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "tscheme_user", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
@@ -297,8 +382,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_TeamScheme_Admin", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: true},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
@@ -306,16 +393,39 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "tscheme_user tscheme_admin", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, true, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_TeamScheme_Guest", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "tscheme_guest", m.Roles)
|
||||
assert.Equal(t, true, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_TeamScheme_CustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
@@ -323,6 +433,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -331,8 +442,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_TeamScheme_UserAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
@@ -340,6 +453,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role tscheme_user", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
@@ -348,8 +462,10 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
t.Run("Migrated_TeamScheme_AdminAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: true},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
@@ -357,16 +473,39 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role tscheme_user tscheme_admin", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, true, m.SchemeUser)
|
||||
assert.Equal(t, true, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_TeamScheme_GuestAndCustomRole", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "custom_role",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: true},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "custom_role tscheme_guest", m.Roles)
|
||||
assert.Equal(t, true, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "custom_role", m.ExplicitRoles)
|
||||
})
|
||||
|
||||
t.Run("Migrated_TeamScheme_NoRoles", func(t *testing.T) {
|
||||
db := teamMemberWithSchemeRoles{
|
||||
Roles: "",
|
||||
SchemeGuest: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeUser: sql.NullBool{Valid: true, Bool: false},
|
||||
SchemeAdmin: sql.NullBool{Valid: true, Bool: false},
|
||||
TeamSchemeDefaultGuestRole: sql.NullString{Valid: true, String: "tscheme_guest"},
|
||||
TeamSchemeDefaultUserRole: sql.NullString{Valid: true, String: "tscheme_user"},
|
||||
TeamSchemeDefaultAdminRole: sql.NullString{Valid: true, String: "tscheme_admin"},
|
||||
}
|
||||
@@ -374,6 +513,7 @@ func testTeamMemberWithSchemeRolesToModel(t *testing.T) {
|
||||
m := db.ToModel()
|
||||
|
||||
assert.Equal(t, "", m.Roles)
|
||||
assert.Equal(t, false, m.SchemeGuest)
|
||||
assert.Equal(t, false, m.SchemeUser)
|
||||
assert.Equal(t, false, m.SchemeAdmin)
|
||||
assert.Equal(t, "", m.ExplicitRoles)
|
||||
|
||||
Ссылка в новой задаче
Block a user