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
Этот коммит содержится в:
Jesús Espino
2019-04-30 20:36:21 +02:00
коммит произвёл GitHub
родитель 987360f325
Коммит 584ec68755
44 изменённых файлов: 1867 добавлений и 110 удалений

Просмотреть файл

@@ -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)