@RequestMapping("/membership")
  @Transactional(propagation = Propagation.REQUIRES_NEW)
  public String membership(
      @RequestParam(value = "p", required = false) String p,
      @RequestParam(value = "m", required = false) String m,
      @RequestParam(value = "d", required = false) String d,
      Model model)
      throws ParseException {
    if (p != null) {
      final Account account = accountManager.getAccount(Long.parseLong(p));
      model.addAttribute("account", account);
      if (account != null) {
        final MembershipCard membershipCard = membershipManager.getPlayerMembership(account);
        model.addAttribute("membershipCard", membershipCard);

        if (d != null) {
          final Membership nm = Membership.valueOf(m.toUpperCase());
          if (nm == null) {
            membershipManager.removePlayerMembership(account);
          } else {
            final Date parse = new SimpleDateFormat("dd.MM.yyyy").parse(d);
            membershipManager.updatePlayerMembership(account, nm, parse);
          }
        }
      }
    }
    return "/content/maintain/admin/membership";
  }
 @RequestMapping("/clean/membership")
 @Transactional(propagation = Propagation.REQUIRES_NEW)
 public String cleanMembershipAction() throws DictionaryException {
   membershipManager.cleanup(new Date());
   return "redirect:/maintain/admin/main?result=ok";
 }