我正在使用Grails 1.3.7,Grails的Spring Security Plugin和ExtJS 3.3.1。我将在我的应用程序中拥有大约20个角色,并使用静态URL规则来保护我的控制器层。我的客户端将是所有ExtJS,因为我刚开始使用ExtJS,我想与你们一起检查那些人,并找出将访问控制集成到ExtJS客户端的正确方法。基本上,如何组织代码来确定为给定用户显示哪个UI部分?而且,对某些用户来说,某些形式可能是只读的。
答案 0 :(得分:1)
在我们的应用程序中,我们有一个 JSON编码的用户对象,其中包含该用户的角色/权利。这些内容在加载时嵌入页面标题中,以便它们可以全局使用。
然后,有一个 hasEntitlement(userObj,Entitlement)函数,用于测试我们嵌入的userObj中的特定权利。因此,页面中的所有ExtJ操作都会在执行操作之前检查此操作,并且所有按钮的“已禁用”属性都设置为在init上执行此函数调用。
当然,在使用 Spring方法级别安全性处理来自UI的请求之前,我们还会检查所有服务器端,因此如果有人在前端破解了JS,那么他们并没有损害后端端。