首页
学习
活动
专区
圈层
工具
发布

GWTP网守
EN

Stack Overflow用户
提问于 2017-02-13 00:52:38
回答 1查看 261关注 0票数 0

我做了一些来自GWTP的例子

http://blog.arcbees.com/2015/10/27/gwtp-beginners-tutorial-toaster-launcher-part-2/#Gatekeeper

代码语言:javascript
复制
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
    private CurrentUser currentUser;

    @Inject
    public LoggedInGatekeeper(CurrentUser currentUser) {
        this.currentUser = currentUser;
    }

    @Override
    public boolean canReveal() {
        return currentUser.isLoggedIn();
    }
}

在这里,如果用户是登录用户,我们将提供访问权限。

有没有可能找出想要使用哪个页面(NameToken)?以及是否给予他权限,这取决于权限

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-13 06:05:58

当然,只需将一个PlaceManager注入到您的LoggedInGatekeeper中,调用getCurrentPlaceRequest,然后将其与您的NameToken进行比较。大致是这样的:

代码语言:javascript
复制
@DefaultGatekeeper
public class LoggedInGatekeeper implements Gatekeeper {
    private CurrentUser currentUser;
    private PlaceManager placeManager;

    @Inject
    public LoggedInGatekeeper(CurrentUser currentUser, PlaceManager placeManager) {
        this.currentUser = currentUser;
        this.placeManager = placeManager;
    }

    @Override
    public boolean canReveal() {
        PlaceRequest request = placeManager.getCurrentPlaceRequest();
        if (request.hasSameNameToken('someNameToken') {

           return currentUser.isLoggedIn();
        }
        return true;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42190424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档