我正在使用推荐的新应用程序结构在 Ext JS 4 上开发一个 Web 应用程序。因此,我需要实施一个身份验证和权限系统。到目前为止的想法:
- 服务器负责确保用户角色和权限。
- ExtJS 前端必须根据权限和角色进行更改
- 我使用卡片布局。第一个选项卡是登录屏幕,第二个选项卡是应用程序
- 在我的控制器中,我检查用户是否已登录。如果他有有效身份,我切换到选项卡 2。如果没有,他将返回选项卡 1。
我现在的问题是我不确定第 2 部分和第 4 部分?你将如何实现这两个?
我正在使用推荐的新应用程序结构在 Ext JS 4 上开发一个 Web 应用程序。因此,我需要实施一个身份验证和权限系统。到目前为止的想法:
我现在的问题是我不确定第 2 部分和第 4 部分?你将如何实现这两个?
Ext.StoreManager.get('ConfigOptionStore').loadData(/* config data returned from server */);使用该beforeRender事件将组件添加到当前视图(在控制器中执行此操作),如下所示:
init: function() {
this.control({
'myPanel': {
beforerender: function(cmp, eOpts){
//place the store in a var for easy access
var myConfigStore = Ext.StoreManager.get('ActiveUserStore').getAt(0);
//from here you can use add() to add stuff like so:
if (myConfigStore.get('hasMyButton')) {
cmp.add({
xtype: 'button',
text: 'My Button',
action: 'doSomething'
});
}
//etc...
}
});
}
确保在任何给定时间,使用当前配置选项更新商店的第一条记录(当您loadData加载时,只加载一条记录)。
这应该让您朝着正确的方向开始。只需确保仅使用最基本的组件创建初始视图,然后根据用户的配置添加自定义组件。
您可以根据用户 ID 从服务器发送唯一的用户“配置”文件,因此每个用户都有自己想要的配置设置,也可以在更改后使用 StateManager 保存用户配置。这样前端将根据权限和角色而变化。对于第 4 部分。我没有看到任何问题,如果您决定使用卡片布局...
setActiveTab( String/Number/Ext.Component card )
编辑:
您可以使用getState(); 从 Ext.AbstractComponent 中检索“状态”并保存,因此在下一次加载时初始化此状态。这不依赖于 Cookie 或本地存储,因此不会过期。您可以在用户完成自定义视图后让他有机会保存状态。