MCPcopy
hub / github.com/gotify/server / initializeConfigurerForSingleUserPlugin

Method initializeConfigurerForSingleUserPlugin

plugin/manager.go:366–397  ·  view source on GitHub ↗
(instance compat.PluginInstance, pluginConf *model.PluginConf)

Source from the content-addressed store, hash-verified

364}
365
366func (m *Manager) initializeConfigurerForSingleUserPlugin(instance compat.PluginInstance, pluginConf *model.PluginConf) {
367 if len(pluginConf.Config) == 0 {
368 // The Configurer is newly implemented
369 // Use the default config
370 pluginConf.Config, _ = yaml.Marshal(instance.DefaultConfig())
371 m.db.UpdatePluginConf(pluginConf)
372 }
373 c := instance.DefaultConfig()
374 if yaml.Unmarshal(pluginConf.Config, c) != nil || instance.ValidateAndSetConfig(c) != nil {
375 pluginConf.Enabled = false
376
377 log.Printf("Plugin %s for user %d failed to initialize because it rejected the current config. It might be outdated. A default config is used and the user would need to enable it again.", pluginConf.ModulePath, pluginConf.UserID)
378 newConf := bytes.NewBufferString("# Plugin initialization failed because it rejected the current config. It might be outdated.\r\n# A default plugin configuration is used:\r\n")
379
380 d, _ := yaml.Marshal(c)
381 newConf.Write(d)
382 newConf.WriteString("\r\n")
383
384 newConf.WriteString("# The original configuration: \r\n")
385 oldConf := bufio.NewScanner(bytes.NewReader(pluginConf.Config))
386 for oldConf.Scan() {
387 newConf.WriteString("# ")
388 newConf.WriteString(oldConf.Text())
389 newConf.WriteString("\r\n")
390 }
391
392 pluginConf.Config = newConf.Bytes()
393
394 m.db.UpdatePluginConf(pluginConf)
395 instance.ValidateAndSetConfig(instance.DefaultConfig())
396 }
397}
398
399func (m *Manager) createPluginConf(instance compat.PluginInstance, info compat.Info, userID uint) (*model.PluginConf, error) {
400 pluginConf := &model.PluginConf{

Callers 1

Calls 3

DefaultConfigMethod · 0.65
UpdatePluginConfMethod · 0.65
ValidateAndSetConfigMethod · 0.65

Tested by

no test coverage detected