2014-09-20 44 views
1

如何根據用戶權限返回資產文件。 表示我想根據用戶訪問級別顯示頁面。基於播放框架中的當前上下文訪問資產文件2.3

使用這種方法,目前情況下不可用:

public play.api.mvc.Action<AnyContent> index() { 
    try { 
     if (securityService.getCurrentSession(Controller.ctx()) == null) { 
      return Assets.at("/public", "/main.html", false); 
     }else 
      return Assets.at("/public", "/index/index.html", false); 
    } catch (Exception e) { 
     return Assets.at("/public", "/index/index.html", false); 
    } 
} 

由於這個錯誤:

There is no HTTP Context available from here. 

和使用這種方法回報資產爲下載文件:

public Result index() { 
    try { 
     if (securityService.getCurrentSession(Controller.ctx()) == null) { 
      return Results.ok(Play.application().getFile("/public/index/index.html")); 
     }else 
      return Results.ok(Play.application().getFile("/public/main.html")); 
    } catch (Exception e) { 
     return Results.ok(Play.application().getFile("/public/index/index.html")); 
    } 
} 

如何根據用戶權限顯示索引頁?

回答

2

而不是ok(java.io.File)方法您可以使用ok(java.io.File, boolean)其中第二個參數指定結果是內嵌或附加。

這樣的:

public Result index() { 
    try { 
     if (securityService.getCurrentSession(Controller.ctx()) == null) { 
      return Results.ok(Play.application().getFile("/public/index/index.html"), true); 
     } else 
      return Results.ok(Play.application().getFile("/public/main.html"), true); 
    } catch (Exception e) { 
     return Results.ok(Play.application().getFile("/public/index/index.html"), true); 
    } 
}