添加额外的信息到用户帐户中的Trac

问题描述:

对于我的Trac的插件,我想在插件添加颜色(如字符串或RGB值)为每个用户使用来自其他地方。颜色应该可以通过管理页面配置。添加额外的信息到用户帐户中的Trac

是否有可能到另一列添加到表中AccountManagerPlugin面板的用户设置,如果是这样,我怎么将信息添加到数据库中,所以我可以从其他地方访问它?

另一种选择是做一个新的管理控制台我的插件,这是我目前在做什么,有一张桌子只用用户名和他们的颜色。但在这种情况下,虽然我已经有空的管理面板,但我不知道如何添加表格并将新项目添加到数据库。

解释我需要的颜色:
我的插件为门票添加了一个新的导出选项,并使用我自己的html和css结构格式化它们。这些票据包含所有者的姓名,并且该名称应该以其各自的颜色显示。这个代码已经存在了,现在我只需要从数据库中检索颜色,并且事先通过管理面板将它们保存到数据库中。

只能通过管理页面更改颜色。

有Trac系统中没有用户管理面板,但是AccountManagerPlugin具有用户管理面板。让我知道你是否使用AccountManagerPlugin,我会提供更多的信息。

保持Trac系统范围内的讨论,你可以实现用户通过实现IPreferencePanelProvider进行选择通过首选项面板的能力。您可以将该值保存在session_attribute表中并在其他任何地方使用。对于名为user_color的属性,可以使用req.session.get('user_color')检索该值。

实例可以在trac.prefs.web_ui找到。我已经链接到Trac 1.1.6中的代码,因为模块已经过重构,所以首选项更加模块化#9162

+0

是的,AccountManagerPlugin的用户管理面板就是我的意思。我会编辑更具体的问题,并试图详细描述我想要做的更多。 –

+0

颜色只能由管理员管理,所以我不能使用IPreferencePanelProvider。此外,颜色应该在多个会话中保持一致,并且所有用户都可以访问(即使未登录),所以我认为唯一的选择是使用数据库。颜色应该是永久属于用户的设置(可由管理员在极少数情况下更改,但通常设置一次,然后永久设置。) –

+0

我在“session_attribute”表中存储数据的说明仍适用。如果你想附加到AccountManagerPlugin的用户表,你需要实现[ITemplateStreamFilter](http://trac.edgewall.org/wiki/TracDev/PluginDevelopment/ExtensionPoints/trac.web.api.ITemplateStreamFilter)并修改使用Genshi流功能的模板。或者,您可以使用JavaScript修改表格。 – RjOllos