19 package org.turro.contacts.zul.register;
21 import java.io.UnsupportedEncodingException;
22 import java.util.List;
24 import java.util.logging.Level;
25 import java.util.logging.Logger;
26 import org.amic.util.string.Strings;
27 import org.turro.action.Actions;
28 import org.turro.action.MailSenders;
29 import org.turro.action.PushSenders;
30 import org.turro.command.Command;
31 import org.turro.command.Context;
32 import org.turro.contacts.Connector;
33 import org.turro.contacts.Contact;
34 import org.turro.contacts.SignUp;
35 import org.turro.contacts.db.ContactsPU;
36 import org.turro.contacts.form.ContactWrapper;
37 import org.turro.elephant.context.Application;
38 import org.turro.elephant.context.ElephantContext;
39 import org.turro.elephant.context.HeadlessApplication;
40 import org.turro.elephant.context.IConstructor;
41 import org.turro.elephant.impl.context.ContextFactory;
42 import org.turro.elephant.security.IUser;
43 import org.turro.elephant.util.ZkossUtils;
44 import org.turro.i18n.I_;
45 import org.turro.jpa.Dao;
46 import org.turro.mail.impl.MailPool;
47 import org.turro.mail.queue.QueueManager;
48 import org.turro.marker.ElephantMarker;
49 import org.turro.security.SocialGroups;
50 import org.zkoss.zk.ui.Component;
51 import org.zkoss.zk.ui.event.Event;
52 import org.zkoss.zk.ui.select.SelectorComposer;
53 import org.zkoss.zk.ui.select.annotation.Listen;
54 import org.zkoss.zk.ui.select.annotation.Wire;
55 import org.zkoss.zk.ui.util.Clients;
56 import org.zkoss.zul.Textbox;
69 private Textbox email;
73 @Listen(
"onClick = #register")
83 I_.
get(
"Resend confirmation e-mail"),
new Command() {
85 public Object execute(Context context) {
87 Clients.showNotification(
I_.
format(
"Confirmation e-mail has been sent to %s", sue.
getEmail()));
91 }
else if(existEmail(su.
getEmail())) {
99 sendWelcomeMailToUser(su);
100 Clients.showNotification(
I_.
get(
"Created"));
102 }
catch (Exception ex) {
107 Clients.showNotification(
"No valid values");
111 private static boolean existEmail(String email) {
113 List l = dao.getResultList(
114 "select c from Connector c where c.value = ?",
115 new Object[] { email }
118 l = dao.getResultList(
119 "select c from SignUp c where c.email = ? and confirmed = TRUE",
120 new Object[] { email }
126 private boolean existPending(String email) {
127 Dao dao =
new ContactsPU();
128 List l = dao.getResultList(
129 "select c from SignUp c where c.email = ? and confirmed = FALSE",
130 new Object[] { email }
133 sue = (SignUp) l.iterator().next();
138 private boolean sendEmail(SignUp signUp) {
139 IConstructor constructor = HeadlessApplication.getInstance().getConstructor();
140 MailPool mp = (MailPool) ContextFactory.getImplementation(constructor,
"IMailPool");
141 mp.setEncoding(ElephantContext.getEncoding());
142 mp.addCssFile(ElephantContext.getRealPath(
"/_internal/css/mail.css"));
143 mp.addToPool(
null, signUp.getEmail(),
null,
144 I_.get(
"Email pending to confirm") +
" : " + ElephantContext.getSiteName(),
145 getMessage(signUp, constructor),
"text/html");
150 private String getMessage(SignUp signUp, IConstructor constructor) {
151 ElephantMarker em =
new ElephantMarker(constructor);
152 em.put(
"signUp", signUp);
153 return em.parse(
"signup",
"pending");
159 contact.
setName(signUp.getName());
176 private static void sendMailToAdmin(
SignUp signUp) {
184 private static void sendWelcomeMailToUser(
SignUp signUp)
throws UnsupportedEncodingException {
185 IConstructor constructor = HeadlessApplication.getInstance().getConstructor();
187 ElephantMarker em =
new ElephantMarker(constructor);
188 em.put(
"signUp", signUp);
191 }
catch (Exception ex) {
192 Logger.getLogger(AdminRegisterComposer.class.getName()).log(Level.SEVERE,
ElephantContext.
logMsg(
null), ex);
195 MailPool mp = (MailPool) ContextFactory.getImplementation(constructor,
"IMailPool");
196 mp.setEncoding(ElephantContext.getEncoding());
197 mp.addCssFile(ElephantContext.getRealPath(
"/_internal/css/mail.css"));
198 mp.addToPool(
null, signUp.
getEmail(),
null,
199 I_.get(
"Welcome") +
" : " + ElephantContext.getSiteName(),
200 em.parse(
"signup",
"welcome"),
"text/html");
static IMailSender getPool()
static IPushSender getPool()
boolean isInRole(String role)
static Application getApplication()
static String getSiteSyndicate()
static String getServerUrl(String scheme)
static String logMsg(String msg)
static void confirmProcess(String message, Command command)
static String format(String msg, Object... arguments)
static String get(String msg)
void subscribeDefaults(IContact contact)
static void syndicate(List< Contact > contacts, Set< String > socialGroupIds, Dao dao)
static final String CONNECTOR_EMAIL