In apex_mermaid I was doing:
1p := &Plugin{
2 server: server,
3 canCallCodePlugin: server.CanCallFunc(PLUGIN_CODE, PLUGIN_CODE_FUNC, map[string]string{"code": "", "lang": ""}),
4 canCallMermaidPlugin: server.CanCallFunc(PLUGIN_MERMAID, PLUGIN_MERMAID_FUNC, map[string]string{"code": ""}),
5}
6server.ExportFunc("renderMd", func(args map[string]string) (map[string]string, error) {
7 if p.canCallMermaidPlugin {
8 ...
9 }
10}
But when loading module for conf, there is no right related to project. So server return false. And after that plugin never refresh authorization cache.
To fix quickly I do:
1p := &Plugin{
2 server: server,
3}
4server.ExportFunc("renderMd", func(args map[string]string) (map[string]string, error) {
5 p.canCallCodePlugin = server.CanCallFunc(PLUGIN_CODE, PLUGIN_CODE_FUNC, map[string]string{"code": "", "lang": ""})
6 p.canCallMermaidPlugin = server.CanCallFunc(PLUGIN_MERMAID, PLUGIN_MERMAID_FUNC, map[string]string{"code": ""})
7}
But need to find a proper fix, and a way to explain to future dev that.