code: @Override
      protected void wasModified(AuthzTrans trans, CRUD modified, Data data, String ... override) {
      	boolean memo = override.length>0 && override[0]!=null;
      	boolean subject = override.length>1 && override[1]!=null;
  
          HistoryDAO.Data hd = HistoryDAO.newInitedData();
          hd.user = trans.user();
          hd.action = modified.name();
          hd.target = TABLE;
          hd.subject = subject?override[1]:data.user + "|" + data.approver;
          hd.memo = memo
                  ? String.format("%s by %s", override[0], hd.user)
                  : (modified.name() + "d approval for " + data.user);
          // Detail?
          // Reconstruct?
          if(historyDAO.create(trans, hd).status!=Status.OK) {
          	trans.error().log("Cannot log to History");
          }
      }
docs: Log Modification statements to History
  
  @param modified        which CRUD action was done
  @param data            entity data that needs a log entry
  @param overrideMessage if this is specified, we use it rather than crafting a history message based on data