Example #1
0
 public boolean isAuthorised(Subject subject, MasterSitemapNode masterNode) {
   checkNotNull(masterNode, "node");
   checkNotNull(subject, "subject");
   String virtualPage = sitemap.navigationState(masterNode).getVirtualPage();
   checkNotNull(virtualPage, "virtualPage");
   checkNotNull(
       masterNode.getPageAccessControl(),
       "node.getPageAccessControl(), " + masterNode.getUriSegment());
   log.debug("checking page access rights for {}", virtualPage);
   switch (masterNode.getPageAccessControl()) {
     case AUTHENTICATION:
       return subject.isAuthenticated();
     case GUEST:
       return (!subject.isAuthenticated()) && (!subject.isRemembered());
     case PERMISSION:
       return subject.isPermitted(new PagePermission(virtualPage));
     case PUBLIC:
       return true;
     case ROLES:
       return subject.hasAllRoles(masterNode.getRoles());
     case USER:
       return (subject.isAuthenticated()) || (subject.isRemembered());
   }
   return false;
 }