GWT-Platform Gatekeeper和嵌套演示者

时间:2011-09-29 17:06:43

标签: gwt gwt-platform

我想了解一些关于gwtp网守的事情:

  1. 如果canReveal()方法返回false,会发生什么?在我的测试中,我已被重定向到默认位置,我可以更改它吗?

  2. 有嵌套的演示者,例如:

    MenuPresenter - 仅对管理员可见。

    HomePresenter - 对于管理员和普通用户可见。

    当记录的用户是普通用户时,我只想“不显示”菜单主持人,这可能吗?

  3. 感谢

2 个答案:

答案 0 :(得分:3)

1 - “如果canReveal()方法返回false,会发生什么?在我的测试中,我已被重定向到defaultplace,我可以更改它吗?”

来自GWTP wiki

“演示者处理错误是您自定义PlaceManager的revealErrorPlace方法显示的错误。如果您没有覆盖该方法,那么它就是您的revealDefaultPlace方法显示的方法。”

这是revealErrorPlace的默认实现:

public void revealErrorPlace(String invalidHistoryToken) {
    revealDefaultPlace();
}

因此,您可以在自定义PlaceManager中覆盖它,并为其添加更多逻辑以重定向到您想要的任何位置。


2 - “当记录的用户是普通用户时,我只想”不显示“ 菜单主持人,这可能吗?“

您可以在演示者中隐藏视图,如下所示:

@Override
protected void onReset() {
    super.onReset();

    if (!user.getAdmin) {
        getView().asWidget().setVisible(false);
   }
}

(对于PopupPresenters,您必须覆盖onReveal()方法)

答案 1 :(得分:1)

嗯,我想我们应该更新文档。

您还可以覆盖revealUnauthorizedPlace,这将确保您有一个用于错误处理和安全性的disctinc进程。

默认情况下,revealUnauthorizedPlace调用revealErrorPlace。