Author: solomax
Date: Sat Aug 15 08:31:43 2015
New Revision: 1696022

URL: http://svn.apache.org/r1696022
Log:
[OPENMEETINGS-954] self register is added

Modified:
    
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
    
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java
    
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
    
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
    
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
    
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java

Modified: 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java?rev=1696022&r1=1696021&r2=1696022&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/data/user/UserManager.java
 Sat Aug 15 08:31:43 2015
@@ -404,10 +404,10 @@ public class UserManager implements IUse
                                link += "activate?u=" + hash;
 
                                if (sendWelcomeMessage && email.length() != 0) {
-                                       String sendMail = 
emailManagement.sendMail(login,
-                                                       password, email, link, 
sendConfirmation);
-                                       if (!sendMail.equals("success"))
+                                       String sendMail = 
emailManagement.sendMail(login, password, email, link, sendConfirmation);
+                                       if (!sendMail.equals("success")) {
                                                return -19L;
+                                       }
                                }
                                Address adr =  userDao.getAddress(street, zip, 
town, states_id, additionalname, fax, phone, email);
 

Modified: 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java?rev=1696022&r1=1696021&r2=1696022&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/main/java/org/apache/openmeetings/remote/MobileService.java
 Sat Aug 15 08:31:43 2015
@@ -18,17 +18,20 @@
  */
 package org.apache.openmeetings.remote;
 
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_OAUTH_REGISTER_KEY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SOAP_REGISTER_KEY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
+import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
@@ -37,15 +40,19 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.Organisation_Users;
+import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.remote.util.SessionVariablesUtil;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
@@ -61,6 +68,8 @@ public class MobileService {
        @Autowired
        private UserDao userDao;
        @Autowired
+       private StateDao stateDao;
+       @Autowired
        private IUserManager userManager;
        @Autowired
        private SessiondataDao sessionDao;
@@ -87,13 +96,80 @@ public class MobileService {
                return result;
        }
        
+       public Map<Long, String> getStates() {
+               Map<Long, String> result = new Hashtable<>();
+               for (State s : stateDao.getStates()) {
+                       result.put(s.getState_id(), s.getName());
+               }
+               return result;
+       }
+       
+       public String[] getTimezones() {
+               return TimeZone.getAvailableIDs();
+       }
+       
        public Map<String, Object> loginGoogle(Map<String, String> umap) {
                Map<String, Object> result = getResult();
                try {
-                       User u = userManager.loginOAuth(umap, 2); //TODO 
hardcoded
-                       result = login(u, result);
+                       if 
("1".equals(cfgDao.getConfValue(CONFIG_OAUTH_REGISTER_KEY, String.class, "0"))) 
{
+                               User u = userManager.loginOAuth(umap, 2); 
//TODO hardcoded
+                               result = login(u, result);
+                       }
+               } catch (Exception e) {
+                       log.error("[loginGoogle]", e);
+               }
+               return result;
+       }
+       
+       public Map<String, Object> registerUser(Map<String, String> umap) {
+               Map<String, Object> result = getResult();
+               try {
+                       if 
("1".equals(cfgDao.getConfValue(CONFIG_FRONTEND_REGISTER_KEY, String.class, 
"0"))) {
+                               String login = umap.get("login");
+                               String email = umap.get("email");
+                               String lastname = umap.get("lastname");
+                               String firstname = umap.get("firstname");
+                               if (firstname == null) {
+                                       firstname = "";
+                               }
+                               if (lastname == null) {
+                                       lastname = "";
+                               }
+                               String password = umap.get("password");
+                               String tzId = umap.get("tzId");
+                               Long stateId = 
Long.valueOf(umap.get("stateId"));
+                               Long langId = Long.valueOf(umap.get("langId"));
+                               
+                               //FIXME TODO unify with Register dialog
+                               String hash = 
ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(
+                                               login + 
CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
+
+                               String baseURL = cfgDao.getBaseUrl();
+                               boolean sendConfirmation = 
!Strings.isEmpty(baseURL)
+                                               && 1 == 
cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
+                               Long userId = 
userManager.registerUserInit(UserDao.getDefaultRights(), login, password, 
lastname
+                                               , firstname, email, null /* 
age/birthday */, "" /* street */
+                                               , "" /* additionalname */, "" 
/* fax */, "" /* zip */, stateId
+                                               , "" /* town */, langId, true 
/* sendWelcomeMessage */
+                                               , 
Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)),
+                                               "" /* phone */, false, 
sendConfirmation, TimeZone.getTimeZone(tzId),
+                                               false /* forceTimeZoneCheck */, 
"" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
+                                               true /* 
showContactDataToContacts */, hash);
+                               if (userId == null) {
+                                       //do nothing
+                               } else if (userId > 0) {
+                                       User u = userDao.get(userId);
+                                       if (sendConfirmation) {
+                                               add(result, "status", -666L);
+                                       } else {
+                                               result = login(u, result);
+                                       }
+                               } else {
+                                       add(result, "status", userId);
+                               }
+                       }
                } catch (Exception e) {
-                       log.error("[loginUser]", e);
+                       log.error("[registerUser]", e);
                }
                return result;
        }

