@Override
 @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
 public List<Map<String, Object>> getLoginReports() {
   LOG.debug("inside getLoginReports");
   User loggedInUser = getLogin();
   List<Map<String, Object>> reportList = new ArrayList<Map<String, Object>>();
   for (Map<String, Object> report : reportConfig.getReports()) {
     if (authorizer.isAuthorized(
         loggedInUser, Constants.VIEW_REPORT_PREFIX + (String) report.get(Constants.NAME))) {
       reportList.add(report);
     }
   }
   return reportList;
 }
 /* (non-Javadoc)
  * @see net.webpasswordsafe.client.remote.LoginService#getLoginAuthorizations(java.util.Set)
  */
 @Override
 @Transactional(propagation = Propagation.REQUIRED, readOnly = true)
 public Map<Function, Boolean> getLoginAuthorizations(Set<Function> functions) {
   LOG.debug("inside getLoginAuthorizations");
   User loggedInUser = getLogin();
   // if passed null, load everything
   if (null == functions) {
     LOG.debug("functions was passed null");
     functions = new HashSet<Function>(Arrays.asList(Function.values()));
   }
   LOG.debug("functions=" + functions.toString());
   Map<Function, Boolean> authzMap = new HashMap<Function, Boolean>(functions.size());
   for (Function function : functions) {
     authzMap.put(function, authorizer.isAuthorized(loggedInUser, function.name()));
   }
   LOG.debug("authzMap=" + authzMap.toString());
   return authzMap;
 }