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());


Reply via email to