diff --git a/src/de/superx/common/Maske.java b/src/de/superx/common/Maske.java index dab2c2c..5712756 100644 --- a/src/de/superx/common/Maske.java +++ b/src/de/superx/common/Maske.java @@ -7,6 +7,7 @@ import java.io.StringReader; import java.io.StringWriter; import java.math.BigDecimal; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.SQLException; import java.text.ParseException; import java.util.ArrayList; @@ -986,6 +987,10 @@ public class Maske extends NamedIdObject implements Serializable { sharedData.setErgebnisElementOrdNr(0); HashMap map = new HashMap(); map.putAll(user.getBasicMap()); + if (SxPools.get(mandantenID).getRepository().containsKey("K_Nutzungsstatistiken")&&SxPools.get(mandantenID).getRepository().get("K_Nutzungsstatistiken").toString().equals("2")) + { + insertIntoMaskenProtokoll(user,dbCon); + } if (!isReuseResult()) { String keyfieldsused = ServletHelper.getParameter(request, "keyfieldsused"); if (EqualsUtil.areEqual(keyfieldsused, "true")) { @@ -1067,8 +1072,25 @@ public class Maske extends NamedIdObject implements Serializable { return resultstr; } - // MB 17.8.2011 Defaultsicht setzen falls gewünscht + + private void insertIntoMaskenProtokoll(SxUser user, Connection dbCon) throws SQLException { + Connection con=dbCon; + boolean conUebergeben=true; + if (dbCon==null) + { + conUebergeben=false; + con=SxPools.get(mandantenID).getConnection(); + } + PreparedStatement pst=con.prepareStatement("insert into masken_protokoll (maskeninfo_id,user_id,zeitpunkt) values (?,?,now());"); + pst.setInt(1, Integer.parseInt(this.getId().toString())); + pst.setInt(2, Integer.parseInt(user.getId().toString())); + pst.executeUpdate(); + pst.close(); + if (!conUebergeben) {con.close();} + + } + // MB 17.8.2011 Defaultsicht setzen falls gewünscht public void setFieldsDefaultSichten(SxUser user, HttpServletRequest request) throws SQLException, DBServletException, KeyParentEqualException, CloneNotSupportedException, SichtException, TemplateException, IOException, NoMainEntryException { diff --git a/src/de/superx/servlet/SxPool.java b/src/de/superx/servlet/SxPool.java index 0460832..9bb7f49 100644 --- a/src/de/superx/servlet/SxPool.java +++ b/src/de/superx/servlet/SxPool.java @@ -806,6 +806,7 @@ public class SxPool extends GenericObjectPool implements NamedObjectI { initHasKontierungsrechte(); initJasper(); initSxMail(); + deleteMaskenProtokoll(); SuperXmlAnmeldung.waitForPoolInit = false; } catch (Exception e) { SuperXmlAnmeldung.waitForPoolInit = false; @@ -815,6 +816,19 @@ public class SxPool extends GenericObjectPool implements NamedObjectI { } } + private void deleteMaskenProtokoll() throws SQLException { + if (this.getRepository().containsKey("K_Nutzungsstatistiken loeschen nach Tagen")&&Integer.parseInt(getRepository().get("K_Nutzungsstatistiken loeschen nach Tagen").toString())>0) + { + Connection con=this.getConnection(); + PreparedStatement pst=con.prepareStatement("delete from masken_protokoll where CURRENT_DATE - Zeitpunkt::date>=?"); + pst.setInt(1, Integer.parseInt(getRepository().get("K_Nutzungsstatistiken loeschen nach Tagen").toString())); + pst.executeUpdate(); + pst.close(); + con.close(); + } + + } + /** * Default jaxen Bibliothek wegen höherer Performance, * falls nicht über Konstante ausgeschaltet diff --git a/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml b/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml index af763f4..61d8a90 100644 --- a/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml +++ b/superx/WEB-INF/conf/edustore/db/install/conf/kern.xml @@ -4057,9 +4057,9 @@ + notnull="true" description="Maske" /> + notnull="true" description="User" /> --als Default wird erstmal HisInOne genommen