我在faces配置中有一个导航规则,它在导航案例中有一个条件,用于尝试阻止不属于正确组的用户访问页面。
不能在条件中使用参数化方法吗?
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>doc_ordering_manage</from-outcome>
<if>#{user_Info.userInGroup('APP_DEV_ADMIN','APP_QA_ADMIN','APP_DIST_EDITOR')}</if>
<to-view-id>/content/pages/docOrderingManagement.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
对于from视图id,我尝试了以下操作,但结果相同。
<from-view-id>/*.xhtml</from-view-id>
<from-view-id>*.xhtml</from-view-id>
<from-view-id>*</from-view-id>
public boolean userInGroup(String... groupNames){
boolean retValue = false;
for(String s : groupNames){
for(String s2 : this.userGroups){
if(s.equals(s2)){
retValue = true;
}
}
}
Tools.debugMessages("userInGroup returning: " + retValue);
return retValue;
}
当没有必要组的测试人员尝试通过在浏览器中键入URL来访问页面时,他们可以访问该页面,并且在导航情况下调用该方法时,该方法内部的调试消息显示返回值为false。