2017-02-12 7 views
0

я someexample от GWTPGWTP Gatekeeper

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

@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) хочет пройти? И стоит ли дать ему право, в зависимости от прав доступа

ответ

1

Sure, просто впрыснуть PlaceManager в вашу LoggedInGatekeeper и вызвать getCurrentPlaceRequest, а затем сравнить его ваши NameToken. Что-то в этих строках:

@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; 
    } 
}