Modified: 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1696022&r1=1696021&r2=1696022&view=diff
==============================================================================
--- 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 (original)
+++ 
openmeetings/branches/3.0.x/src/web/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 Sat Aug 15 08:31:43 2015
@@ -55,6 +55,7 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -105,6 +106,7 @@ public class RegisterDialog extends Abst
                                behavior.setOption("closeOnEscape", false);
                        }
 
+                       @Override
                        public void onClose(AjaxRequestTarget target, 
DialogButton button) {
                                s.open(target);
                        }
@@ -150,12 +152,11 @@ public class RegisterDialog extends Abst
        }
 
        public void onOpen(AjaxRequestTarget target) {
-               String baseURL = getBean(ConfigurationDao.class).getBaseUrl();
-               sendEmailAtRegister = 1 == 
getBean(ConfigurationDao.class).getConfValue("sendEmailAtRegister", 
Integer.class, "0");
-               sendConfirmation = baseURL != null
-                               && !baseURL.isEmpty()
-                               && 1 == getBean(ConfigurationDao.class)
-                                               
.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
+               ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
+               String baseURL = cfgDao.getBaseUrl();
+               sendEmailAtRegister = 1 == 
cfgDao.getConfValue("sendEmailAtRegister", Integer.class, "0");
+               sendConfirmation = !Strings.isEmpty(baseURL)
+                               && 1 == 
cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
                long messageCode = 236;
                if (sendConfirmation && sendEmailAtRegister) {
                        messageCode = 674;

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1696022&r1=1696021&r2=1696022&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 Sat Aug 15 08:31:43 2015
@@ -18,17 +18,20 @@
  */
 package org.apache.openmeetings.core.remote;
 
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_GROUP_ID;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_OAUTH_REGISTER_KEY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SOAP_REGISTER_KEY;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
+import java.util.TimeZone;
 
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
 import org.apache.openmeetings.core.remote.util.SessionVariablesUtil;
@@ -38,13 +41,17 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
+import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Organisation;
 import org.apache.openmeetings.db.entity.user.OrganisationUser;
+import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.openmeetings.util.crypt.ManageCryptStyle;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
@@ -60,6 +67,8 @@ public class MobileService {
        @Autowired
        private UserDao userDao;
        @Autowired
+       private StateDao stateDao;
+       @Autowired
        private IUserManager userManager;
        @Autowired
        private SessiondataDao sessionDao;
@@ -84,13 +93,80 @@ public class MobileService {
                return result;
        }
        
+       public Map<Long, String> getStates() {
+               Map<Long, String> result = new Hashtable<>();
+               for (State s : stateDao.get()) {
+                       result.put(s.getId(), s.getName());
+               }
+               return result;
+       }
+       
+       public String[] getTimezones() {
+               return TimeZone.getAvailableIDs();
+       }
+       
        public Map<String, Object> loginGoogle(Map<String, String> umap) {
                Map<String, Object> result = getResult();
                try {
-                       User u = userManager.loginOAuth(umap, 2); //TODO 
hardcoded
-                       result = login(u, result);
+                       if 
("1".equals(cfgDao.getConfValue(CONFIG_OAUTH_REGISTER_KEY, String.class, "0"))) 
{
+                               User u = userManager.loginOAuth(umap, 2); 
//TODO hardcoded
+                               result = login(u, result);
+                       }
+               } catch (Exception e) {
+                       log.error("[loginGoogle]", e);
+               }
+               return result;
+       }
+       
+       public Map<String, Object> registerUser(Map<String, String> umap) {
+               Map<String, Object> result = getResult();
+               try {
+                       if 
("1".equals(cfgDao.getConfValue(CONFIG_FRONTEND_REGISTER_KEY, String.class, 
"0"))) {
+                               String login = umap.get("login");
+                               String email = umap.get("email");
+                               String lastname = umap.get("lastname");
+                               String firstname = umap.get("firstname");
+                               if (firstname == null) {
+                                       firstname = "";
+                               }
+                               if (lastname == null) {
+                                       lastname = "";
+                               }
+                               String password = umap.get("password");
+                               String tzId = umap.get("tzId");
+                               Long stateId = 
Long.valueOf(umap.get("stateId"));
+                               Long langId = Long.valueOf(umap.get("langId"));
+                               
+                               //FIXME TODO unify with Register dialog
+                               String hash = 
ManageCryptStyle.getInstanceOfCrypt().createPassPhrase(
+                                               login + 
CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
+
+                               String baseURL = cfgDao.getBaseUrl();
+                               boolean sendConfirmation = 
!Strings.isEmpty(baseURL)
+                                               && 1 == 
cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
+                               Long userId = 
userManager.registerUserInit(UserDao.getDefaultRights(), login, password, 
lastname
+                                               , firstname, email, null /* 
age/birthday */, "" /* street */
+                                               , "" /* additionalname */, "" 
/* fax */, "" /* zip */, stateId
+                                               , "" /* town */, langId, true 
/* sendWelcomeMessage */
+                                               , 
Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)),
+                                               "" /* phone */, false, 
sendConfirmation, TimeZone.getTimeZone(tzId),
+                                               false /* forceTimeZoneCheck */, 
"" /* userOffers */, "" /* userSearchs */, false /* showContactData */,
+                                               true /* 
showContactDataToContacts */, hash);
+                               if (userId == null) {
+                                       //do nothing
+                               } else if (userId > 0) {
+                                       User u = userDao.get(userId);
+                                       if (sendConfirmation) {
+                                               add(result, "status", -666L);
+                                       } else {
+                                               result = login(u, result);
+                                       }
+                               } else {
+                                       add(result, "status", userId);
+                               }
+                       }
                } catch (Exception e) {
-                       log.error("[loginUser]", e);
+                       log.error("[registerUser]", e);
                }
                return result;
        }

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1696022&r1=1696021&r2=1696022&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 Sat Aug 15 08:31:43 2015
@@ -384,10 +384,10 @@ public class UserManager implements IUse
                                link += "activate?u=" + hash;
 
                                if (sendWelcomeMessage && email.length() != 0) {
-                                       String sendMail = 
emailManagement.sendMail(login,
-                                                       password, email, link, 
sendConfirmation);
-                                       if (!sendMail.equals("success"))
+                                       String sendMail = 
emailManagement.sendMail(login, password, email, link, sendConfirmation);
+                                       if (!sendMail.equals("success")) {
                                                return -19L;
+                                       }
                                }
                                Address adr =  userDao.getAddress(street, zip, 
town, stateId, additionalname, fax, phone, email);
 

Modified: 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1696022&r1=1696021&r2=1696022&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
 Sat Aug 15 08:31:43 2015
@@ -42,7 +42,6 @@ import org.apache.openmeetings.util.cryp
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.LanguageDropDown;
-import org.apache.openmeetings.web.pages.MainPage;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
@@ -57,6 +56,7 @@ import org.apache.wicket.markup.html.pan
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 
@@ -70,7 +70,7 @@ import com.googlecode.wicket.jquery.ui.w
 
 public class RegisterDialog extends AbstractFormDialog<String> {
        private static final long serialVersionUID = 1L;
-       private static final Logger log = 
Red5LoggerFactory.getLogger(MainPage.class, webAppRootKey);
+       private static final Logger log = 
Red5LoggerFactory.getLogger(RegisterDialog.class, webAppRootKey);
        private DialogButton cancelBtn = new DialogButton("cancel", 
Application.getString(122));
        private DialogButton registerBtn = new DialogButton("register", 
Application.getString(121));
        private FeedbackPanel feedback = new FeedbackPanel("feedback");
@@ -153,12 +153,11 @@ public class RegisterDialog extends Abst
        }
 
        public void onOpen(AjaxRequestTarget target) {
-               String baseURL = getBean(ConfigurationDao.class).getBaseUrl();
-               sendEmailAtRegister = 1 == 
getBean(ConfigurationDao.class).getConfValue("sendEmailAtRegister", 
Integer.class, "0");
-               sendConfirmation = baseURL != null
-                               && !baseURL.isEmpty()
-                               && 1 == getBean(ConfigurationDao.class)
-                                               
.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
+               ConfigurationDao cfgDao = getBean(ConfigurationDao.class);
+               String baseURL = cfgDao.getBaseUrl();
+               sendEmailAtRegister = 1 == 
cfgDao.getConfValue("sendEmailAtRegister", Integer.class, "0");
+               sendConfirmation = !Strings.isEmpty(baseURL)
+                               && 1 == 
cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
                long messageCode = 236;
                if (sendConfirmation && sendEmailAtRegister) {
                        messageCode = 674;


Reply via email to