用户特定应用设置

时间:2013-10-10 00:08:15

标签: rally appsdk2

我已经开始使用服务器端应用程序设置,看起来共享应用程序的默认机制是在整个项目范围内保存应用程序设置;因此,如果个人对应用设置进行了更改,则所有未来用户都会反映这些更改。在我的具体情况下,这不是理想的用法。我希望如果我可以为每个用户设置不同的设置,而不是每个用户都添加我的自定义HTML的单独实例。这可能是使用服务器端设置,还是我需要考虑使用cookie来保存每个用户的设置?

注意:我已阅读有关应用设置范围(https://help.rallydev.com/apps/2.0rc1/doc/#!/guide/settings-section-define-scope)的文档,但似乎并不表示“user”是一个选项。

谢谢!

2 个答案:

答案 0 :(得分:3)

Conner,您正在为应用的用户级设置做出很好的论据。 不幸的是,我们目前不支持这一点。 AppSettings中的settingsScope选项仅支持值app,project或workspace。

为每个用户创建应用程序实例(例如在他们各自的仪表板上)是我能想到的最佳选择。但正如你所提到的,这对你来说并不理想。

答案 1 :(得分:2)

我通过在从Rally服务器保存或加载之前将用户ObjectID添加到每个设置值来解决了这个问题。以下是我的用户设置设置/获取功能的代码:

setUserSetting : function(settingName, settingValue, callback) {
    var settings = {};
    settings[App.getContext().getUser().ObjectID + settingName] = settingValue;
    App.updateSettingsValues({
        settings : settings,
        success  : function() {
            App.setSettings(Ext.Object.merge(App.getSettings(), settings));
            callback();
        }
    });
},

getUserSetting : function(settingName) {
    return App.getSetting(App.getContext().getUser().ObjectID + settingName);
}
顺便说一下,我必须以我的方式保存设置似乎有点奇怪。 “updateSettingsValues”函数设置应用程序 next 加载的设置,“setSettings”函数为应用程序的当前运行时设置它。这是一种奇怪的方式,但它确实有效。