Modified: openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java Wed Apr 8 17:11:20 2015 @@ -18,6 +18,7 @@ */ package org.apache.openmeetings.installation; +import static org.apache.openmeetings.db.dao.basic.ConfigurationDao.DEFAULT_APP_NAME; import static org.apache.openmeetings.db.dao.basic.ConfigurationDao.DEFAULT_MAX_UPLOAD_SIZE; import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_BASE_URL; import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_APPLICATION_NAME; @@ -49,14 +50,12 @@ import static org.apache.openmeetings.ut import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey; import java.io.File; -import java.util.Arrays; import java.util.Date; import java.util.Hashtable; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; -import java.util.Set; import org.apache.openmeetings.db.dao.basic.ConfigurationDao; import org.apache.openmeetings.db.dao.basic.ErrorDao; @@ -70,7 +69,6 @@ import org.apache.openmeetings.db.dao.ro import org.apache.openmeetings.db.dao.room.RoomTypeDao; import org.apache.openmeetings.db.dao.room.SipDao; import org.apache.openmeetings.db.dao.server.OAuth2Dao; -import org.apache.openmeetings.db.dao.user.IUserManager; import org.apache.openmeetings.db.dao.user.OrganisationDao; import org.apache.openmeetings.db.dao.user.SalutationDao; import org.apache.openmeetings.db.dao.user.StateDao; @@ -83,6 +81,8 @@ import org.apache.openmeetings.db.entity import org.apache.openmeetings.db.entity.server.OAuthServer; import org.apache.openmeetings.db.entity.server.OAuthServer.RequestMethod; import org.apache.openmeetings.db.entity.user.Organisation; +import org.apache.openmeetings.db.entity.user.OrganisationUser; +import org.apache.openmeetings.db.entity.user.User; import org.apache.openmeetings.db.entity.user.User.Right; import org.apache.openmeetings.db.util.TimezoneUtil; import org.apache.openmeetings.util.OmFileHelper; @@ -99,7 +99,7 @@ public class ImportInitvalues { @Autowired private ConfigurationDao cfgDao; @Autowired - private UserDao usersDao; + private UserDao userDao; @Autowired private FieldLanguageDao fieldLanguageDaoImpl; @Autowired @@ -129,8 +129,6 @@ public class ImportInitvalues { @Autowired private OrganisationDao organisationDao; @Autowired - private IUserManager userManager; - @Autowired private RoomDao roomDao; @@ -320,7 +318,7 @@ public class ImportInitvalues { cfgDao.add("smtp_port", "" + cfg.smtpPort, null, "this is the smtp server port normally 25"); - cfgDao.add("system_email_addr", cfg.mailReferer, null, "all send EMails by the system will have this address"); + cfgDao.add("system_email_addr", cfg.mailReferer, null, "all send e-mails by the system will have this address"); cfgDao.add("email_username", cfg.mailAuthName, null, "System auth email username"); @@ -334,7 +332,7 @@ public class ImportInitvalues { cfgDao.add("mail.smtp.timeout", "30000", null, "Socket I/O timeout value in milliseconds. Default is 30 seconds (30000)."); - cfgDao.add(CONFIG_APPLICATION_NAME, ConfigurationDao.DEFAULT_APP_NAME, null, "Name of the Browser Title window"); + cfgDao.add(CONFIG_APPLICATION_NAME, DEFAULT_APP_NAME, null, "Name of the Browser Title window"); // "1" == "EN" cfgDao.add(CONFIG_DEFAUT_LANG_KEY, cfg.defaultLangId, null, "Default System Language ID see languages.xml"); @@ -401,8 +399,6 @@ public class ImportInitvalues { // additional settings // *************************************** - cfgDao.add("show.facebook.login", "" + 0, null, "Show Facebook Login"); - cfgDao.add(CONFIG_SCREENSHARING_QUALITY, "1", null, "Default selection in ScreenSharing Quality:\n 0 - bigger frame rate, no resize\n 1 - no resize\n 2 - size == 1/2 of selected area\n 3 - size == 3/8 of selected area"); @@ -564,8 +560,6 @@ public class ImportInitvalues { } public void loadInitUserAndOrganisation(InstallationConfig cfg) throws Exception { - Long default_lang_id = Long.parseLong(cfg.defaultLangId); - // Add default group Organisation org = new Organisation(); org.setName(cfg.group); @@ -574,20 +568,22 @@ public class ImportInitvalues { org.setStarttime(new Date()); org = organisationDao.update(org, null); - Set<Right> rights = UserDao.getDefaultRights(); - rights.add(Right.Admin); - rights.add(Right.Soap); - Long user_id = userManager.registerUserInit(rights, cfg.username, cfg.password, "lastname" - , "firstname", cfg.email, new Date() /* age/birthday */, "street", "no", "fax", "zip", 1 - , "town", default_lang_id, false /* sendWelcomeMessage */ - , Arrays.asList(org.getId()), "phone", false, false, timezoneUtil.getTimeZone(cfg.ical_timeZone), - false /* forceTimeZoneCheck */, "" /* userOffers */, "" /* userSearchs */, false /* showContactData */, - true /* showContactDataToContacts */, null); + User u = userDao.getNewUserInstance(null); + u.setType(User.Type.user); + u.getRights().add(Right.Admin); + u.getRights().add(Right.Soap); + u.setLogin(cfg.username); + u.setFirstname("firstname"); + u.setLastname("lastname"); + u.getAdresses().setEmail(cfg.email); + u.getOrganisationUsers().add(new OrganisationUser(org)); - log.debug("Installation - User Added user-Id " + user_id); + u = userDao.update(u, cfg.password, -1); - if (user_id < 0) { - throw new Exception("Could not add user user returns a negative error message: " + user_id); + log.debug("Installation - User Added user-Id " + u.getId()); + + if (u.getId() == null) { + throw new Exception("Unable to add user"); } } @@ -795,14 +791,16 @@ public class ImportInitvalues { yandexServer.setIconUrl("http://yandex.st/morda-logo/i/favicon.ico"); yandexServer.setClientId("<put your client_id>"); yandexServer.setClientSecret("<put your client_secret>"); - yandexServer.setEmailParamName("default_email"); yandexServer.setEnabled(false); - yandexServer.setLoginParamName("default_email"); yandexServer.setRequestInfoUrl("https://login.yandex.ru/info?format=json&oauth_token={$access_token}"); yandexServer.setRequestTokenUrl("https://oauth.yandex.ru/token"); yandexServer.setRequestKeyUrl("https://oauth.yandex.ru/authorize?response_type=code&client_id={$client_id}"); yandexServer.setRequestTokenAttributes("grant_type=authorization_code&code={$code}&client_id={$client_id}&client_secret={$client_secret}"); yandexServer.setRequestTokenMethod(RequestMethod.POST); + yandexServer.setLoginParamName("login"); + yandexServer.setEmailParamName("default_email"); + yandexServer.setFirstnameParamName("first_name"); + yandexServer.setLastnameParamName("last_name"); oauthDao.update(yandexServer, null); // Google @@ -832,11 +830,11 @@ public class ImportInitvalues { facebookServer.setClientId("<put your client_id>"); facebookServer.setClientSecret("<put your client_secret>"); facebookServer.setRequestKeyUrl("https://www.facebook.com/dialog/oauth?client_id={$client_id}&redirect_uri={$redirect_uri}&scope=email"); - facebookServer.setRequestTokenUrl("https://graph.facebook.com/oauth/access_token"); + facebookServer.setRequestTokenUrl("https://graph.facebook.com/v2.3/oauth/access_token"); facebookServer.setRequestTokenMethod(RequestMethod.POST); facebookServer.setRequestTokenAttributes("client_id={$client_id}&redirect_uri={$redirect_uri}&client_secret={$client_secret}&code={$code}"); - facebookServer.setRequestInfoUrl("https://graph.facebook.com/me?access_token={$access_token}&fields=username,first_name,last_name,email"); - facebookServer.setLoginParamName("username"); + facebookServer.setRequestInfoUrl("https://graph.facebook.com/me?access_token={$access_token}&fields=id,first_name,last_name,email"); + facebookServer.setLoginParamName("id"); facebookServer.setEmailParamName("email"); facebookServer.setFirstnameParamName("first_name"); facebookServer.setLastnameParamName("last_name"); @@ -858,7 +856,7 @@ public class ImportInitvalues { public void loadSystem(InstallationConfig cfg, boolean force) throws Exception { // FIXME dummy check if installation was performed before - if (!force && usersDao.count() > 0) { + if (!force && userDao.count() > 0) { log.debug("System contains users, no need to install data one more time."); } sipDao.delete(); @@ -895,7 +893,7 @@ public class ImportInitvalues { public void loadAll(InstallationConfig cfg, boolean force) throws Exception { // FIXME dummy check if installation was performed before - if (!force && usersDao.count() > 0) { + if (!force && userDao.count() > 0) { log.debug("System contains users, no need to install data one more time."); return; }
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=1672122&r1=1672121&r2=1672122&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 Wed Apr 8 17:11:20 2015 @@ -59,6 +59,7 @@ import org.apache.openmeetings.service.m import org.apache.openmeetings.util.CalendarPatterns; import org.apache.openmeetings.util.DaoHelper; import org.apache.openmeetings.util.crypt.ManageCryptStyle; +import org.apache.wicket.util.string.Strings; import org.red5.logging.Red5LoggerFactory; import org.red5.server.api.scope.IScope; import org.slf4j.Logger; @@ -184,12 +185,10 @@ public class UserManager implements IUse Userdata userdata = new Userdata(); if (user_id != null && user_id.longValue() > 0) { try { - TypedQuery<Userdata> query = em - .createQuery("select c from Userdata as c where c.user_id = :user_id AND c.data_key = :data_key AND c.deleted = false", Userdata.class); + TypedQuery<Userdata> query = em.createQuery("select c from Userdata as c where c.user_id = :user_id AND c.data_key = :data_key AND c.deleted = false", Userdata.class); query.setParameter("user_id", user_id); query.setParameter("data_key", DATA_KEY); - for (Iterator<Userdata> it2 = query.getResultList().iterator(); it2 - .hasNext();) { + for (Iterator<Userdata> it2 = query.getResultList().iterator(); it2.hasNext();) { userdata = it2.next(); } } catch (Exception ex2) { @@ -383,8 +382,8 @@ public class UserManager implements IUse // Check for required data if (login.length() >= getMinLoginLength(configurationDao)) { // Check for duplicates - boolean checkName = usersDao.checkUserLogin(login, null); - boolean checkEmail = usersDao.checkUserEMail(email, null); + boolean checkName = usersDao.checkLogin(login, User.Type.user, null, null); + boolean checkEmail = Strings.isEmpty(email) || usersDao.checkEmail(email, User.Type.user, null, null); if (checkName && checkEmail) { String link = configurationDao.getBaseUrl(); Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java Wed Apr 8 17:11:20 2015 @@ -18,8 +18,11 @@ */ package org.apache.openmeetings.web.admin.oauth; +import java.util.Arrays; + import org.apache.openmeetings.db.dao.server.OAuth2Dao; import org.apache.openmeetings.db.entity.server.OAuthServer; +import org.apache.openmeetings.db.entity.server.OAuthServer.RequestMethod; import org.apache.openmeetings.web.admin.AdminBaseForm; import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.app.WebSession; @@ -28,6 +31,8 @@ import org.apache.wicket.ajax.AjaxReques import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; import org.apache.wicket.markup.html.WebMarkupContainer; import org.apache.wicket.markup.html.form.CheckBox; +import org.apache.wicket.markup.html.form.ChoiceRenderer; +import org.apache.wicket.markup.html.form.DropDownChoice; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.form.RequiredTextField; import org.apache.wicket.markup.html.form.TextField; @@ -55,6 +60,7 @@ public class OAuthForm extends AdminBase add(new RequiredTextField<String>("requestTokenUrl").setLabel(Model.of(WebSession.getString(1579)))); add(new RequiredTextField<String>("requestTokenAttributes").setLabel(Model.of(WebSession.getString(1586)))); add(new RequiredTextField<String>("requestInfoUrl").setLabel(Model.of(WebSession.getString(1580)))); + add(new DropDownChoice<RequestMethod>("requestTokenMethod", Arrays.asList(RequestMethod.values()), new ChoiceRenderer<RequestMethod>("name", "name"))); add(new RequiredTextField<String>("loginParamName").setLabel(Model.of(WebSession.getString(1582)))); add(new RequiredTextField<String>("emailParamName").setLabel(Model.of(WebSession.getString(1583)))); add(new TextField<String>("firstnameParamName").setLabel(Model.of(WebSession.getString(1584)))); Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthPanel.html Wed Apr 8 17:11:20 2015 @@ -88,6 +88,9 @@ <label><wicket:ommessage key="1580" /></label><input type="text" wicket:id="requestInfoUrl"/> </div> <div class="formelement"> + <label>Request method</label><select wicket:id="requestTokenMethod"></select> + </div> + <div class="formelement"> <label><wicket:ommessage key="1582" /></label><input type="text" wicket:id="loginParamName"/> </div> <div class="formelement"> Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java Wed Apr 8 17:11:20 2015 @@ -131,7 +131,7 @@ public class UserForm extends AdminBaseF if (user.getId() != null) { user = getBean(UserDao.class).get(user.getId()); } else { - user = new User(); + user = getBean(UserDao.class).getNewUserInstance(null); } setModelObject(user); update(target); @@ -249,7 +249,8 @@ public class UserForm extends AdminBaseF @Override protected void onValidate() { - if(!getBean(UserDao.class).checkUserLogin(login.getConvertedInput(), getModelObject().getId())) { + User u = getModelObject(); + if(!getBean(UserDao.class).checkLogin(login.getConvertedInput(), u.getType(), u.getDomainId(), u.getId())) { error(WebSession.getString(105)); } } Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Wed Apr 8 17:11:20 2015 @@ -267,7 +267,7 @@ public class WebSession extends Abstract break; case oauth: // we did all the checks at this stage, just set the user - u = getBean(UserDao.class).getByName(login, Type.oauth); + u = getBean(UserDao.class).getByLogin(login, Type.oauth, domainId); break; default: throw new OmException(-1L); Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java Wed Apr 8 17:11:20 2015 @@ -190,7 +190,8 @@ public class GeneralUserForm extends For @Override protected void onValidate() { - if(!getBean(UserDao.class).checkUserEMail(email.getConvertedInput(), getModelObject().getId())) { + User u = getModelObject(); + if(!getBean(UserDao.class).checkEmail(email.getConvertedInput(), u.getType(), u.getDomainId(), u.getId())) { error(WebSession.getString(1000)); } super.onValidate(); Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java Wed Apr 8 17:11:20 2015 @@ -122,10 +122,10 @@ public class ForgetPasswordDialog extend UserDao dao = getBean(UserDao.class); String n = nameField.getConvertedInput(); if (n != null) { - if (type == Type.email && null == dao.getUserByEmail(n)) { + if (type == Type.email && null == dao.getByEmail(n)) { error(WebSession.getString(318)); } - if (type == Type.login && null == dao.getByName(n, User.Type.user)) { + if (type == Type.login && null == dao.getByLogin(n, User.Type.user, null)) { error(WebSession.getString(320)); } } @@ -214,7 +214,7 @@ public class ForgetPasswordDialog extend // check if Mail given if (email.length() > 0) { // log.debug("getAdresses_id "+addr_e.getAdresses_id()); - User us = userDao.getUserByEmail(email); + User us = userDao.getByEmail(email); if (us != null) { sendHashByUser(us, appLink, userDao); return new Long(-4); @@ -222,7 +222,7 @@ public class ForgetPasswordDialog extend return new Long(-9); } } else if (username.length() > 0) { - User us = userDao.getByName(username, User.Type.user); + User us = userDao.getByLogin(username, User.Type.user, null); if (us != null) { sendHashByUser(us, appLink, userDao); return new Long(-4); 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=1672122&r1=1672121&r2=1672122&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 Wed Apr 8 17:11:20 2015 @@ -37,6 +37,7 @@ import org.apache.openmeetings.db.dao.us import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.entity.label.FieldLanguage; 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.openmeetings.web.app.WebSession; @@ -280,10 +281,10 @@ public class RegisterDialog extends Abst || !passwordField.getConvertedInput().equals(confirmPassword.getConvertedInput())) { error(WebSession.getString(232)); } - if (!getBean(UserDao.class).checkUserEMail(emailField.getConvertedInput(), null)) { + if (!getBean(UserDao.class).checkEmail(emailField.getConvertedInput(), User.Type.user, null, null)) { error(WebSession.getString(1000)); } - if (!getBean(UserDao.class).checkUserLogin(loginField.getConvertedInput(), null)) { + if (!getBean(UserDao.class).checkLogin(loginField.getConvertedInput(), User.Type.user, null, null)) { error(WebSession.getString(105)); } } Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java Wed Apr 8 17:11:20 2015 @@ -162,7 +162,6 @@ public class SignInDialog extends Abstra public Form<String> getForm() { return form; } - // TODO Auto-generated method stub private void shake(AjaxRequestTarget target) { JQueryEffectBehavior shake = new JQueryEffectBehavior("#" + getMarkupId(), "shake"); @@ -232,7 +231,7 @@ public class SignInDialog extends Abstra .add(new DropDownChoice<LdapConfig>("domain", new PropertyModel<LdapConfig>(SignInDialog.this, "domain") , ldaps, new ChoiceRenderer<LdapConfig>("name", "id"))).setVisible(ldaps.size() > 1)); add(new CheckBox("rememberMe", new PropertyModel<Boolean>(SignInDialog.this, "rememberMe")).setOutputMarkupId(true)); - add(new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected + AjaxButton ab = new AjaxButton("submit") { //FAKE button so "submit-on-enter" works as expected private static final long serialVersionUID = 1L; @Override @@ -244,7 +243,9 @@ public class SignInDialog extends Abstra protected void onError(AjaxRequestTarget target, Form<?> form) { SignInDialog.this.onError(target); } - }); + }; + add(ab); + setDefaultButton(ab); add(new AjaxLink<Void>("forget") { private static final long serialVersionUID = 1L; Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java?rev=1672122&r1=1672121&r2=1672122&view=diff ============================================================================== --- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java (original) +++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java Wed Apr 8 17:11:20 2015 @@ -51,10 +51,12 @@ import javax.net.ssl.X509TrustManager; import org.apache.commons.io.IOUtils; import org.apache.openmeetings.db.dao.basic.ConfigurationDao; import org.apache.openmeetings.db.dao.server.OAuth2Dao; -import org.apache.openmeetings.db.dao.user.IUserManager; +import org.apache.openmeetings.db.dao.user.OrganisationDao; import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.entity.server.OAuthServer; +import org.apache.openmeetings.db.entity.user.OrganisationUser; import org.apache.openmeetings.db.entity.user.User; +import org.apache.openmeetings.db.entity.user.User.Right; import org.apache.openmeetings.db.entity.user.User.Type; import org.apache.openmeetings.web.app.Application; import org.apache.openmeetings.web.app.WebSession; @@ -324,15 +326,26 @@ public class SignInPage extends BaseInit private void loginViaOAuth2(Map<String, String> params, long serverId) throws IOException, NoSuchAlgorithmException { UserDao userDao = getBean(UserDao.class); - IUserManager userManager = getBean(IUserManager.class); - ConfigurationDao configurationDao = getBean(ConfigurationDao.class); + ConfigurationDao cfgDao = getBean(ConfigurationDao.class); String login = params.get("login"); String email = params.get("email"); String lastname = params.get("lastname"); String firstname = params.get("firstname"); - if (firstname == null) firstname = ""; - if (lastname == null) lastname = ""; - User user = userDao.getByName(login, Type.oauth); + if (firstname == null) { + firstname = ""; + } + if (lastname == null) { + lastname = ""; + } + if (!userDao.validLogin(login)) { + log.error("Invalid login, please check parameters"); + return; + } + User u = userDao.getByLogin(login, Type.oauth, serverId); + if (!userDao.checkEmail(email, Type.oauth, serverId, u == null ? null : u.getId())) { + log.error("Another user with the same email exists"); + return; + } // generate random password byte[] rawPass = new byte[16]; Random rnd = new Random(); @@ -341,27 +354,20 @@ public class SignInPage extends BaseInit } String pass = new String(rawPass, "UTF-8"); // check if the user already exists and register new one if it's needed - if (user == null) { - Integer defaultlangId = Integer.valueOf(configurationDao.getConfValue("default_lang_id", String.class, "1")); - String defaultTimezone = configurationDao.getConfValue("default.timezone", String.class, ""); - Long res = userManager.registerUserNoEmail(login, pass, lastname, firstname, email, null, null, - null, null, null, 0, null, defaultlangId, null, false, true, defaultTimezone); - if (res == null || res < 0) { - throw new RuntimeException("Couldn't register new oauth user"); - } - user = userDao.get(res); - user.setType(Type.oauth); - user.setDomainId(serverId); - userDao.update(user, null); - } else { // just change password - // check user type before changing password, it must be match oauthServerId - if (user.getDomainId() == null || serverId != user.getDomainId()) { - log.error("User already registered! with different OAuth server"); - return; - } - user.setLastlogin(new Date()); - userDao.update(user, pass, -1); + if (u == null) { + u = userDao.getNewUserInstance(null); + u.setType(Type.oauth); + u.getRights().remove(Right.Login);; + u.setDomainId(serverId); + u.getOrganisationUsers().add(new OrganisationUser(getBean(OrganisationDao.class).get(cfgDao.getConfValue("default_domain_id", Long.class, "-1")))); + u.setLogin(login); + u.setShowContactDataToContacts(true); + u.setLastname(lastname); + u.setFirstname(firstname); + u.getAdresses().setEmail(email); } + u.setLastlogin(new Date()); + u = userDao.update(u, pass, -1); if (WebSession.get().signIn(login, pass, Type.oauth, serverId)) { setResponsePage(Application.get().getHomePage());
