MM-47250: Add new system console section (#21333)
* MM-47250: Add new system console section We add a new section in system console for products. ```release-note Added a new section in system console for products. For now, it only contains boards specific settings. ``` * fix unit tests ```release-note NONE ``` * change comment ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
10a627fac1
Коммит
5730d3da6e
@@ -991,6 +991,27 @@ func (a *App) getPlaybooksPermissionsAddManageRoles() (permissionsMap, error) {
|
|||||||
return transformations, nil
|
return transformations, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *App) getProductsBoardsPermissions() (permissionsMap, error) {
|
||||||
|
transformations := []permissionTransformation{}
|
||||||
|
|
||||||
|
permissionsProductsRead := []string{model.PermissionSysconsoleReadProductsBoards.Id}
|
||||||
|
permissionsProductsWrite := []string{model.PermissionSysconsoleWriteProductsBoards.Id}
|
||||||
|
|
||||||
|
// Give the new subsection READ permissions to any user with SYSTEM_MANAGER
|
||||||
|
transformations = append(transformations, permissionTransformation{
|
||||||
|
On: permissionOr(isRole(model.SystemManagerRoleId)),
|
||||||
|
Add: permissionsProductsRead,
|
||||||
|
})
|
||||||
|
|
||||||
|
// Give the new subsection WRITE permissions to any user with SYSTEM_ADMIN
|
||||||
|
transformations = append(transformations, permissionTransformation{
|
||||||
|
On: permissionOr(isRole(model.SystemAdminRoleId)),
|
||||||
|
Add: permissionsProductsWrite,
|
||||||
|
})
|
||||||
|
|
||||||
|
return transformations, nil
|
||||||
|
}
|
||||||
|
|
||||||
// DoPermissionsMigrations execute all the permissions migrations need by the current version.
|
// DoPermissionsMigrations execute all the permissions migrations need by the current version.
|
||||||
func (a *App) DoPermissionsMigrations() error {
|
func (a *App) DoPermissionsMigrations() error {
|
||||||
return a.Srv().doPermissionsMigrations()
|
return a.Srv().doPermissionsMigrations()
|
||||||
@@ -1032,6 +1053,7 @@ func (s *Server) doPermissionsMigrations() error {
|
|||||||
{Key: model.MigrationKeyAddPlaybooksPermissions, Migration: a.getAddPlaybooksPermissions},
|
{Key: model.MigrationKeyAddPlaybooksPermissions, Migration: a.getAddPlaybooksPermissions},
|
||||||
{Key: model.MigrationKeyAddCustomUserGroupsPermissions, Migration: a.getAddCustomUserGroupsPermissions},
|
{Key: model.MigrationKeyAddCustomUserGroupsPermissions, Migration: a.getAddCustomUserGroupsPermissions},
|
||||||
{Key: model.MigrationKeyAddPlayboosksManageRolesPermissions, Migration: a.getPlaybooksPermissionsAddManageRoles},
|
{Key: model.MigrationKeyAddPlayboosksManageRolesPermissions, Migration: a.getPlaybooksPermissionsAddManageRoles},
|
||||||
|
{Key: model.MigrationKeyAddProductsBoardsPermissions, Migration: a.getProductsBoardsPermissions},
|
||||||
}
|
}
|
||||||
|
|
||||||
roles, err := s.Store().Role().GetAll()
|
roles, err := s.Store().Role().GetAll()
|
||||||
|
|||||||
@@ -2747,6 +2747,16 @@ func (s *CloudSettings) SetDefaults() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ProductSettings struct {
|
||||||
|
EnablePublicSharedBoards *bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *ProductSettings) SetDefaults() {
|
||||||
|
if s.EnablePublicSharedBoards == nil {
|
||||||
|
s.EnablePublicSharedBoards = NewBool(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type PluginState struct {
|
type PluginState struct {
|
||||||
Enable bool
|
Enable bool
|
||||||
}
|
}
|
||||||
@@ -3136,6 +3146,7 @@ type Config struct {
|
|||||||
DataRetentionSettings DataRetentionSettings
|
DataRetentionSettings DataRetentionSettings
|
||||||
MessageExportSettings MessageExportSettings
|
MessageExportSettings MessageExportSettings
|
||||||
JobSettings JobSettings
|
JobSettings JobSettings
|
||||||
|
ProductSettings ProductSettings
|
||||||
PluginSettings PluginSettings
|
PluginSettings PluginSettings
|
||||||
DisplaySettings DisplaySettings
|
DisplaySettings DisplaySettings
|
||||||
GuestAccountsSettings GuestAccountsSettings
|
GuestAccountsSettings GuestAccountsSettings
|
||||||
@@ -3235,6 +3246,7 @@ func (o *Config) SetDefaults() {
|
|||||||
o.ThemeSettings.SetDefaults()
|
o.ThemeSettings.SetDefaults()
|
||||||
o.ClusterSettings.SetDefaults()
|
o.ClusterSettings.SetDefaults()
|
||||||
o.PluginSettings.SetDefaults(o.LogSettings)
|
o.PluginSettings.SetDefaults(o.LogSettings)
|
||||||
|
o.ProductSettings.SetDefaults()
|
||||||
o.AnalyticsSettings.SetDefaults()
|
o.AnalyticsSettings.SetDefaults()
|
||||||
o.ComplianceSettings.SetDefaults()
|
o.ComplianceSettings.SetDefaults()
|
||||||
o.LocalizationSettings.SetDefaults()
|
o.LocalizationSettings.SetDefaults()
|
||||||
|
|||||||
@@ -38,4 +38,5 @@ const (
|
|||||||
MigrationKeyAddPlaybooksPermissions = "playbooks_permissions"
|
MigrationKeyAddPlaybooksPermissions = "playbooks_permissions"
|
||||||
MigrationKeyAddCustomUserGroupsPermissions = "custom_groups_permissions"
|
MigrationKeyAddCustomUserGroupsPermissions = "custom_groups_permissions"
|
||||||
MigrationKeyAddPlayboosksManageRolesPermissions = "playbooks_manage_roles"
|
MigrationKeyAddPlayboosksManageRolesPermissions = "playbooks_manage_roles"
|
||||||
|
MigrationKeyAddProductsBoardsPermissions = "products_boards"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -354,6 +354,9 @@ var PermissionRunManageProperties *Permission
|
|||||||
var PermissionRunManageMembers *Permission
|
var PermissionRunManageMembers *Permission
|
||||||
var PermissionRunView *Permission
|
var PermissionRunView *Permission
|
||||||
|
|
||||||
|
var PermissionSysconsoleReadProductsBoards *Permission
|
||||||
|
var PermissionSysconsoleWriteProductsBoards *Permission
|
||||||
|
|
||||||
// General permission that encompasses all system admin functions
|
// General permission that encompasses all system admin functions
|
||||||
// in the future this could be broken up to allow access to some
|
// in the future this could be broken up to allow access to some
|
||||||
// admin functions but not others
|
// admin functions but not others
|
||||||
@@ -2070,6 +2073,19 @@ func initializePermissions() {
|
|||||||
PermissionScopeRun,
|
PermissionScopeRun,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PermissionSysconsoleReadProductsBoards = &Permission{
|
||||||
|
"sysconsole_read_products_boards",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
PermissionScopeSystem,
|
||||||
|
}
|
||||||
|
PermissionSysconsoleWriteProductsBoards = &Permission{
|
||||||
|
"sysconsole_write_products_boards",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
PermissionScopeSystem,
|
||||||
|
}
|
||||||
|
|
||||||
SysconsoleReadPermissions = []*Permission{
|
SysconsoleReadPermissions = []*Permission{
|
||||||
PermissionSysconsoleReadAboutEditionAndLicense,
|
PermissionSysconsoleReadAboutEditionAndLicense,
|
||||||
PermissionSysconsoleReadBilling,
|
PermissionSysconsoleReadBilling,
|
||||||
@@ -2125,6 +2141,7 @@ func initializePermissions() {
|
|||||||
PermissionSysconsoleReadExperimentalFeatures,
|
PermissionSysconsoleReadExperimentalFeatures,
|
||||||
PermissionSysconsoleReadExperimentalFeatureFlags,
|
PermissionSysconsoleReadExperimentalFeatureFlags,
|
||||||
PermissionSysconsoleReadExperimentalBleve,
|
PermissionSysconsoleReadExperimentalBleve,
|
||||||
|
PermissionSysconsoleReadProductsBoards,
|
||||||
}
|
}
|
||||||
|
|
||||||
SysconsoleWritePermissions = []*Permission{
|
SysconsoleWritePermissions = []*Permission{
|
||||||
@@ -2182,6 +2199,7 @@ func initializePermissions() {
|
|||||||
PermissionSysconsoleWriteExperimentalFeatures,
|
PermissionSysconsoleWriteExperimentalFeatures,
|
||||||
PermissionSysconsoleWriteExperimentalFeatureFlags,
|
PermissionSysconsoleWriteExperimentalFeatureFlags,
|
||||||
PermissionSysconsoleWriteExperimentalBleve,
|
PermissionSysconsoleWriteExperimentalBleve,
|
||||||
|
PermissionSysconsoleWriteProductsBoards,
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemScopedPermissionsMinusSysconsole := []*Permission{
|
SystemScopedPermissionsMinusSysconsole := []*Permission{
|
||||||
|
|||||||
@@ -261,6 +261,7 @@ func init() {
|
|||||||
PermissionSysconsoleReadExperimentalFeatures.Id,
|
PermissionSysconsoleReadExperimentalFeatures.Id,
|
||||||
PermissionSysconsoleReadExperimentalFeatureFlags.Id,
|
PermissionSysconsoleReadExperimentalFeatureFlags.Id,
|
||||||
PermissionSysconsoleReadExperimentalBleve.Id,
|
PermissionSysconsoleReadExperimentalBleve.Id,
|
||||||
|
PermissionSysconsoleReadProductsBoards.Id,
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemManagerDefaultPermissions = []string{
|
SystemManagerDefaultPermissions = []string{
|
||||||
@@ -339,6 +340,8 @@ func init() {
|
|||||||
PermissionSysconsoleWriteIntegrationsBotAccounts.Id,
|
PermissionSysconsoleWriteIntegrationsBotAccounts.Id,
|
||||||
PermissionSysconsoleWriteIntegrationsGif.Id,
|
PermissionSysconsoleWriteIntegrationsGif.Id,
|
||||||
PermissionSysconsoleWriteIntegrationsCors.Id,
|
PermissionSysconsoleWriteIntegrationsCors.Id,
|
||||||
|
PermissionSysconsoleReadProductsBoards.Id,
|
||||||
|
PermissionSysconsoleWriteProductsBoards.Id,
|
||||||
}
|
}
|
||||||
|
|
||||||
SystemCustomGroupAdminDefaultPermissions = []string{
|
SystemCustomGroupAdminDefaultPermissions = []string{
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ const (
|
|||||||
TrackConfigBleve = "config_bleve"
|
TrackConfigBleve = "config_bleve"
|
||||||
TrackConfigExport = "config_export"
|
TrackConfigExport = "config_export"
|
||||||
TrackFeatureFlags = "config_feature_flags"
|
TrackFeatureFlags = "config_feature_flags"
|
||||||
|
TrackConfigProducts = "products"
|
||||||
TrackPermissionsGeneral = "permissions_general"
|
TrackPermissionsGeneral = "permissions_general"
|
||||||
TrackPermissionsSystemScheme = "permissions_system_scheme"
|
TrackPermissionsSystemScheme = "permissions_system_scheme"
|
||||||
TrackPermissionsTeamSchemes = "permissions_team_schemes"
|
TrackPermissionsTeamSchemes = "permissions_team_schemes"
|
||||||
@@ -827,6 +828,10 @@ func (ts *TelemetryService) trackConfig() {
|
|||||||
"retention_days": *cfg.ExportSettings.RetentionDays,
|
"retention_days": *cfg.ExportSettings.RetentionDays,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ts.SendTelemetry(TrackConfigProducts, map[string]any{
|
||||||
|
"enable_public_shared_boards": *cfg.ProductSettings.EnablePublicSharedBoards,
|
||||||
|
})
|
||||||
|
|
||||||
// Convert feature flags to map[string]any for sending
|
// Convert feature flags to map[string]any for sending
|
||||||
flags := cfg.FeatureFlags.ToMap()
|
flags := cfg.FeatureFlags.ToMap()
|
||||||
interfaceFlags := make(map[string]any)
|
interfaceFlags := make(map[string]any)
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ func GetMockStoreForSetupFunctions() *mocks.Store {
|
|||||||
systemStore.On("GetByName", model.MigrationKeyAddCustomUserGroupsPermissions).Return(&model.System{Name: model.MigrationKeyAddCustomUserGroupsPermissions, Value: "true"}, nil)
|
systemStore.On("GetByName", model.MigrationKeyAddCustomUserGroupsPermissions).Return(&model.System{Name: model.MigrationKeyAddCustomUserGroupsPermissions, Value: "true"}, nil)
|
||||||
systemStore.On("GetByName", model.MigrationKeyAddPlayboosksManageRolesPermissions).Return(&model.System{Name: model.MigrationKeyAddPlayboosksManageRolesPermissions, Value: "true"}, nil)
|
systemStore.On("GetByName", model.MigrationKeyAddPlayboosksManageRolesPermissions).Return(&model.System{Name: model.MigrationKeyAddPlayboosksManageRolesPermissions, Value: "true"}, nil)
|
||||||
systemStore.On("GetByName", "CustomGroupAdminRoleCreationMigrationComplete").Return(&model.System{Name: model.MigrationKeyAddPlayboosksManageRolesPermissions, Value: "true"}, nil)
|
systemStore.On("GetByName", "CustomGroupAdminRoleCreationMigrationComplete").Return(&model.System{Name: model.MigrationKeyAddPlayboosksManageRolesPermissions, Value: "true"}, nil)
|
||||||
|
systemStore.On("GetByName", "products_boards").Return(&model.System{Name: "products_boards", Value: "true"}, nil)
|
||||||
systemStore.On("InsertIfExists", mock.AnythingOfType("*model.System")).Return(&model.System{}, nil).Once()
|
systemStore.On("InsertIfExists", mock.AnythingOfType("*model.System")).Return(&model.System{}, nil).Once()
|
||||||
systemStore.On("Save", mock.AnythingOfType("*model.System")).Return(nil)
|
systemStore.On("Save", mock.AnythingOfType("*model.System")).Return(nil)
|
||||||
|
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user