1   package ch.ige.edossier.web.server;
2   
3   import java.sql.SQLException;
4   import java.util.Properties;
5   import org.apache.log4j.Logger;
6   import ch.ige.edossier.util.ServerProperties;
7   import ch.ige.edossier.web.server.dao.AccountDAO;
8   import ch.ige.edossier.web.vo.AccountVO;
9   import ch.ige.edossier.web.vo.MailSenderVO;
10  
11  /**
12   * B32.03 - eDossier-Interceptions - Diplomarbeit an der Software-Schule Schweiz<br>
13   * Die Klasse AccountAssembler ist die Steuerklasse für die Datenaufbereitung der Account's.
14   * <p>
15   * Copyright (c) 2004, Eidgenössisches Institut für Geistiges Eigentum
16   * @author    Anita Rueegsegger, Marc Bouquet
17   * @version   $Id: AccountAssembler.java,v 1.13 2004/11/12 06:54:41 bouquet Exp $
18   */
19  public class AccountAssembler
20  {
21    // Attribute für Log4j-Logging
22    private static final Logger LOG = Logger.getLogger( AccountAssembler.class );
23  
24    /**
25     * Standard-Konstruktor
26     */
27    public AccountAssembler()
28    {}
29  
30    /**
31     * Diese Methode überprüft die Benutzerdaten für das Login.
32     * @param accountVO AccountVO Value-Object mit den Benutzerdaten
33     * @return AccountVO Value-Object mit den Benutzerdaten aus der Datenbank
34     * @throws Exception Unerwarteter Fehler
35     */
36    public AccountVO checkPasswort( AccountVO accountVO ) throws Exception
37    {
38      AccountVO srvAccountVO = getAccountInfo( accountVO.getEmail() );
39  
40      if( srvAccountVO != null )
41      {
42        // Überprüfen des Login-Namen und Passwortes
43        if( srvAccountVO.getEmail().equals( accountVO.getEmail() ) )
44        {
45          if( srvAccountVO.getPwd().equals( accountVO.getPwd() ) )
46          {
47            srvAccountVO.setIsPwd( true );
48          }
49          return srvAccountVO;
50        }
51      }
52      return null;
53    }
54  
55    /**
56     * Diese Methode sendet dem Benutzer die Benutzerdaten, an eingetragene Email-Adresse in der Datenbank.
57     * @param loginName String Benutzername
58     * @param languageCd String Sprachcode
59     * @return MailSenderVO Value-Object für den Mailversand
60     * @throws Exception Unerwarteter Fehler
61     */
62    public MailSenderVO sendPassword( String loginName, String languageCd ) throws Exception
63    {
64      AccountVO srvAccountVO = getAccountInfo( loginName );
65  
66      if( srvAccountVO != null )
67      {
68        if( srvAccountVO != null )
69        {
70          return fillMailVO( srvAccountVO, languageCd );
71        }
72      }
73      return null;
74    }
75  
76    /**
77     * Diese Methode erzeugt ein Account-Value-Object mit dem übergebenen Benutzername und gibt dies an
78     * die aufrufende Methode zurück.
79     * @param loginName String Benutzername
80     * @return AccountVO Value-Object mit den Benutzerdaten aus der Datenbank
81     * @throws Exception Unerwarteter Fehler
82     */
83    private AccountVO getAccountInfo( String loginName ) throws Exception
84    {
85      try
86      {
87        AccountDAO accountDAO = new AccountDAO();
88        return accountDAO.select( loginName );
89      }
90      catch( SQLException sqlex )
91      {
92        LOG.error( "SQL-Fehler im AccountDAO.select(loginName): " + sqlex.getMessage() );
93        throw sqlex;
94      }
95    }
96  
97    /**
98     * Diese Methode erzeugt ein Value-Object für den Mailversand.
99     * @param accountVO AccountVO Value-Object mit den Benutzerdaten
100    * @param languageCd String Sprachcode
101    * @return MailSenderVO Value-Object für den Mailversand
102    * @throws Exception Unerwarteter Fehler
103    */
104   private MailSenderVO fillMailVO( AccountVO accountVO, String languageCd ) throws Exception
105   {
106     Properties properties = ServerProperties.loadWebProperties( languageCd );
107     MailSenderVO mailSenderVO = new MailSenderVO();
108     mailSenderVO.setAdressTo( accountVO.getEmail() );
109     mailSenderVO.setAdressFrom( "edossier-mailer@ipi.ch" );
110     mailSenderVO.setSubject( properties.getProperty( "mail.password.subject" ) );
111 
112     StringBuffer buf = new StringBuffer();
113     buf.append( properties.getProperty( "mail.body.auto" ) ); // Globale definierte Resource
114     buf.append( properties.getProperty( "mail.password.body.start" ) );
115     buf.append( accountVO.getEmail() );
116     buf.append( properties.getProperty( "mail.password.body.pwd" ) );
117     buf.append( accountVO.getPwd() );
118     buf.append( properties.getProperty( "mail.body.end" ) ); // Globale definierte Resource
119     mailSenderVO.setBody( buf.toString() );
120 
121     return mailSenderVO;
122   }
123 }
124