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;