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
|
||||
}
|
||||
|
||||
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.
|
||||
func (a *App) DoPermissionsMigrations() error {
|
||||
return a.Srv().doPermissionsMigrations()
|
||||
@@ -1032,6 +1053,7 @@ func (s *Server) doPermissionsMigrations() error {
|
||||
{Key: model.MigrationKeyAddPlaybooksPermissions, Migration: a.getAddPlaybooksPermissions},
|
||||
{Key: model.MigrationKeyAddCustomUserGroupsPermissions, Migration: a.getAddCustomUserGroupsPermissions},
|
||||
{Key: model.MigrationKeyAddPlayboosksManageRolesPermissions, Migration: a.getPlaybooksPermissionsAddManageRoles},
|
||||
{Key: model.MigrationKeyAddProductsBoardsPermissions, Migration: a.getProductsBoardsPermissions},
|
||||
}
|
||||
|
||||
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 {
|
||||
Enable bool
|
||||
}
|
||||
@@ -3136,6 +3146,7 @@ type Config struct {
|
||||
DataRetentionSettings DataRetentionSettings
|
||||
MessageExportSettings MessageExportSettings
|
||||
JobSettings JobSettings
|
||||
ProductSettings ProductSettings
|
||||
PluginSettings PluginSettings
|
||||
DisplaySettings DisplaySettings
|
||||
GuestAccountsSettings GuestAccountsSettings
|
||||
@@ -3235,6 +3246,7 @@ func (o *Config) SetDefaults() {
|
||||
o.ThemeSettings.SetDefaults()
|
||||
o.ClusterSettings.SetDefaults()
|
||||
o.PluginSettings.SetDefaults(o.LogSettings)
|
||||
o.ProductSettings.SetDefaults()
|
||||
o.AnalyticsSettings.SetDefaults()
|
||||
o.ComplianceSettings.SetDefaults()
|
||||
o.LocalizationSettings.SetDefaults()
|
||||
|
||||
@@ -38,4 +38,5 @@ const (
|
||||
MigrationKeyAddPlaybooksPermissions = "playbooks_permissions"
|
||||
MigrationKeyAddCustomUserGroupsPermissions = "custom_groups_permissions"
|
||||
MigrationKeyAddPlayboosksManageRolesPermissions = "playbooks_manage_roles"
|
||||
MigrationKeyAddProductsBoardsPermissions = "products_boards"
|
||||
)
|
||||
|
||||
@@ -354,6 +354,9 @@ var PermissionRunManageProperties *Permission
|
||||
var PermissionRunManageMembers *Permission
|
||||
var PermissionRunView *Permission
|
||||
|
||||
var PermissionSysconsoleReadProductsBoards *Permission
|
||||
var PermissionSysconsoleWriteProductsBoards *Permission
|
||||
|
||||
// General permission that encompasses all system admin functions
|
||||
// in the future this could be broken up to allow access to some
|
||||
// admin functions but not others
|
||||
@@ -2070,6 +2073,19 @@ func initializePermissions() {
|
||||
PermissionScopeRun,
|
||||
}
|
||||
|
||||
PermissionSysconsoleReadProductsBoards = &Permission{
|
||||
"sysconsole_read_products_boards",
|
||||
"",
|
||||
"",
|
||||
PermissionScopeSystem,
|
||||
}
|
||||
PermissionSysconsoleWriteProductsBoards = &Permission{
|
||||
"sysconsole_write_products_boards",
|
||||
"",
|
||||
"",
|
||||
PermissionScopeSystem,
|
||||
}
|
||||
|
||||
SysconsoleReadPermissions = []*Permission{
|
||||
PermissionSysconsoleReadAboutEditionAndLicense,
|
||||
PermissionSysconsoleReadBilling,
|
||||
@@ -2125,6 +2141,7 @@ func initializePermissions() {
|
||||
PermissionSysconsoleReadExperimentalFeatures,
|
||||
PermissionSysconsoleReadExperimentalFeatureFlags,
|
||||
PermissionSysconsoleReadExperimentalBleve,
|
||||
PermissionSysconsoleReadProductsBoards,
|
||||
}
|
||||
|
||||
SysconsoleWritePermissions = []*Permission{
|
||||
@@ -2182,6 +2199,7 @@ func initializePermissions() {
|
||||
PermissionSysconsoleWriteExperimentalFeatures,
|
||||
PermissionSysconsoleWriteExperimentalFeatureFlags,
|
||||
PermissionSysconsoleWriteExperimentalBleve,
|
||||
PermissionSysconsoleWriteProductsBoards,
|
||||
}
|
||||
|
||||
SystemScopedPermissionsMinusSysconsole := []*Permission{
|
||||
|
||||
@@ -261,6 +261,7 @@ func init() {
|
||||
PermissionSysconsoleReadExperimentalFeatures.Id,
|
||||
PermissionSysconsoleReadExperimentalFeatureFlags.Id,
|
||||
PermissionSysconsoleReadExperimentalBleve.Id,
|
||||
PermissionSysconsoleReadProductsBoards.Id,
|
||||
}
|
||||
|
||||
SystemManagerDefaultPermissions = []string{
|
||||
@@ -339,6 +340,8 @@ func init() {
|
||||
PermissionSysconsoleWriteIntegrationsBotAccounts.Id,
|
||||
PermissionSysconsoleWriteIntegrationsGif.Id,
|
||||
PermissionSysconsoleWriteIntegrationsCors.Id,
|
||||
PermissionSysconsoleReadProductsBoards.Id,
|
||||
PermissionSysconsoleWriteProductsBoards.Id,
|
||||
}
|
||||
|
||||
SystemCustomGroupAdminDefaultPermissions = []string{
|
||||
|
||||
@@ -67,6 +67,7 @@ const (
|
||||
TrackConfigBleve = "config_bleve"
|
||||
TrackConfigExport = "config_export"
|
||||
TrackFeatureFlags = "config_feature_flags"
|
||||
TrackConfigProducts = "products"
|
||||
TrackPermissionsGeneral = "permissions_general"
|
||||
TrackPermissionsSystemScheme = "permissions_system_scheme"
|
||||
TrackPermissionsTeamSchemes = "permissions_team_schemes"
|
||||
@@ -827,6 +828,10 @@ func (ts *TelemetryService) trackConfig() {
|
||||
"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
|
||||
flags := cfg.FeatureFlags.ToMap()
|
||||
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.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", "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("Save", mock.AnythingOfType("*model.System")).Return(nil)
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user