我目前正在开发一个GWT应用程序,我想根据用户权限动态呈现UI。 比如,在我的应用程序中,我有一个产品列表和编辑该列表的可能性(添加新产品,删除等)。
我还拥有只读权限的用户和具有写权限的用户。现在可以(或者可行)在我的UI类中做这样的事情:
if (user.hasWritePermissions) {
Button addButton = new Button()
}
那么没有写权限的用户看不到添加和删除按钮?当然,我的后端也有权限检查,但如果用户只看到他可以使用的内容,这很方便。
或者GWT还有其他更好的可能吗?
答案 0 :(得分:2)
<define-property name="role" values="readonly,readwrite" />
引入自己的延迟绑定属性。但这里的优势可能很小(用户会少下载几个代码块),而排列的数量呈指数级增长。当然,这完全是一种风格问题。这些方法都没有更好或更差的安全性,因为必须在服务器端执行实际的权限检查(正如您已经提到的,但我会再说一遍)。
答案 1 :(得分:1)
您还可以为所有“admin”-Button和UI元素提供CSS类。如果您将另一个CSS类设置为rootpanel(或另一个祖先),则所有管理元素都将消失。
Change property of CSS class in GWT at runtime
body.admin .onlyForAdmin{
display:block;
}
.onlyForAdmin{
display:none;
}
但它不能经常被告知:权限检查需要服务器端! (如你所说)