/* CreateAccount.java */ import java.awt.*; import java.awt.event.*; import java.applet.*; import com.stalker.CGPro.*; import java.util.*; import java.awt.Color; public class CreateAccount extends Applet { // BEGIN GENERATED CODE // member declarations java.awt.Label lbHost = new java.awt.Label(); java.awt.TextField tfHost = new java.awt.TextField(); java.awt.Label lbAdminPassword = new java.awt.Label(); java.awt.TextField tfAdminPassword = new java.awt.TextField(); java.awt.Label lbName = new java.awt.Label(); java.awt.TextField tfAccount = new java.awt.TextField(); java.awt.Label lbAccount2 = new java.awt.Label(); java.awt.Label lbRealName = new java.awt.Label(); java.awt.TextField tfRealName = new java.awt.TextField(); java.awt.Label lbRealName2 = new java.awt.Label(); java.awt.Label lbPassword = new java.awt.Label(); java.awt.TextField tfPassword = new java.awt.TextField(); java.awt.Label lbAcType = new java.awt.Label(); java.awt.Choice chAccType = new java.awt.Choice(); java.awt.Label lbServices = new java.awt.Label(); java.awt.Checkbox cbMail = new java.awt.Checkbox(); java.awt.Checkbox cbPOP = new java.awt.Checkbox(); java.awt.Checkbox cbIMAP = new java.awt.Checkbox(); java.awt.Checkbox cbPWD = new java.awt.Checkbox(); java.awt.Checkbox cbACAP = new java.awt.Checkbox(); java.awt.Checkbox cbWebMail = new java.awt.Checkbox(); java.awt.Checkbox cbWebSite = new java.awt.Checkbox(); java.awt.Checkbox cbRelay = new java.awt.Checkbox(); java.awt.Checkbox cbMobile = new java.awt.Checkbox(); java.awt.Label lbAddTrailer = new java.awt.Label(); java.awt.Choice chAddMailTrailer = new java.awt.Choice(); java.awt.Label lbAddWebBanner = new java.awt.Label(); java.awt.Choice chAddWebBanner = new java.awt.Choice(); java.awt.Label lbSignature = new java.awt.Label(); java.awt.TextArea taSignature = new java.awt.TextArea(); java.awt.Button btCreate = new java.awt.Button(); java.awt.Label lbError = new java.awt.Label(); // END GENERATED CODE boolean isStandalone = false; public CreateAccount() { } // Retrieve the value of an applet parameter public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } // Get info on the applet parameters public String[][] getParameterInfo() { return null; } // Get applet information public String getAppletInfo() { return "Applet Information"; } // Initialize the applet public void init() { try { initComponents(); } catch (Exception e) { e.printStackTrace(); } } public void initComponents() throws Exception { // BEGIN GENERATED CODE // the following code sets the frame's initial state lbHost.setText("CGPro Host:"); lbHost.setLocation(new java.awt.Point(10, 10)); lbHost.setVisible(true); lbHost.setSize(new java.awt.Dimension(60, 20)); tfHost.setLocation(new java.awt.Point(80, 10)); tfHost.setVisible(true); tfHost.setSize(new java.awt.Dimension(340, 20)); lbAdminPassword.setText("Admin Password:"); lbAdminPassword.setLocation(new java.awt.Point(10, 30)); lbAdminPassword.setVisible(true); lbAdminPassword.setSize(new java.awt.Dimension(90, 20)); tfAdminPassword.setLocation(new java.awt.Point(100, 30)); tfAdminPassword.setVisible(true); tfAdminPassword.setSize(new java.awt.Dimension(180, 20)); lbName.setText("Account Name:"); lbName.setLocation(new java.awt.Point(10, 90)); lbName.setVisible(true); lbName.setSize(new java.awt.Dimension(70, 20)); tfAccount.setLocation(new java.awt.Point(90, 90)); tfAccount.setVisible(true); tfAccount.setSize(new java.awt.Dimension(210, 20)); lbAccount2.setText("e.g. john@company.com"); lbAccount2.setLocation(new java.awt.Point(310, 90)); lbAccount2.setVisible(true); lbAccount2.setSize(new java.awt.Dimension(120, 20)); lbRealName.setText("Real Name:"); lbRealName.setLocation(new java.awt.Point(10, 120)); lbRealName.setVisible(true); lbRealName.setSize(new java.awt.Dimension(60, 20)); tfRealName.setLocation(new java.awt.Point(80, 120)); tfRealName.setVisible(true); tfRealName.setSize(new java.awt.Dimension(220, 20)); lbRealName2.setText("e.g. John X. Smith"); lbRealName2.setLocation(new java.awt.Point(310, 120)); lbRealName2.setVisible(true); lbRealName2.setSize(new java.awt.Dimension(130, 20)); lbPassword.setText("Password:"); lbPassword.setLocation(new java.awt.Point(10, 150)); lbPassword.setVisible(true); lbPassword.setSize(new java.awt.Dimension(60, 20)); tfPassword.setLocation(new java.awt.Point(70, 150)); tfPassword.setVisible(true); tfPassword.setSize(new java.awt.Dimension(160, 20)); lbAcType.setText("Account Type:"); lbAcType.setLocation(new java.awt.Point(240, 150)); lbAcType.setVisible(true); lbAcType.setSize(new java.awt.Dimension(70, 20)); chAccType.setLocation(new java.awt.Point(310, 150)); chAccType.setVisible(true); chAccType.setSize(new java.awt.Dimension(110, 20)); lbServices.setText("Enabled Services:"); lbServices.setLocation(new java.awt.Point(10, 180)); lbServices.setVisible(true); lbServices.setSize(new java.awt.Dimension(90, 20)); cbMail.setLocation(new java.awt.Point(110, 180)); cbMail.setState(true); cbMail.setLabel("Mail"); cbMail.setVisible(true); cbMail.setSize(new java.awt.Dimension(40, 20)); cbPOP.setLocation(new java.awt.Point(160, 180)); cbPOP.setState(true); cbPOP.setLabel("POP"); cbPOP.setVisible(true); cbPOP.setSize(new java.awt.Dimension(40, 20)); cbIMAP.setLocation(new java.awt.Point(210, 180)); cbIMAP.setState(true); cbIMAP.setLabel("IMAP"); cbIMAP.setVisible(true); cbIMAP.setSize(new java.awt.Dimension(50, 20)); cbPWD.setLocation(new java.awt.Point(270, 180)); cbPWD.setState(true); cbPWD.setLabel("PWD"); cbPWD.setVisible(true); cbPWD.setSize(new java.awt.Dimension(50, 20)); cbACAP.setLocation(new java.awt.Point(330, 180)); cbACAP.setState(true); cbACAP.setLabel("ACAP"); cbACAP.setVisible(true); cbACAP.setSize(new java.awt.Dimension(50, 20)); cbWebMail.setLocation(new java.awt.Point(110, 210)); cbWebMail.setState(true); cbWebMail.setLabel("WebMail"); cbWebMail.setVisible(true); cbWebMail.setSize(new java.awt.Dimension(60, 20)); cbWebSite.setLocation(new java.awt.Point(180, 210)); cbWebSite.setState(true); cbWebSite.setLabel("WebSite"); cbWebSite.setVisible(true); cbWebSite.setSize(new java.awt.Dimension(60, 20)); cbRelay.setLocation(new java.awt.Point(250, 210)); cbRelay.setState(true); cbRelay.setLabel("Relay"); cbRelay.setVisible(true); cbRelay.setSize(new java.awt.Dimension(50, 20)); cbMobile.setLocation(new java.awt.Point(310, 210)); cbMobile.setState(true); cbMobile.setLabel("Mobile"); cbMobile.setVisible(true); cbMobile.setSize(new java.awt.Dimension(60, 20)); lbAddTrailer.setText("Add Mail Trailer:"); lbAddTrailer.setLocation(new java.awt.Point(10, 240)); lbAddTrailer.setVisible(true); lbAddTrailer.setSize(new java.awt.Dimension(90, 20)); chAddMailTrailer.setLocation(new java.awt.Point(100, 240)); chAddMailTrailer.setVisible(true); chAddMailTrailer.setSize(new java.awt.Dimension(100, 20)); lbAddWebBanner.setText("Add Web Banner:"); lbAddWebBanner.setLocation(new java.awt.Point(221, 242)); lbAddWebBanner.setVisible(true); lbAddWebBanner.setSize(new java.awt.Dimension(89, 20)); chAddWebBanner.setLocation(new java.awt.Point(310, 240)); chAddWebBanner.setVisible(true); chAddWebBanner.setSize(new java.awt.Dimension(100, 20)); lbSignature.setText("Signature:"); lbSignature.setLocation(new java.awt.Point(10, 270)); lbSignature.setVisible(true); lbSignature.setSize(new java.awt.Dimension(60, 20)); taSignature.setLocation(new java.awt.Point(80, 270)); taSignature.setVisible(true); taSignature.setSize(new java.awt.Dimension(340, 90)); btCreate.setLocation(new java.awt.Point(320, 370)); btCreate.setLabel("Create Account"); btCreate.setVisible(true); btCreate.setSize(new java.awt.Dimension(100, 30)); lbError.setForeground(new java.awt.Color(255, 0, 0)); lbError.setLocation(new java.awt.Point(10, 55)); lbError.setVisible(true); lbError.setSize(new java.awt.Dimension(420, 20)); setLocation(new java.awt.Point(0, 0)); setLayout(null); setSize(new java.awt.Dimension(433, 411)); add(lbHost); add(tfHost); add(lbAdminPassword); add(tfAdminPassword); add(lbName); add(tfAccount); add(lbAccount2); add(lbRealName); add(tfRealName); add(lbRealName2); add(lbPassword); add(tfPassword); add(lbAcType); add(chAccType); add(lbServices); add(cbMail); add(cbPOP); add(cbIMAP); add(cbPWD); add(cbACAP); add(cbWebMail); add(cbWebSite); add(cbRelay); add(cbMobile); add(lbAddTrailer); add(chAddMailTrailer); add(lbAddWebBanner); add(chAddWebBanner); add(lbSignature); add(taSignature); add(btCreate); add(lbError); btCreate.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { btCreateActionPerformed(e); } }); // END GENERATED CODE tfAdminPassword.setEchoChar('*'); chAccType.add("default"); chAccType.add("MultiMailbox"); chAccType.add("TextMailbox"); chAccType.add("MailDirMailbox"); chAddMailTrailer.add("default"); chAddMailTrailer.add("Yes"); chAddMailTrailer.add("No"); chAddWebBanner.add("default"); chAddWebBanner.add("Yes"); chAddWebBanner.add("No"); taSignature.append("Sincerely Yours,\n*\n\nmailto:#\nhttp://www.company.com"); } void showError(String message) { lbError.setForeground(Color.red); lbError.setText("Error. "+message); System.out.println("Error. "+message); } void tryCreatingAccount(CGProCLI cli) { try { Hashtable settings=new Hashtable(); String account=tfAccount.getText(); if(account.length()==0) {showError("No account name specified");return;} String boxType=null; if(chAccType.getSelectedIndex()>0) boxType=chAccType.getSelectedItem(); String realName=tfRealName.getText(); if(realName.length()>0) settings.put("RealName",CGProCLI.encodeString(realName)); String password=tfPassword.getText(); if(password.length()>0) settings.put("Password",CGProCLI.encodeString(password)); if(chAddMailTrailer.getSelectedIndex()>0) settings.put("AddMailTrailer",chAddMailTrailer.getSelectedItem()); if(chAddWebBanner.getSelectedIndex()>0) settings.put("AddWebBanner",chAddWebBanner.getSelectedItem()); Vector services = new Vector(); if(cbMail.getState()) services.addElement("Mail"); if(cbPOP.getState()) services.addElement("POP"); if(cbIMAP.getState()) services.addElement("IMAP"); if(cbPWD.getState()) services.addElement("PWD"); if(cbACAP.getState()) services.addElement("ACAP"); if(cbWebMail.getState()) services.addElement("WebMail"); if(cbWebSite.getState()) services.addElement("WebSite"); if(cbRelay.getState()) services.addElement("Relay"); if(services.size()>0) settings.put("AccessModes",services); cli.createAccount(account,settings,boxType,false); StringBuffer signature=new StringBuffer(taSignature.getText()); if(signature.length()>0) { int namePos=signature.toString().indexOf('*'); if(namePos>0) { signature.setCharAt(namePos,' '); signature.insert(namePos,realName); } int emailPos=signature.toString().indexOf('#'); if(emailPos>0) { String email=account; if(email.indexOf('@')<0) email=email+"@company.com"; signature.setCharAt(emailPos,' '); signature.insert(emailPos,email); } Hashtable webSettings=cli.getWebUser(account); webSettings.put("Signature",CGProCLI.encodeString(signature.toString())); cli.setWebUser(account,webSettings); } lbError.setForeground(Color.green); lbError.setText("Account "+account+" created."); } catch(CGProException e) { showError(e.getMessage()); } } public void btCreateActionPerformed(java.awt.event.ActionEvent evt) { try { String host=tfHost.getText(); String password=tfAdminPassword.getText(); CGProCLI cli = new CGProCLI(host,106,"postmaster",password); tryCreatingAccount(cli); cli.logout(); } catch(CGProException e) { showError(e.getMessage()); } catch(Exception e) { showError(e.getMessage()); e.printStackTrace(); } } }