Thread: [Amavisadmin-svn] SF.net SVN: amavisadmin: [24] amavisadmin/trunk/src/java/de/sreindl/ amavisadmin
Status: Beta
Brought to you by:
streindl
From: <str...@us...> - 2007-01-18 17:53:27
|
Revision: 24 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=24&view=rev Author: streindl Date: 2007-01-18 09:53:20 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for bug #1638069 Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-17 21:21:14 UTC (rev 23) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/EditUser.java 2007-01-18 17:53:20 UTC (rev 24) @@ -27,7 +27,6 @@ import com.sun.rave.web.ui.component.Label; import com.sun.rave.web.ui.component.Link; import com.sun.rave.web.ui.component.Listbox; -import com.sun.rave.web.ui.component.MessageGroup; import com.sun.rave.web.ui.component.Page; import com.sun.rave.web.ui.component.PanelGroup; import com.sun.rave.web.ui.component.StaticText; @@ -532,14 +531,12 @@ */ public void prerender() { log("Prerender Called"); - ArrayList<Option> lst = null; + // #1638069 + ArrayList<Option> lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); if (user == null) { erase(); fldUserId.setText("unset"); - lst = new ArrayList<Option>(); - getSessionBean1().setParameter(EMAIL_LIST, lst); } else { - lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); fldUserId.setText(user.getId().toString()); fldUserName.setText(user.getUsername()); fldFullName.setText(user.getFullname()); @@ -669,7 +666,8 @@ // mark as new by setting the domain to NULL newOptions[options.length] = new Option(new MailAddress(mailAddress, null), mailAddress); lstEmailDefaultOptions.setOptions(newOptions); - ((ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST)).add(newOptions[options.length]); + ArrayList<Option> lst = (ArrayList<Option>)getSessionBean1().getParameter(EMAIL_LIST); + lst.add(newOptions[options.length]); return null; } @@ -677,10 +675,10 @@ private Map deleteMap; /** Session key for @see deleteMap */ - private static final String DELETE_MAIL_MAP = "editUser.DELETE_MAIL_MAP"; + public static final String DELETE_MAIL_MAP = "editUser.DELETE_MAIL_MAP"; /** Session key for email list */ - private static final String EMAIL_LIST = "editUser.EMAIL_LIST"; + public static final String EMAIL_LIST = "editUser.EMAIL_LIST"; /** * Remove email address from user's email addresses Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-17 21:21:14 UTC (rev 23) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/UserManagement.java 2007-01-18 17:53:20 UTC (rev 24) @@ -454,6 +454,8 @@ public String btnAdd_action() { getSessionBean1().setParameter(SessionBean1.PARAM_USER_ID, null); + // #1638069 + getSessionBean1().setParameter(EditUser.EMAIL_LIST, null); return "editSingleUser"; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-18 21:53:30
|
Revision: 32 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=32&view=rev Author: streindl Date: 2007-01-18 13:53:25 -0800 (Thu, 18 Jan 2007) Log Message: ----------- Fix for #1636519 Added Paths: ----------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java 2007-01-18 21:53:25 UTC (rev 32) @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2007 Stephen Reindl. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.sreindl.amavisadmin.jobs; + +import de.sreindl.amavisadmin.bo.ConfigurationBO; +import de.sreindl.amavisadmin.bo.UserBO; +import de.sreindl.amavisadmin.bo.configuration.ConfigurationDataEntry; +import de.sreindl.amavisadmin.db.MailQueueEntry; +import de.sreindl.amavisadmin.db.MailQueueEntryDAO; +import de.sreindl.amavisadmin.db.MailQueueReceipient; +import de.sreindl.amavisadmin.db.MailQueueReceipientDAO; +import de.sreindl.amavisadmin.db.MsgReceipientDAO; +import de.sreindl.amavisadmin.db.User; +import de.sreindl.amavisadmin.db.UserDAO; +import de.sreindl.amavisadmin.db.util.HibernateSessionFactory; +import java.io.StringWriter; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.hibernate.Query; +import org.hibernate.Session; +import org.quartz.JobExecutionContext; + +/** + * This job is responsible for informing administrators + * + * @author sreindl + */ +public class AdminNotifierJob extends BaseJob { + + private static Log log = LogFactory.getLog(AdminNotifierJob.class); + + /** Creates a new instance of ReminderJob */ + public AdminNotifierJob() { + } + + /** + * ececutor that the job itself has to execute. + */ + public void excuteJob(JobExecutionContext context) throws Exception { + log.info("Starting new admin notifier job"); + Session session = HibernateSessionFactory.getSession(); + User user; + Query qry = session.createQuery("select count(*) from MsgRecipient where rs = :wait_ind"); + qry.setCharacter("wait_ind", MsgReceipientDAO.RS_REL_PENDING); + + BigInteger count = (BigInteger)qry.uniqueResult(); + if (count != null && count.intValue() > 0) { + sendAdminNotifier(count.intValue()); + } + log.info("Finishing new mail notifier job"); + } + + /** + * Return true if a surrounding transaction layer has to be created. + */ + public boolean isTransactionalJob() { + return true; + } + + public ArrayList<ConfigurationDataEntry> getConfigurationDataTable() { + ArrayList<ConfigurationDataEntry> entries = + new ArrayList<ConfigurationDataEntry>(); + return entries; + } + + /** + * Send the mail to the admins + */ + private void sendAdminNotifier(int requestCount) throws Exception { + VelocityContext context = new VelocityContext(); + UserDAO dao = new UserDAO(); + List adminUsers = dao.findByAdmin(Boolean.TRUE); + + if (adminUsers.size() == 0) { + log.warn ("Warning: No admin users defined"); + return; + } + context.put("appTitle", ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); + context.put("signature", ConfigurationBO.getConfValue(ConfigurationBO.APP_TITLE)); + context.put("baselink", ConfigurationBO.getConfValue(ConfigurationBO.CONF_BASE_URL) + "/"); + context.put("requestCount", Integer.valueOf(requestCount)); + Template lostPwd = Velocity.getTemplate("/de/sreindl/amavisadmin/templates/AdminNotifier.vm"); + StringWriter w = new StringWriter(); + lostPwd.merge(context, w); + MailQueueEntry mqe = new MailQueueEntry(); + mqe.setEncoding("text/plain"); + mqe.setStatus(MailQueueEntryDAO.STATUS_NEW); + mqe.setFrom(ConfigurationBO.getConfValue(ConfigurationBO.MAIL_SENDER)); + mqe.setMailText(w.toString()); + mqe.setSubject((String)context.get("subject")); + Iterator i = adminUsers.iterator(); + mqe.setReceipients(new HashSet()); + HibernateSessionFactory.getSession().save(mqe); + while (i.hasNext()) { + User user = (User)i.next(); + MailQueueReceipient mqr = new MailQueueReceipient(); + mqr.setReceipient(UserBO.formatMailAddress(user)); + mqr.setType(MailQueueReceipientDAO.TYPE_TO); + mqe.getReceipients().add(mqr); + mqr.setMailQueueEntry(mqe); + HibernateSessionFactory.getSession().save(mqr); + } + } +} Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/jobs/AdminNotifierJob.java ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native Added: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm (rev 0) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm 2007-01-18 21:53:25 UTC (rev 32) @@ -0,0 +1,26 @@ +#* + * Copyright (C) 2007 Stephen Reindl. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *# +## Template used to inform administrators about pending release mails +#parse("/de/sreindl/amavisadmin/templates/HeaderTemplate.vm") +#set( $subject = "$appTitle: There mails waiting for your approval" ) +Hello Administrator(s), + +You have $requestCount mails that need to be approved/rejected for being +released. + +Please login at $baselink . + +#parse("/de/sreindl/amavisadmin/templates/FooterTemplate.vm") Property changes on: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/templates/AdminNotifier.vm ___________________________________________________________________ Name: svn:mime-type + text/plain Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <str...@us...> - 2007-01-24 17:49:48
|
Revision: 43 http://amavisadmin.svn.sourceforge.net/amavisadmin/?rev=43&view=rev Author: streindl Date: 2007-01-24 09:49:44 -0800 (Wed, 24 Jan 2007) Log Message: ----------- fix for #1643722 Modified Paths: -------------- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ShowSingleMail.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractQuarantine.java amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.hbm.xml amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.java Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ShowSingleMail.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ShowSingleMail.java 2007-01-22 22:59:12 UTC (rev 42) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/ShowSingleMail.java 2007-01-24 17:49:44 UTC (rev 43) @@ -446,11 +446,16 @@ if (message.getMsgs().getQuarantines() == null) { return "unset"; } - Iterator i = message.getMsgs().getQuarantines().iterator(); + Iterator iQ = message.getMsgs().getQuarantines().iterator(); StringBuilder msg = new StringBuilder(message.getMsgs().getSize().intValue()); - while (i.hasNext()) { - Quarantine q = (Quarantine)i.next(); - msg.append(q.getMailText()); + while (iQ.hasNext()) { + Quarantine q = (Quarantine)iQ.next(); + byte[] mailText = q.getMailText(); + char[] buffer = new char[mailText.length]; + for (int i= 0; i < mailText.length; i++) { + buffer[i] = (char)mailText[i]; + } + msg.append(buffer); } String buffer = msg.substring(0, Math.min(8192, msg.length())); buffer = buffer.replaceAll("&", "&"); Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractQuarantine.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractQuarantine.java 2007-01-22 22:59:12 UTC (rev 42) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/AbstractQuarantine.java 2007-01-24 17:49:44 UTC (rev 43) @@ -28,7 +28,7 @@ private QuarantineId id; private Message msgs; - private String mailText; + private byte[] mailText; private Integer version; @@ -40,7 +40,7 @@ /** full constructor */ - public AbstractQuarantine(QuarantineId id, Message msgs, String mailText) { + public AbstractQuarantine(QuarantineId id, Message msgs, byte[] mailText) { this.id = id; this.msgs = msgs; this.mailText = mailText; @@ -65,11 +65,11 @@ this.msgs = msgs; } - public String getMailText() { + public byte[] getMailText() { return this.mailText; } - public void setMailText(String mailText) { + public void setMailText(byte[] mailText) { this.mailText = mailText; } @@ -89,4 +89,4 @@ -} \ No newline at end of file +} Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.hbm.xml =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.hbm.xml 2007-01-22 22:59:12 UTC (rev 42) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.hbm.xml 2007-01-24 17:49:44 UTC (rev 43) @@ -32,7 +32,7 @@ <many-to-one name="msgs" class="de.sreindl.amavisadmin.db.Message" update="false" insert="false" fetch="select"> <column name="mail_id" length="12" not-null="true" /> </many-to-one> - <property name="mailText" type="java.lang.String"> + <property name="mailText" type="binary"> <column name="mail_text" not-null="true" /> </property> </class> Modified: amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.java =================================================================== --- amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.java 2007-01-22 22:59:12 UTC (rev 42) +++ amavisadmin/trunk/src/java/de/sreindl/amavisadmin/db/Quarantine.java 2007-01-24 17:49:44 UTC (rev 43) @@ -37,7 +37,7 @@ /** full constructor */ - public Quarantine(QuarantineId id, Message msgs, String mailText) { + public Quarantine(QuarantineId id, Message msgs, byte[] mailText) { super(id, msgs, mailText); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |