3

我的应用程序对不同的角色(如管理员或标准用户)有不同的视图。我不知道如何使用 extjs4 MVC 实现它。extjs4 文档的示例认为应用程序只有一个角色,如标准用户,因此他们创建了一个 app.js 文件来管理应用程序,但如果应用程序有很多角色,我不知道如何为不同的用户实现不同的视图。
一个问题是我在应用程序中有两个 app.js 文件,在我获得服务器中的用户角色后,我加载适当的 app.js 文件以使用适当的视图、控制器、模型、商店等。
这件事是真的吗?

4

1 回答 1

2

这是一个相当标准的问题,出现了很多次,答案总是一样的:

  • 访问控制属于服务器,任何用户都无法对其进行操作
  • 根本不向他无权访问的用户提供视图/模型/控制器

考虑到这一点,您拥有一个应用程序还是十个应用程序并不重要。

而且因为访问控制不属于前端,所以在 ExtJS 中没有实现。

更新 -> 隐藏 UI 元素

一种准备就绪的方法是使用Ext.direct. 这为应用程序提供了一个 API,该 API 可以根据当前用户的自定义访问权限进行修改,然后可以由前端进行检查。

如何:

根据用户会话创建 API 并检查客户端,如

if(Booking) {
   if (Booking.Create) {
       // has access
   }
}

或作为一条线

{
    xtype: 'button',
    hidden: !(Booking && Booking.Create)
}

这只是一个简单的例子,这很容易做到!

更新链接帮助操作

于 2013-02-18T10:37:11.330 回答