Author: solomax
Date: Thu Aug 25 08:46:39 2016
New Revision: 1757626

URL: http://svn.apache.org/viewvc?rev=1757626&view=rev
Log:
[OPENMEETINGS-1455] hashes seems to work as expected

Removed:
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/chooseNickName.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/redirectBox.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/invitation/
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/InvitationService.java
Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
    
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/functions.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainAttributes.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/library.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/library.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/videoUserProfilePicSWF10.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
    
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
    
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
    
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
    
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 Thu Aug 25 08:46:39 2016
@@ -274,12 +274,4 @@ public class ConferenceService {
                }
                return null;
        }
-
-       public Room getRoomById(String sid, Long roomId) {
-               Sessiondata sd = sessionDao.check(sid);
-               if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-                       return roomDao.get(roomId);
-               }
-               return null;
-       }
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
 Thu Aug 25 08:46:39 2016
@@ -22,9 +22,8 @@ import static org.apache.openmeetings.ut
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENABLED;
 
-import java.util.Date;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Locale;
 import java.util.Set;
 
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
@@ -34,7 +33,6 @@ import org.apache.openmeetings.db.dao.ca
 import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
-import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -45,18 +43,13 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.RoomGroup;
-import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
-import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
-import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.Userdata;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
-import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
 import org.red5.server.api.Red5;
@@ -91,10 +84,6 @@ public class MainService implements IPen
        private RoomDao roomDao;
        @Autowired
        private AppointmentDao appointmentDao;
-       @Autowired
-       private SOAPLoginDao soapLoginDao;
-       @Autowired
-       private TimezoneUtil timezoneUtil;
 
        // External User Types
        public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
@@ -135,25 +124,6 @@ public class MainService implements IPen
                return null;
        }
 
-       /**
-        * load this session id before doing anything else
-        * 
-        * @return a unique session identifier
-        */
-       public Sessiondata getsessiondata() {
-               return sessionDao.create();
-       }
-
-       public Long setCurrentUserGroup(String SID, Long groupId) {
-               try {
-                       sessionDao.updateUserGroup(SID, groupId);
-                       return 1L;
-               } catch (Exception err) {
-                       log.error("[setCurrentUserGroup]", err);
-               }
-               return -1L;
-       }
-
        public boolean isRoomAllowedToUser(Room r, User u) {
                boolean allowed = false;
                if (r != null) {
@@ -202,19 +172,20 @@ public class MainService implements IPen
                return allowed;
        }
        
-       public User loginWicket(String wicketSID, Long wicketroomid) {
+       public List<Object> loginWicket(String wicketSID, Long wicketroomid) {
                log.debug("[loginWicket] wicketSID: '{}'; wicketroomid: '{}'", 
wicketSID, wicketroomid);
                Sessiondata sd = sessionDao.check(wicketSID);
                Long userId = sd.getUserId();
                User u = userId == null ? null : userDao.get(userId);
-               if (u != null && wicketroomid != null) {
+               Room r = roomDao.get(wicketroomid);
+               if (u != null && r != null) {
                        log.debug("[loginWicket] user and roomid are not empty: 
" + userId + ", " + wicketroomid);
-                       if (isRoomAllowedToUser(roomDao.get(wicketroomid), u)) {
+                       if (wicketroomid.equals(sd.getRoomId()) || 
isRoomAllowedToUser(r, u)) {
                                IConnection current = Red5.getConnectionLocal();
                                String streamId = current.getClient().getId();
                                Client currentClient = 
sessionManager.getClientByStreamId(streamId, null);
                                
-                               if (!u.getGroupUsers().isEmpty()) {
+                               if (User.Type.user != u.getType() || 
(User.Type.user == u.getType() && !u.getGroupUsers().isEmpty())) {
                                        u.setSessionData(sd);
                                        currentClient.setUserId(u.getId());
                                        currentClient.setRoomId(wicketroomid);
@@ -229,90 +200,12 @@ public class MainService implements IPen
                                        
                                        
scopeApplicationAdapter.sendMessageToCurrentScope("roomConnect", currentClient, 
false);
                                        
-                                       return u;
+                                       return Arrays.<Object>asList(u, r);
                                }
                        }
                }
                return null;
        }
-       
-       public Object secureLoginByRemote(String SID, String secureHash) {
-               try {
-                       log.debug("############### secureLoginByRemote " + 
secureHash);
-
-                       String clientURL = 
Red5.getConnectionLocal().getRemoteAddress();
-
-                       log.debug("swfURL " + clientURL);
-
-                       SOAPLogin soapLogin = soapLoginDao.get(secureHash);
-                       if (soapLogin == null) {
-                               log.warn("Unable to find login by hash: {}" + 
secureHash);
-                               return -1L;
-                       }
-
-                       if (soapLogin.isUsed()) {
-                               if (soapLogin.getAllowSameURLMultipleTimes()) {
-                                       if 
(!soapLogin.getClientURL().equals(clientURL)) {
-                                               log.debug("does not equal " + 
clientURL);
-                                               return -42L;
-                                       }
-                               } else {
-                                       log.debug("Already used " + secureHash);
-                                       return -42L;
-                               }
-                       }
-
-                       Long loginReturn = 
loginUserByRemote(soapLogin.getSessionHash());
-
-                       IConnection current = Red5.getConnectionLocal();
-                       String streamId = current.getClient().getId();
-                       Client currentClient = 
sessionManager.getClientByStreamId(streamId, null);
-
-                       if (currentClient.getUserId() != null) {
-                               sessionDao.updateUser(SID, 
currentClient.getUserId());
-                       }
-
-                       
currentClient.setAllowRecording(soapLogin.isAllowRecording());
-                       sessionManager.updateClientByStreamId(streamId, 
currentClient, false, null);
-
-                       if (loginReturn == null) {
-                               log.debug("loginReturn IS NULL for SID: " + 
soapLogin.getSessionHash());
-
-                               return -1L;
-                       } else if (loginReturn < 0) {
-                               log.debug("loginReturn IS < 0 for SID: " + 
soapLogin.getSessionHash());
-
-                               return loginReturn;
-                       } else {
-
-                               soapLogin.setUsed(true);
-                               soapLogin.setUseDate(new Date());
-
-                               soapLogin.setClientURL(clientURL);
-
-                               soapLoginDao.update(soapLogin);
-
-                               // Create Return Object and hide the validated
-                               // sessionHash that is stored server side
-                               // this hash should be never thrown back to the 
user
-
-                               SOAPLogin returnSoapLogin = new SOAPLogin();
-
-                               
returnSoapLogin.setRoomId(soapLogin.getRoomId());
-                               
returnSoapLogin.setBecomemoderator(soapLogin.isBecomemoderator());
-                               
returnSoapLogin.setShowAudioVideoTest(soapLogin.getShowAudioVideoTest());
-                               
returnSoapLogin.setRecordingId(soapLogin.getRecordingId());
-                               
returnSoapLogin.setShowNickNameDialog(soapLogin.getShowNickNameDialog());
-                               
returnSoapLogin.setLandingZone(soapLogin.getLandingZone());
-
-                               return returnSoapLogin;
-                       }
-
-               } catch (Exception err) {
-                       log.error("[secureLoginByRemote]", err);
-               }
-               return null;
-       }
 
        /**
         * Function is called if the user loggs in via a secureHash and sets the
@@ -350,91 +243,6 @@ public class MainService implements IPen
        }
 
        /**
-        * Attention! This SID is NOT the default session id! its the Session id
-        * retrieved in the call from the SOAP Gateway!
-        * 
-        * @param sid
-        * @return - 1 in case of success, -1 otherwise
-        */
-       public Long loginUserByRemote(String sid) {
-               try {
-                       Sessiondata sd = sessionDao.check(sid);
-                       if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-                               if (sd.getXml() == null) {
-                                       return -37L;
-                               } else {
-                                       RemoteSessionObject userObject = 
RemoteSessionObject.fromXml(sd.getXml());
-                                       if (userObject == null) {
-                                               log.warn("Failed to get user 
object by XML");
-                                               return -1L;
-                                       }
-
-                                       log.debug(userObject.toString());
-
-                                       IConnection current = 
Red5.getConnectionLocal();
-                                       String streamId = 
current.getClient().getId();
-                                       Client currentClient = 
sessionManager.getClientByStreamId(streamId, null);
-
-                                       // Check if this User is simulated in 
the OpenMeetings
-                                       // Database
-
-                                       if 
(!Strings.isEmpty(userObject.getExternalUserId())) {
-                                               // If so we need to check that 
we create this user in
-                                               // OpenMeetings and update its 
record
-
-                                               User user = 
userDao.getExternalUser(userObject.getExternalUserId(), 
userObject.getExternalUserType());
-
-                                               if (user == null) {
-                                                       String iCalTz = 
configurationDao.getConfValue("default.timezone", String.class, "");
-
-                                                       Address a = 
userDao.getAddress(null, null, null, Locale.getDefault().getCountry(), null, 
null, null, userObject.getEmail());
-
-                                                       Set<Right> rights = 
UserDao.getDefaultRights();
-                                                       
rights.remove(Right.Login);
-                                                       
rights.remove(Right.Dashboard);
-                                                       User u = 
userDao.addUser(rights, userObject.getFirstname(), userObject.getUsername(),
-                                                                               
        userObject.getLastname(), 1L, "" // password is empty by default
-                                                                               
        , a, false, null, null, timezoneUtil.getTimeZone(iCalTz), false
-                                                                               
        , null, null, false, false, userObject.getExternalUserId()
-                                                                               
        , userObject.getExternalUserType(), null, userObject.getPictureUrl());
-
-                                                       long userId = u.getId();
-                                                       
currentClient.setUserId(userId);
-                                                       
SessionVariablesUtil.setUserId(current.getClient(), userId);
-                                               } else {
-                                                       
user.setPictureuri(userObject.getPictureUrl());
-
-                                                       userDao.update(user, 
sd.getUserId());
-
-                                                       
currentClient.setUserId(user.getId());
-                                                       
SessionVariablesUtil.setUserId(current.getClient(), user.getId());
-                                               }
-                                       }
-
-                                       
log.debug("userObject.getExternalUserId() -2- " + currentClient.getUserId());
-
-                                       
currentClient.setUserObject(userObject.getUsername(), 
userObject.getFirstname(), userObject.getLastname());
-                                       
currentClient.setPicture_uri(userObject.getPictureUrl());
-                                       
currentClient.setEmail(userObject.getEmail());
-
-                                       log.debug("UPDATE USER BY STREAMID " + 
streamId);
-
-                                       if (currentClient.getUserId() != null) {
-                                               sessionDao.updateUser(sid, 
currentClient.getUserId());
-                                       }
-
-                                       
sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
-
-                                       return 1L;
-                               }
-                       }
-               } catch (Exception err) {
-                       log.error("[loginUserByRemote] ", err);
-               }
-               return -1L;
-       }
-
-       /**
         * clear this session id
         * 
         * @param sid

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 Thu Aug 25 08:46:39 2016
@@ -188,40 +188,34 @@ public class MobileService {
        
        private Map<String, Object> login(User u, Map<String, Object> result) {
                if (u != null) {
-                       Sessiondata sd = sessionDao.create();
-                       boolean bool = sessionDao.updateUser(sd.getSessionId(), 
u.getId(), false, u.getLanguageId());
-                       if (!bool) {
-                               // invalid Session-Object
-                               result.put("status", -35);
+                       Sessiondata sd = sessionDao.create(u.getId(), 
u.getLanguageId());
+                       IConnection conn = Red5.getConnectionLocal();
+                       String streamId = conn.getClient().getId();
+                       Client c = sessionManager.getClientByStreamId(streamId, 
null);
+                       if (c == null) {
+                               c = sessionManager.addClientListItem(streamId, 
conn.getScope().getName(), conn.getRemotePort(),
+                                       conn.getRemoteAddress(), "", null);
+                       }
+                       if (c == null) {
+                               // Failed to create client
+                               result.put("status", -1);
                        } else {
-                               IConnection conn = Red5.getConnectionLocal();
-                               String streamId = conn.getClient().getId();
-                               Client c = 
sessionManager.getClientByStreamId(streamId, null);
-                               if (c == null) {
-                                       c = 
sessionManager.addClientListItem(streamId, conn.getScope().getName(), 
conn.getRemotePort(),
-                                               conn.getRemoteAddress(), "", 
null);
-                               }
-                               if (c == null) {
-                                       // Failed to create client
-                                       result.put("status", -1);
-                               } else {
-                                       
SessionVariablesUtil.initClient(conn.getClient(), c.getPublicSID());
-                                       c.setUserId(u.getId());
-                                       c.setFirstname(u.getFirstname());
-                                       c.setLastname(u.getLastname());
-                                       c.setMobile(true);
-                                       
sessionManager.updateClientByStreamId(streamId, c, false, null);
-       
-                                       add(result, "sid", sd.getSessionId());
-                                       add(result, "publicSid", 
c.getPublicSID());
-                                       add(result, "status", 0);
-                                       add(result, "userId", u.getId());
-                                       add(result, "firstname", 
u.getFirstname());
-                                       add(result, "lastname", 
u.getLastname());
-                                       add(result, "login", u.getLogin());
-                                       add(result, "email", u.getAddress() == 
null ? "" : u.getAddress().getEmail());
-                                       add(result, "language", 
u.getLanguageId()); //TODO rights
-                               }
+                               
SessionVariablesUtil.initClient(conn.getClient(), c.getPublicSID());
+                               c.setUserId(u.getId());
+                               c.setFirstname(u.getFirstname());
+                               c.setLastname(u.getLastname());
+                               c.setMobile(true);
+                               sessionManager.updateClientByStreamId(streamId, 
c, false, null);
+
+                               add(result, "sid", sd.getSessionId());
+                               add(result, "publicSid", c.getPublicSID());
+                               add(result, "status", 0);
+                               add(result, "userId", u.getId());
+                               add(result, "firstname", u.getFirstname());
+                               add(result, "lastname", u.getLastname());
+                               add(result, "login", u.getLogin());
+                               add(result, "email", u.getAddress() == null ? 
"" : u.getAddress().getEmail());
+                               add(result, "language", u.getLanguageId()); 
//TODO rights
                        }
                }
                return result;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
 Thu Aug 25 08:46:39 2016
@@ -59,15 +59,33 @@ public class SessiondataDao {
 
                return sd;
        }
-       
+
        /**
         * creates a new session-object in the database
         * 
-        * @return created Sessiondata with random UID
+        * @param userId the id of the user to be set on this session
+        * @param languageId language id to be set on this session
+        * @return newly create {@link Sessiondata}
         */
-       public Sessiondata create() {
+       public Sessiondata create(Long userId, long languageId) {
+               return create(userId, null, languageId);
+       }
+
+       /**
+        * creates a new session-object in the database
+        * 
+        * @param userId the id of the user to be set on this session
+        * @param roomId the id of the room to be set on this session
+        * @param languageId language id to be set on this session
+        * @return newly create {@link Sessiondata}
+        */
+       public Sessiondata create(Long userId, Long roomId, long languageId) {
                log.debug("create :: create");
-               return update(newInstance());
+               Sessiondata sd = newInstance();
+               sd.setUserId(userId);
+               sd.setRoomId(roomId);
+               sd.setLanguageId(languageId);
+               return update(sd);
        }
 
        /**
@@ -75,17 +93,28 @@ public class SessiondataDao {
         * @param SID
         * @return
         */
-       public Sessiondata check(String SID) {
+       public Sessiondata find(String SID) {
                List<Sessiondata> sessions = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID).getResultList();
 
                Sessiondata sd = null;
                if (sessions != null && sessions.size() > 0) {
                        sd = sessions.get(0);
+                       if (sd == null || sd.getUserId() == null || 
sd.getUserId().equals(new Long(0))) {
+                               return null;
+                       }
                }
+               return sd;
+       }
 
-               // Checks if wether the Session or the User Object of that 
Session
-               // is set yet
-               if (sd == null || sd.getUserId() == null || 
sd.getUserId().equals(new Long(0))) {
+       /**
+        * 
+        * @param SID
+        * @return
+        */
+       public Sessiondata check(String SID) {
+               Sessiondata sd = find(SID);
+               // Checks if wether the Session or the User Object of that 
Session is set yet
+               if (sd == null) {
                        return newInstance();
                }
                return update(sd);
@@ -102,42 +131,7 @@ public class SessiondataDao {
                try {
                        log.debug("updateUser User: " + userId + " || " + SID);
 
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
-                       if (sd == null) {
-                               log.error("Could not find session to Update");
-                               return false;
-                       }
-                       log.debug("Found session to update: {}, userId: {}", 
sd.getSessionId(), userId);
-
-                       sd.setUserId(userId);
-                       update(sd);
-                       return true;
-               } catch (Exception ex2) {
-                       log.error("[updateUser]: ", ex2);
-               }
-               return false;
-       }
-
-       public boolean updateUser(String SID, Long userId, boolean permanent, 
long languageId) {
-               try {
-                       log.debug("updateUser User: " + userId + " || " + SID);
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
+                       Sessiondata sd = find(SID);
                        if (sd == null) {
                                log.error("Could not find session to Update");
                                return false;
@@ -145,36 +139,6 @@ public class SessiondataDao {
                        log.debug("Found session to update: {}, userId: {}", 
sd.getSessionId(), userId);
 
                        sd.setUserId(userId);
-                       sd.setPermanent(permanent);
-                       sd.setLanguageId(languageId);
-                       update(sd);
-
-                       return true;
-               } catch (Exception ex2) {
-                       log.error("[updateUser]: ", ex2);
-               }
-               return false;
-       }
-
-       public boolean updateUserGroup(String SID, Long groupId) {
-               try {
-                       log.debug("updateUserGroup User: " + groupId + " || " + 
SID);
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
-                       if (sd == null) {
-                               log.error("Could not find session to Update");
-                               return false;
-                       }
-                       log.debug("Found session to update: {}, groupId: {}", 
sd.getSessionId(), groupId);
-
-                       sd.setGroupId(groupId);
                        update(sd);
                        return true;
                } catch (Exception ex2) {
@@ -186,15 +150,7 @@ public class SessiondataDao {
        public boolean updateUserWithoutSession(String SID, Long userId) {
                try {
                        log.debug("updateUser User: " + userId + " || " + SID);
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
+                       Sessiondata sd = find(SID);
                        if (sd == null) {
                                log.error("Could not find session to Update");
                                return false;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
 Thu Aug 25 08:46:39 2016
@@ -49,6 +49,9 @@ public class Sessiondata implements Seri
        @Column(name = "user_id")
        private Long userId;
 
+       @Column(name = "room_id")
+       private Long roomId;
+
        @Column(name = "session_id")
        private String sessionId;
 
@@ -68,9 +71,6 @@ public class Sessiondata implements Seri
        @Column(name = "language_id")
        private long languageId;
 
-       @Column(name = "group_id")
-       private Long groupId;
-
        public Sessiondata() {
        }
 
@@ -114,6 +114,14 @@ public class Sessiondata implements Seri
                this.userId = userId;
        }
 
+       public Long getRoomId() {
+               return roomId;
+       }
+
+       public void setRoomId(Long roomId) {
+               this.roomId = roomId;
+       }
+
        public String getXml() {
                return xml;
        }
@@ -137,13 +145,4 @@ public class Sessiondata implements Seri
        public void setLanguageId(long languageId) {
                this.languageId = languageId;
        }
-
-       public Long getGroupId() {
-               return groupId;
-       }
-
-       public void setGroupId(Long groupId) {
-               this.groupId = groupId;
-       }
-
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/functions.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/functions.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/functions.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/functions.lzx
 Thu Aug 25 08:46:39 2016
@@ -92,40 +92,6 @@ function getLabelTag(labelid){
     return l;
 }
 
-function quicklinkAct(action) {
-    // if($debug) Debug.write("FUNC/quicklinkAct",action);
-    loadContent({action: action, params: null},null,null);
-}            
-
-function loadContent(obj,parentobj,preparentobj){
-    if($debug) Debug.write("FUNC/loadContent: ", obj);
-    
-    tempActionForNavi = {action: obj.action, params: obj.params};
-       if (!clearStageContent()) {
-               loadContentByTempActionForNavi();
-       }
-}
-    
-function loadContentByTempActionForNavi(){
-    // if($debug) Debug.write("FUNC/loadContentByTempActionForNavi");
-    
-       if (canvas.roomJumpId != 0) {
-               canvas.initroomid = canvas.roomJumpId;
-        canvas.thishib.getRoomById.doCall();
-               canvas.roomJumpId = 0;
-       } else {
-        if($debug) Debug.write("FUNC/loadContentByString -1- 
",tempActionForNavi);
-        if($debug) Debug.write("FUNC/loadContentByString -2- 
",canvas[tempActionForNavi.action]);
-        if($debug) Debug.write("FUNC/loadContentByString -3- 
",lz[canvas[tempActionForNavi.action]]);
-        
-        new 
lz[canvas[tempActionForNavi.action]](canvas.main_content._content.inner, 
{params: tempActionForNavi.params});
-       }
-}    
-
-function clearStageContent(){
-    return canvas.main_content._content.clearAll();
-}
-
 function setLabelObject(labelObjRef){
     // if($debug) Debug.write("FUNC/setLabelObject",labelObjRef);
     labelObj = labelObjRef;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx
 Thu Aug 25 08:46:39 2016
@@ -84,9 +84,6 @@
         -->
         <attribute name="currentroomid" value="0" type="number" />
         
-        <!--- the current Invitation-Object -->
-        <attribute name="currentInvitation" value="null" />
-       
        <!-- shows what kind of conferenceView it is at the moment
                wether its conferenceView or audienceView -->
        <attribute name="modus" value="" type="string" />
@@ -156,15 +153,11 @@
                                canvas.thishib.loaderVar.setProgress();
                        }
                        getDefaultLanguage.doCall();
-               } else {
                        this.refreshDelegate = new LzDelegate(this, 
"refreshSessionMeth");
                        lz.Timer.addTimer(this.refreshDelegate, 
canvas.refreshSession);
                        if (canvas.thishib.loaderVar != null) {
                                canvas.thishib.loaderVar.setProgress();
                        }
-                       
-                       //Load Session Data
-                       this.getsessiondata.doCall();   
                }
                connected = true;
                client.roomConnect = this.roomConnect;
@@ -225,17 +218,6 @@
                        if ($debug) Debug.write("this.reconnectionAction: ", 
this.lastCalled);
                        this.connect();
                } else {
-                       if (canvas.isRemoteUser() && (this.status == 
'NetConnection.Connect.Closed' 
-                                       || this.status == 
'NetConnection.Connect.NetworkChange'))
-                       {
-                               if (null != 
canvas.REDIRECT_URL_FOR_EXTERNAL_USERS) {
-                                       new lz.redirectBox(canvas, {
-                                                       
redirectURL:canvas.REDIRECT_URL_FOR_EXTERNAL_USERS
-                                                       , maxTime: 0
-                                               });
-                               }
-                               this.counterror = 6; //NO more reconnects
-                       }
                        this.useRTMPT = true
                        var src = getUrl();
                        this.setAttribute('src',src);
@@ -268,26 +250,13 @@
        
        <!-- This Function is just for refreshing the Session -->
        <netRemoteCallHib name="refreshSession" 
funcname="userservice.refreshSession" showLoading="false" >     
-               <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>   
+               <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>
                <handler name="ondata" args="value">
                        //if ($debug) 
Debug.write("hibRtmpConnection/refreshSession [",value,"]");
                        lz.Timer.addTimer(parent.refreshDelegate, 
canvas.refreshSession);
                </handler>
        </netRemoteCallHib>
-         
-       <netRemoteCallHib name="getsessiondata" 
funcname="xmlcrm.getsessiondata" >        
-               <handler name="ondata" args="value">
-                       //The onResult-Handler will be called be the 
rtmpconnection
-                       if ($debug) 
Debug.write("hibRtmpConnection/getsessiondata [",value,"]");
-                       canvas.sessionObject = value;
-                       canvas.sessionId = value.sessionId;
-                       if (canvas.thishib.loaderVar != null) {
-                               canvas.thishib.loaderVar.setProgress();
-                       }
-                       parent.getPublicSID.doCall();
-               </handler>  
-       </netRemoteCallHib>
-        
+
        <netRemoteCallHib name="getPublicSID" funcname="getPublicSID" >   
                <handler name="ondata" args="value">
                        //The onResult-Handler will be called be the 
rtmpconnection
@@ -343,90 +312,8 @@
                                parent.userlang = canvas.language_id;
                        }
                        parent.getLanguageByIdAndMax.doCall();
-               </handler>  
-       </netRemoteCallHib>       
-       
-       <netRemoteCallHib name="getInvitationByHash" activeErrorHandler="true" 
funcname="invitationservice.getInvitationByHash">
-               <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>
-               <netparam name="invitationHash"><method name="getValue">return 
canvas.invitationHash;</method></netparam>
-               <handler name="ondata" args="value">
-               <![CDATA[
-                       if (canvas.thishib.loaderVar != null) {
-                               canvas.thishib.loaderVar.close();
-                       }
-                       //The onResult-Handler will be called be the 
rtmpconnection
-                       if ($debug) Debug.write("getInvitationByHash: ",value);
-                       if (value<0){
-                       } else {
-                               if (value.allowEntry) {
-                                       parent.currentInvitation = value;
-                                       new 
lz.invitationQuickLoader(canvas.main_content._content.inner);
-                               } else {
-                                       var addInfo = "" + value.validFrom 
+"<br/> - <br/>"+ value.validTo;
-                                       var dlg = new 
lz.rpcErrorDialog(canvas,{errorid:-50,addInfo:addInfo});
-                               }
-                       }
-               ]]>
                </handler>
-       </netRemoteCallHib> 
-       
-       <netRemoteCallHib name="secureLoginByRemote" activeErrorHandler="true" 
funcname="xmlcrm.secureLoginByRemote" >
-               <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>
-               <netparam name="remoteSessionId"><method name="getValue">return 
canvas.secureHash;</method></netparam>
-               <handler name="ondata" args="value">
-               <![CDATA[
-                       if (canvas.thishib.loaderVar != null) {
-                               canvas.thishib.loaderVar.close();
-                       }
-                       //The onResult-Handler will be called be the 
rtmpconnection
-                       if ($debug) Debug.write("secureLoginByRemote: ",value);
-                       if (value < 0) {
-                       } else {
-                               if (value == null) {
-                                       new 
lz.errorPopup(canvas,{error:'Invalid Hash'});
-                                       return;
-                               }
-                               
-                               canvas.showNickNameDialog = 
value.showNickNameDialog;
-                               if ($debug) Debug.write("secureLoginByRemote1: 
",canvas.showNickNameDialog);
-                               
-                               canvas.initroomid = value.roomId;
-                               canvas.becomemoderator = value.becomemoderator;
-                               canvas.showAudioVideoTest = 
value.showAudioVideoTest;
-                               
-                               canvas.roomRecordingId = value.roomRecordingId;
-                               
-                               if (canvas.roomRecordingId == null) {
-                                       canvas.roomRecordingId = 0;
-                               }
-                               
-                               if (canvas.showNickNameDialog) {
-                                       new lz.chooseNickName(canvas);
-                               } else {
-                                       parent.getCurrentRoomClient.doCall();
-                               }
-                       }
-               ]]>
-               </handler>
-       </netRemoteCallHib>  
-       
-       <netRemoteCallHib name="loginUserByRemote" activeErrorHandler="true" 
-               funcname="xmlcrm.loginUserByRemote" >             
-               <netparam name="remoteSessionId"><method name="getValue">return 
canvas.remoteUserSid;</method></netparam>
-               <handler name="ondata" args="value">
-                       <![CDATA[
-                               
-                               //The onResult-Handler will be called be the 
rtmpconnection
-                               if ($debug) Debug.write("loginUserByRemote -1-: 
",value);
-                               if ($debug) Debug.write("loginUserByRemote -2-: 
",canvas.remoteUserSid);
-                               if (value<0){
-                                       
-                               } else {
-                                       parent.getCurrentRoomClient.doCall();
-                               }
-                       ]]>
-               </handler>   
-       </netRemoteCallHib>  
+       </netRemoteCallHib>
        
        <netRemoteCallHib name="getCurrentRoomClient" 
funcname="xmlcrm.getCurrentRoomClient" >
                <netparam name="sessionId"><method name="getValue">return 
canvas.sessionId;</method></netparam>
@@ -449,10 +336,6 @@
                                canvas.setAttribute('lastName', lName);
                                canvas.setAttribute('mail', value.email);
                                
-                               if (canvas.isRemoteUser() && !fName && !lName) {
-                                       if ($debug) Debug.write("!!!!!!!!!!! 
Nickname HIB ", value.email);
-                                       new lz.chooseNickName(canvas);
-                               }
                                hib.userobject.id = value.userId;
                                hib.userobject.firstname = fName;
                                hib.userobject.lastname = lName;
@@ -460,45 +343,13 @@
                                canvas.setAttribute('lastLogin','');
                                
canvas.setAttribute('picture_uri',value.picture_uri);
                                canvas.setAttribute('language','');
-                               
-                               if (canvas.wicketroomid > 0) {
-                                       canvas.initroomid = canvas.wicketroomid;
-                               } else {
-                                       if (canvas.thishib.loaderVar != null) {
-                                               
canvas.thishib.loaderVar.close();
-                                       }
-                               }
-                               parent.getRoomById.doCall();
+                               canvas.setRoomValues(canvas.currentRoomObj);
                        }
                        if ($debug) Debug.write("getCurrentRoomClient: ", 
canvas.currentClient);
                ]]>
                </handler>
        </netRemoteCallHib>
-       
-       <netRemoteCallHib name="getRoomById" 
funcname="conferenceservice.getRoomById" >           
-               <netparam name="sessionId"><method name="getValue">return 
canvas.sessionId;</method></netparam>
-               <netparam name="roomId"><method name="getValue">return 
canvas.initroomid;</method></netparam>
-               <handler name="ondata" args="value">
-               <![CDATA[
-                       //The onResult-Handler will be called be the 
rtmpconnection
-                       if ($debug) Debug.write("getRoomById: ",value);
-                       if (value!=null){
-                               if (canvas.wicketsid != null) {
-                                       canvas.thishib.loaderVar.close();
-                               }
-                               if (canvas.directUserLogin) {
-                                       canvas.directRoomObj = value;
-                                       canvas.thishib.loaderVar.close();
-                               } else if (parent.currentInvitation == null) {
-                                       canvas.setRoomValues(value);
-                               }
-                       } else {
-                               new 
lz.labelerrorPopup(canvas,{errorlabelid:1286});
-                       }
-               ]]>
-               </handler>
-       </netRemoteCallHib>
-               
+
        <netRemoteCallHib name="getLanguageByIdAndMax" 
funcname="languageservice.getLanguageByIdAndMax" >
                <attribute name="start" value="0" type="number" />
                <attribute name="step" value="100" type="number" />
@@ -576,20 +427,6 @@
                        }
                        if (canvas.wicketsid != null) {
                                parent.loginWicket.doCall();
-                       } else { 
-                               if (canvas.thishib.loaderVar != null) {
-                                       canvas.thishib.loaderVar.close();
-                               }
-                               //do not show loggin-PopUp for the 
test-Application
-                               if (parent.testAppLoading){ 
-                                       canvas.loadNextStepTestApp();
-                               } else if (!!canvas.invitationHash) {
-                                       parent.getInvitationByHash.doCall();   
-                               } else if (canvas.secureRemoteUserLogin) {
-                                       if ($debug) 
Debug.write("secureLoginByRemote:: ",canvas.secureHash);
-                                       hib.userobject = {};
-                                       parent.secureLoginByRemote.doCall();
-                               }
                        }
                ]]>
                </handler>
@@ -602,26 +439,28 @@
                <![CDATA[
                        if ($debug) Debug.write("!!!!!!!!!!! loginWicket", 
value);
                        if (value != null) {
-                               canvas.setAttribute('userId', value.id);
-                               canvas.setAttribute('firstName', 
value.firstname == null ? "" : value.firstname);
-                               canvas.setAttribute('lastName', value.lastname 
== null ? "" : value.lastname);
+                               var user = value[0];
+                               canvas.setAttribute('userId', user.id);
+                               canvas.setAttribute('firstName', user.firstname 
== null ? "" : user.firstname);
+                               canvas.setAttribute('lastName', user.lastname 
== null ? "" : user.lastname);
                                canvas.setAttribute('mail','');
                                canvas.setAttribute('lastLogin','');
                                canvas.setAttribute('picture_uri','');
                                canvas.setAttribute('language','');
-                               canvas.setAttribute('currentuser',value.login);
-                               if (value.timeZoneId != null) {
-                                       canvas.timeZoneId = value.timeZoneId;
+                               canvas.setAttribute('currentuser', user.login);
+                               if (user.timeZoneId != null) {
+                                       canvas.timeZoneId = user.timeZoneId;
                                }
-                               if (value.rights != null) {
-                                       canvas.becomemoderator = 
value.rights.indexOf('Admin') > -1;
+                               if (user.rights != null) {
+                                       canvas.becomemoderator = 
user.rights.indexOf('Admin') > -1;
                                }
                                if ($debug) 
Debug.write("hibRtmpConnection::loginWicket -> canvas.becomemoderator", 
canvas.becomemoderator);
-                               if (value.sessionData == null) {
+                               if (user.sessionData == null) {
                                        if ($debug) Debug.write("No Language 
Found to assign");
                                        return;
                                }
-                               hib.userobject = value;
+                               hib.userobject = user;
+                               canvas.currentRoomObj = value[1];
                                parent.getCurrentRoomClient.doCall();
                        } else {
                                new lz.labelerrorPopup(canvas, {errorlabelid: 
1599});

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainAttributes.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainAttributes.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainAttributes.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainAttributes.lzx
 Thu Aug 25 08:46:39 2016
@@ -265,28 +265,12 @@ the LAST RoomClient Object that has been
 <attribute name="publicSID" value="" type="string" />
 
 <!--- attributes for direct room access -->
-<attribute name="initroomid" value="0" type="number" />
 <attribute name="initroomStr" value="" type="string" />
 <attribute name="initdomainid" value="" type="string" />
 <attribute name="initlangid" value="1" type="number" />
 <attribute name="isinitRoomDirect" value="false" type="boolean" />
 <attribute name="isinitRoomObject" value="null" /> 
 
-<!-- attributes for direct room access via direct link -->
-<attribute name="directUserLogin" value="false" type="boolean" />
-<attribute name="directRoomId" value="1" type="number" />
-<attribute name="directRoomObj" value="null" />
-
-<!--- attributes for direct room access via remoteUser -->
-<attribute name="remoteUserLogin" value="false" type="boolean" />
-<attribute name="remoteUserSid" value="" type="string" />
-
-<!--- attributes for direct room access via remoteUser
-    This is using the advanced methods to prevent abuse
- -->
-<attribute name="secureRemoteUserLogin" value="false" type="boolean" />
-<attribute name="secureHash" value="" type="string" />
-
 <!-- Attributes for wicket login (since it hard not to break anything)-->
 <attribute name="wicketsid" type="string" value="null"/>
 <attribute name="wicketroomid" type="number" value="0"/>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
 Thu Aug 25 08:46:39 2016
@@ -168,23 +168,6 @@
                        this.setAttribute('rtmphostlocal',server);
                }
                
-               //Check for Invitation
-               var invitationHash = lz.Browser.getInitArg('invitationHash');
-               
-               if ($debug) Debug.info("###################### -1 ");
-               if ($debug) Debug.info("invitationHash :: ",invitationHash);
-               
-               if (invitationHash != undefined){
-                       canvas.isinitRoomDirect = true;
-                       canvas.invitationHash = invitationHash;
-               }
-               
-               var secureHash = lz.Browser.getInitArg('secureHash');
-               if (secureHash != undefined){
-                       canvas.secureRemoteUserLogin = true;
-                       canvas.secureHash = secureHash;
-               }
-               
                if ($debug) Debug.info("###################### -2 ");
                
                var language = lz.Browser.getInitArg('language');
@@ -292,6 +275,7 @@
                        hib.currentroomid = roomObj.id;
                        canvas.isConference = roomObj.type == 'conference';
                        canvas.isInterview = roomObj.type == 'interview';
+                       canvas.main_content.setAttribute('visible', true);
                
                        if (roomObj.type == 'conference') {
                                new 
lz.flexibleConferenceRoom(canvas.main_content._content.inner, 
{roomobj:roomObj});
@@ -299,7 +283,7 @@
                                new 
lz.restrictedConferenceRoom(canvas.main_content._content.inner, 
{roomobj:roomObj});
                        } else if (roomObj.type == 'interview') {
                                new 
lz.interviewConferenceRoom(canvas.main_content._content.inner, 
{roomobj:roomObj});
-                       } 
+                       }
                }
        ]]>
        </method>
@@ -588,10 +572,6 @@
                return value == null ? '' : value;
        </method>
        
-       <method name="isRemoteUser" args="">
-               return canvas.isinitRoomDirect || canvas.remoteUserLogin || 
canvas.directUserLogin || canvas.secureRemoteUserLogin;
-       </method>
-       
        <method name="loadImgBySrc" args="cmp, imgUrl, completeCallback">
                cmp.sprite.resource = imgUrl;
                if (!cmp.sprite.imgLoader) {

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/flexibleConferenceRoom/roomSidebar/baseRoomSidebar.lzx
 Thu Aug 25 08:46:39 2016
@@ -30,7 +30,7 @@
                //set reference, this reference will be cleared at 
*ontabcontenctleave* event
                canvas._videocontainer = this;
                
-               this.getRoomModeratorsByRoomId.doCall();
+               setRoomModerators();
        </handler>
 
        <view name="_filearea" x="0" y="0" height="${ parent.height }" 
width="1">
@@ -41,41 +41,35 @@
                </handler>
        </view>
 
-       <netRemoteCallHib name="getRoomModeratorsByRoomId" 
funcname="conferenceservice.getRoomModeratorsByRoomId"
-                                         remotecontext="$once{ canvas.thishib 
}" >  
-               <netparam><method name="getValue">return 
canvas.sessionId;</method></netparam>  
-               <netparam><method name="getValue">return 
hib.currentroomid;</method></netparam>
-               <handler name="ondata" args="value">
-               <![CDATA[
-                       if ($debug) Debug.write("getRoomModeratorsByRoomId: 
",value);
-                       canvas.becomeSuperModerator = false;
-                       
-                       parent.setRoomValues.applyDefaultModeration = 
canvas.becomemoderator;
-                       canvas.becomeSuperModerator = canvas.becomemoderator;
-                       
-                       if (!canvas.becomeSuperModerator) {
-                               for (var i=0;i<value.length;i++) {
-                                       
-                                       if (value[i].user.userId == 
canvas.userId) {
-                                               
parent.setRoomValues.applyDefaultModeration = true;
-                                               canvas.becomeSuperModerator = 
value[i].isSuperModerator;
-                                               if ($debug) Debug.info("Make 
this User to an Moderator");
-                                               break;
-                                       }
-                                       
+       <method name="setRoomModerators">
+       <![CDATA[
+               var moders = canvas.currentRoomObj.moderators;
+               if ($debug) Debug.write("getRoomModeratorsByRoomId: ", moders);
+               canvas.becomeSuperModerator = false;
+               
+               this.setRoomValues.applyDefaultModeration = 
canvas.becomemoderator;
+               canvas.becomeSuperModerator = canvas.becomemoderator;
+               
+               if (!canvas.becomeSuperModerator) {
+                       for (var i = 0; i < moders.length; ++i) {
+                               if (moders[i].user.id == canvas.userId) {
+                                       
this.setRoomValues.applyDefaultModeration = true;
+                                       canvas.becomeSuperModerator = 
moders[i].superModerator;
+                                       if ($debug) Debug.info("Make this User 
to an Moderator");
+                                       break;
                                }
                        }
-                       
-                       if ($debug) Debug.write("canvas.becomemoderator: 
",canvas.becomemoderator);
-                       if ($debug) Debug.write("canvas.becomeSuperModerator: 
",canvas.becomeSuperModerator);
-                       
-                       canvas.currentusercolor = canvas.getColorForUser();
-                       
-                       if ($debug) Debug.write(hib.userobject); 
-                       this.parent.setRoomValues.doCall();
-               ]]>
-               </handler>
-       </netRemoteCallHib>      
+               }
+               
+               if ($debug) Debug.write("canvas.becomemoderator: ", 
canvas.becomemoderator);
+               if ($debug) Debug.write("canvas.becomeSuperModerator: ", 
canvas.becomeSuperModerator);
+               
+               canvas.currentusercolor = canvas.getColorForUser();
+               
+               if ($debug) Debug.write(hib.userobject); 
+               this.setRoomValues.doCall();
+       ]]>
+       </method>
 
        <netRemoteCallHib name="setRoomValues" funcname="setRoomValues" 
remotecontext="$once{ canvas.thishib }" >   
                <attribute name="applyDefaultModeration" value="false" 
type="boolean" />
@@ -87,8 +81,8 @@
                <handler name="ondata" args="roomStatus">
                <![CDATA[
                        //The onResult-Handler will be called be the 
rtmpconnection
-                       if ($debug) Debug.write("setRoomValues1: ",value);
-                       //if ($debug) Debug.write("setRoomValues2: 
",hib.currentroomid);
+                       if ($debug) Debug.write("setRoomValues1: ", roomStatus);
+                       //if ($debug) Debug.write("setRoomValues2: ", 
hib.currentroomid);
                        
                        //if ($debug) Debug.write("+++++++++++++++++ 
getClientListScope : ",value);
                        

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/library.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/library.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/library.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/conference/popups/library.lzx
 Thu Aug 25 08:46:39 2016
@@ -25,7 +25,7 @@
        Creative Commons 3.0
         -->
        <resource name="warning_icon_rsc" src="resources/error.png" />
-    
+
     <include href="rpcerrorDialog.lzx" />
     <include href="errorPopup.lzx" />
     <include href="messageWin.lzx" />
@@ -37,7 +37,5 @@
     <include href="errorModeratorPopup.lzx" />
     <include href="syncWin.lzx" />
     <include href="incomingScreenSharing.lzx" />
-    <include href="redirectBox.lzx" />
-    <include href="chooseNickName.lzx" />
-    
+
 </library>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/library.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/library.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/library.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/modules/library.lzx
 Thu Aug 25 08:46:39 2016
@@ -21,7 +21,6 @@
 <library>
        
        <include href="conference/" />
-       <include href="invitation/" />
-    <include href="sipintegration/" />
+       <include href="sipintegration/" />
        <include href="lzrecordcontent" />
 </library>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/videoUserProfilePicSWF10.lzx
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/videoUserProfilePicSWF10.lzx?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/videoUserProfilePicSWF10.lzx
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/video/videoUserProfilePicSWF10.lzx
 Thu Aug 25 08:46:39 2016
@@ -21,13 +21,13 @@
 <library>
 
 <class name="videoUserProfilePicSWF10" extends="view" x="1" y="2" 
width="${parent.width-2}" height="${parent.height-3}" 
-          clip="true" bgcolor="white">
+               clip="true" bgcolor="white">
        <attribute name="value" value="null" />
                
        <handler name="oninit">
        <![CDATA[
                var extra = value.sipTransport ? 
"&parentPath=../default&moduleName=videoconf1"
-                       : 
'&parentPath=&moduleName=remoteuserprofile&remoteUserid='+this.value.userId;
+                       : '&parentPath=&remoteUserid='+this.value.userId;
 
                this._userpic.setAttribute('src', 
canvas.getPictureUrl(value.picture_uri, extra));
        ]]>

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 Thu Aug 25 08:46:39 2016
@@ -162,7 +162,7 @@ public class UserManager implements IUse
 
        @Override
        public Long logout(String SID, long userId) {
-               sessionDao.updateUser(SID, null, false, 0);
+               sessionDao.updateUser(SID, null);
                return -12L;
        }
 

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 Thu Aug 25 08:46:39 2016
@@ -242,9 +242,11 @@ public class WebSession extends Abstract
                                                
//soapLogin.setClientURL(clientURL); //FIXME
                                                soapDao.update(soapLogin);
                                        }
-                                       sessionDao.updateUser(SID, 
user.getId());
-                                       setUser(user, null);
                                        roomId = soapLogin.getRoomId();
+                                       sd.setUserId(user.getId());
+                                       sd.setRoomId(roomId);
+                                       sessionDao.update(sd);
+                                       setUser(user, null);
                                        recordingId = 
soapLogin.getRecordingId();
                                        return true;
                                }
@@ -316,8 +318,6 @@ public class WebSession extends Abstract
        }
        
        public boolean signIn(User u) {
-               Sessiondata sessData = getBean(SessiondataDao.class).create();
-               SID = sessData.getSessionId();
                if (u == null) {
                        return false;
                }
@@ -354,16 +354,12 @@ public class WebSession extends Abstract
        public String getValidatedSid() {
                SessiondataDao sessionDao = getBean(SessiondataDao.class);
                Sessiondata sd = sessionDao.check(SID);
+               //TODO need to check roomId equality
                if (sd.getUserId() == null || !sd.getUserId().equals(userId)) {
                        if (sd.getId() == null) {
-                               sd = sessionDao.create();
-                       }
-                       if (!sessionDao.updateUser(sd.getSessionId(), userId, 
false, languageId)) {
-                               //something bad, force user to re-login
-                               invalidate();
-                       } else {
-                               SID = sd.getSessionId();
+                               sd = sessionDao.create(userId, roomId, 
languageId);
                        }
+                       SID = sd.getSessionId();
                }
                return SID;
        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
 Thu Aug 25 08:46:39 2016
@@ -77,7 +77,6 @@
        <!-- Start of Services -->
        <bean id="xmlcrm.service" 
class="org.apache.openmeetings.core.remote.MainService" />
        <bean id="languageservice.service" 
class="org.apache.openmeetings.core.remote.LanguageService" />
-       <bean id="invitationservice.service" 
class="org.apache.openmeetings.core.remote.InvitationService" />
        <bean id="whiteboardservice.service" 
class="org.apache.openmeetings.core.remote.WhiteBoardService" />
        <bean id="userservice.service" 
class="org.apache.openmeetings.core.remote.UserService" />
        <bean id="fileservice.service" 
class="org.apache.openmeetings.core.remote.ConferenceLibrary" />

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/invitiation/TestInvitation.java
 Thu Aug 25 08:46:39 2016
@@ -18,33 +18,44 @@
  */
 package org.apache.openmeetings.test.invitiation;
 
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import static org.apache.openmeetings.util.CalendarHelper.getDate;
 
-import org.apache.openmeetings.core.remote.InvitationService;
+import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
+import org.apache.openmeetings.db.entity.room.Invitation;
+import org.apache.openmeetings.db.entity.room.Invitation.MessageType;
+import org.apache.openmeetings.db.entity.room.Invitation.Valid;
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.openmeetings.service.room.InvitationManager;
 import org.apache.openmeetings.test.AbstractJUnitDefaults;
 import org.apache.openmeetings.webservice.UserWebService;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.threeten.bp.LocalDateTime;
 
 public class TestInvitation extends AbstractJUnitDefaults {
        @Autowired
-       private InvitationService invitationService;
+       private InvitationManager invitationManager;
        @Autowired
        private UserWebService userWebService;
        @Autowired
        private UserDao userDao;
-       
+       @Autowired
+       private RoomDao roomDao;
+
        @Test
-       public void testSendInvitationLink() {
+       public void testSendInvitationLink() throws Exception {
                ServiceResult result = userWebService.login(username, userpass);
                User us = userDao.get(result.getCode());
                
-               String date = new SimpleDateFormat("dd.MM.yyyy").format(new 
Date());
-               invitationService.sendInvitationHash(result.getMessage(), 
"Testname", "Testlastname", "message", "[email protected]", 
-                               "subject", 1L, "", false, "", 1, date, "12:00", 
date, "14:00", 1L, us.getTimeZoneId(), true);
+               LocalDateTime from = 
LocalDateTime.now().plusDays(1).withHour(12).withMinute(0).withSecond(0);
+               User invitee = userDao.getContact("[email protected]", 
"Testname", "Testlastname", us.getId());
+               Invitation i = invitationManager.getInvitation(invitee, 
roomDao.get(1L),
+                               false, "", Valid.OneTime
+                               , us, us.getLanguageId(),
+                               getDate(from, "GMT"), 
getDate(from.plusHours(2), "GMT"), null);
+               
+               invitationManager.sendInvitationLink(i, MessageType.Create, 
"subject", "message", false);
        }
 }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/userdata/TestAuth.java
 Thu Aug 25 08:46:39 2016
@@ -31,7 +31,7 @@ public class TestAuth extends AbstractJU
 
        @Test
        public void testTestAuth() {
-               Sessiondata sessionData = sessionDao.create();
+               Sessiondata sessionData = sessionDao.create(1L, 1L);
 
                System.out.println("sessionData: " + 
sessionData.getSessionId());
 

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Thu Aug 25 08:46:39 2016
@@ -108,12 +108,8 @@ public class UserWebService implements U
                                return new ServiceResult(-1L, "Login failed", 
Type.ERROR);
                        }
                        
-                       Sessiondata sd = sessionDao.create();
+                       Sessiondata sd = sessionDao.create(u.getId(), 
u.getLanguageId());
                        log.debug("Login user SID : " + sd.getSessionId());
-                       if (!sessionDao.updateUser(sd.getSessionId(), 
u.getId(), false, u.getLanguageId())) {
-                               return new ServiceResult(-35L, "invalid 
Session-Object", Type.ERROR);
-                       }
-                       
                        return new ServiceResult(u.getId(), sd.getSessionId(), 
Type.SUCCESS);
                } catch (OmException oe) {
                        return new ServiceResult(oe.getCode() == null ? -1 : 
oe.getCode(), oe.getMessage(), Type.ERROR);

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ConferenceService.java
 Thu Aug 25 08:46:39 2016
@@ -274,12 +274,4 @@ public class ConferenceService {
                }
                return null;
        }
-
-       public Room getRoomById(String sid, Long roomId) {
-               Sessiondata sd = sessionDao.check(sid);
-               if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-                       return roomDao.get(roomId);
-               }
-               return null;
-       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
 Thu Aug 25 08:46:39 2016
@@ -22,9 +22,8 @@ import static org.apache.openmeetings.ut
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY;
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SIP_ENABLED;
 
-import java.util.Date;
+import java.util.Arrays;
 import java.util.List;
-import java.util.Locale;
 import java.util.Set;
 
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
@@ -34,7 +33,6 @@ import org.apache.openmeetings.db.dao.ca
 import org.apache.openmeetings.db.dao.log.ConferenceLogDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
-import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -45,18 +43,13 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.RoomGroup;
-import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
-import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
-import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.Userdata;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
-import org.apache.openmeetings.db.util.TimezoneUtil;
 import org.apache.openmeetings.util.OpenmeetingsVariables;
-import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.api.IConnection;
 import org.red5.server.api.Red5;
@@ -91,10 +84,6 @@ public class MainService implements IPen
        private RoomDao roomDao;
        @Autowired
        private AppointmentDao appointmentDao;
-       @Autowired
-       private SOAPLoginDao soapLoginDao;
-       @Autowired
-       private TimezoneUtil timezoneUtil;
 
        // External User Types
        public static final String EXTERNAL_USER_TYPE_LDAP = "LDAP";
@@ -135,25 +124,6 @@ public class MainService implements IPen
                return null;
        }
 
-       /**
-        * load this session id before doing anything else
-        * 
-        * @return a unique session identifier
-        */
-       public Sessiondata getsessiondata() {
-               return sessionDao.create();
-       }
-
-       public Long setCurrentUserGroup(String SID, Long groupId) {
-               try {
-                       sessionDao.updateUserGroup(SID, groupId);
-                       return 1L;
-               } catch (Exception err) {
-                       log.error("[setCurrentUserGroup]", err);
-               }
-               return -1L;
-       }
-
        public boolean isRoomAllowedToUser(Room r, User u) {
                boolean allowed = false;
                if (r != null) {
@@ -202,19 +172,20 @@ public class MainService implements IPen
                return allowed;
        }
        
-       public User loginWicket(String wicketSID, Long wicketroomid) {
+       public List<Object> loginWicket(String wicketSID, Long wicketroomid) {
                log.debug("[loginWicket] wicketSID: '{}'; wicketroomid: '{}'", 
wicketSID, wicketroomid);
                Sessiondata sd = sessionDao.check(wicketSID);
                Long userId = sd.getUserId();
                User u = userId == null ? null : userDao.get(userId);
-               if (u != null && wicketroomid != null) {
+               Room r = roomDao.get(wicketroomid);
+               if (u != null && r != null) {
                        log.debug("[loginWicket] user and roomid are not empty: 
" + userId + ", " + wicketroomid);
-                       if (isRoomAllowedToUser(roomDao.get(wicketroomid), u)) {
+                       if (wicketroomid.equals(sd.getRoomId()) || 
isRoomAllowedToUser(r, u)) {
                                IConnection current = Red5.getConnectionLocal();
                                String streamId = current.getClient().getId();
                                Client currentClient = 
sessionManager.getClientByStreamId(streamId, null);
                                
-                               if (!u.getGroupUsers().isEmpty()) {
+                               if (User.Type.user != u.getType() || 
(User.Type.user == u.getType() && !u.getGroupUsers().isEmpty())) {
                                        u.setSessionData(sd);
                                        currentClient.setUserId(u.getId());
                                        currentClient.setRoomId(wicketroomid);
@@ -229,90 +200,12 @@ public class MainService implements IPen
                                        
                                        
scopeApplicationAdapter.sendMessageToCurrentScope("roomConnect", currentClient, 
false);
                                        
-                                       return u;
+                                       return Arrays.<Object>asList(u, r);
                                }
                        }
                }
                return null;
        }
-       
-       public Object secureLoginByRemote(String SID, String secureHash) {
-               try {
-                       log.debug("############### secureLoginByRemote " + 
secureHash);
-
-                       String clientURL = 
Red5.getConnectionLocal().getRemoteAddress();
-
-                       log.debug("swfURL " + clientURL);
-
-                       SOAPLogin soapLogin = soapLoginDao.get(secureHash);
-                       if (soapLogin == null) {
-                               log.warn("Unable to find login by hash: {}" + 
secureHash);
-                               return -1L;
-                       }
-
-                       if (soapLogin.isUsed()) {
-                               if (soapLogin.getAllowSameURLMultipleTimes()) {
-                                       if 
(!soapLogin.getClientURL().equals(clientURL)) {
-                                               log.debug("does not equal " + 
clientURL);
-                                               return -42L;
-                                       }
-                               } else {
-                                       log.debug("Already used " + secureHash);
-                                       return -42L;
-                               }
-                       }
-
-                       Long loginReturn = 
loginUserByRemote(soapLogin.getSessionHash());
-
-                       IConnection current = Red5.getConnectionLocal();
-                       String streamId = current.getClient().getId();
-                       Client currentClient = 
sessionManager.getClientByStreamId(streamId, null);
-
-                       if (currentClient.getUserId() != null) {
-                               sessionDao.updateUser(SID, 
currentClient.getUserId());
-                       }
-
-                       
currentClient.setAllowRecording(soapLogin.isAllowRecording());
-                       sessionManager.updateClientByStreamId(streamId, 
currentClient, false, null);
-
-                       if (loginReturn == null) {
-                               log.debug("loginReturn IS NULL for SID: " + 
soapLogin.getSessionHash());
-
-                               return -1L;
-                       } else if (loginReturn < 0) {
-                               log.debug("loginReturn IS < 0 for SID: " + 
soapLogin.getSessionHash());
-
-                               return loginReturn;
-                       } else {
-
-                               soapLogin.setUsed(true);
-                               soapLogin.setUseDate(new Date());
-
-                               soapLogin.setClientURL(clientURL);
-
-                               soapLoginDao.update(soapLogin);
-
-                               // Create Return Object and hide the validated
-                               // sessionHash that is stored server side
-                               // this hash should be never thrown back to the 
user
-
-                               SOAPLogin returnSoapLogin = new SOAPLogin();
-
-                               
returnSoapLogin.setRoomId(soapLogin.getRoomId());
-                               
returnSoapLogin.setBecomemoderator(soapLogin.isBecomemoderator());
-                               
returnSoapLogin.setShowAudioVideoTest(soapLogin.getShowAudioVideoTest());
-                               
returnSoapLogin.setRecordingId(soapLogin.getRecordingId());
-                               
returnSoapLogin.setShowNickNameDialog(soapLogin.getShowNickNameDialog());
-                               
returnSoapLogin.setLandingZone(soapLogin.getLandingZone());
-
-                               return returnSoapLogin;
-                       }
-
-               } catch (Exception err) {
-                       log.error("[secureLoginByRemote]", err);
-               }
-               return null;
-       }
 
        /**
         * Function is called if the user loggs in via a secureHash and sets the
@@ -350,91 +243,6 @@ public class MainService implements IPen
        }
 
        /**
-        * Attention! This SID is NOT the default session id! its the Session id
-        * retrieved in the call from the SOAP Gateway!
-        * 
-        * @param sid
-        * @return - 1 in case of success, -1 otherwise
-        */
-       public Long loginUserByRemote(String sid) {
-               try {
-                       Sessiondata sd = sessionDao.check(sid);
-                       if 
(AuthLevelUtil.hasUserLevel(userDao.getRights(sd.getUserId()))) {
-                               if (sd.getXml() == null) {
-                                       return -37L;
-                               } else {
-                                       RemoteSessionObject userObject = 
RemoteSessionObject.fromXml(sd.getXml());
-                                       if (userObject == null) {
-                                               log.warn("Failed to get user 
object by XML");
-                                               return -1L;
-                                       }
-
-                                       log.debug(userObject.toString());
-
-                                       IConnection current = 
Red5.getConnectionLocal();
-                                       String streamId = 
current.getClient().getId();
-                                       Client currentClient = 
sessionManager.getClientByStreamId(streamId, null);
-
-                                       // Check if this User is simulated in 
the OpenMeetings
-                                       // Database
-
-                                       if 
(!Strings.isEmpty(userObject.getExternalUserId())) {
-                                               // If so we need to check that 
we create this user in
-                                               // OpenMeetings and update its 
record
-
-                                               User user = 
userDao.getExternalUser(userObject.getExternalUserId(), 
userObject.getExternalUserType());
-
-                                               if (user == null) {
-                                                       String iCalTz = 
configurationDao.getConfValue("default.timezone", String.class, "");
-
-                                                       Address a = 
userDao.getAddress(null, null, null, Locale.getDefault().getCountry(), null, 
null, null, userObject.getEmail());
-
-                                                       Set<Right> rights = 
UserDao.getDefaultRights();
-                                                       
rights.remove(Right.Login);
-                                                       
rights.remove(Right.Dashboard);
-                                                       User u = 
userDao.addUser(rights, userObject.getFirstname(), userObject.getUsername(),
-                                                                               
        userObject.getLastname(), 1L, "" // password is empty by default
-                                                                               
        , a, false, null, null, timezoneUtil.getTimeZone(iCalTz), false
-                                                                               
        , null, null, false, false, userObject.getExternalUserId()
-                                                                               
        , userObject.getExternalUserType(), null, userObject.getPictureUrl());
-
-                                                       long userId = u.getId();
-                                                       
currentClient.setUserId(userId);
-                                                       
SessionVariablesUtil.setUserId(current.getClient(), userId);
-                                               } else {
-                                                       
user.setPictureuri(userObject.getPictureUrl());
-
-                                                       userDao.update(user, 
sd.getUserId());
-
-                                                       
currentClient.setUserId(user.getId());
-                                                       
SessionVariablesUtil.setUserId(current.getClient(), user.getId());
-                                               }
-                                       }
-
-                                       
log.debug("userObject.getExternalUserId() -2- " + currentClient.getUserId());
-
-                                       
currentClient.setUserObject(userObject.getUsername(), 
userObject.getFirstname(), userObject.getLastname());
-                                       
currentClient.setPicture_uri(userObject.getPictureUrl());
-                                       
currentClient.setEmail(userObject.getEmail());
-
-                                       log.debug("UPDATE USER BY STREAMID " + 
streamId);
-
-                                       if (currentClient.getUserId() != null) {
-                                               sessionDao.updateUser(sid, 
currentClient.getUserId());
-                                       }
-
-                                       
sessionManager.updateClientByStreamId(streamId, currentClient, false, null);
-
-                                       return 1L;
-                               }
-                       }
-               } catch (Exception err) {
-                       log.error("[loginUserByRemote] ", err);
-               }
-               return -1L;
-       }
-
-       /**
         * clear this session id
         * 
         * @param sid

Modified: 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
 Thu Aug 25 08:46:39 2016
@@ -188,40 +188,34 @@ public class MobileService {
        
        private Map<String, Object> login(User u, Map<String, Object> result) {
                if (u != null) {
-                       Sessiondata sd = sessionDao.create();
-                       boolean bool = sessionDao.updateUser(sd.getSessionId(), 
u.getId(), false, u.getLanguageId());
-                       if (!bool) {
-                               // invalid Session-Object
-                               result.put("status", -35);
+                       Sessiondata sd = sessionDao.create(u.getId(), 
u.getLanguageId());
+                       IConnection conn = Red5.getConnectionLocal();
+                       String streamId = conn.getClient().getId();
+                       Client c = sessionManager.getClientByStreamId(streamId, 
null);
+                       if (c == null) {
+                               c = sessionManager.addClientListItem(streamId, 
conn.getScope().getName(), conn.getRemotePort(),
+                                       conn.getRemoteAddress(), "", null);
+                       }
+                       if (c == null) {
+                               // Failed to create client
+                               result.put("status", -1);
                        } else {
-                               IConnection conn = Red5.getConnectionLocal();
-                               String streamId = conn.getClient().getId();
-                               Client c = 
sessionManager.getClientByStreamId(streamId, null);
-                               if (c == null) {
-                                       c = 
sessionManager.addClientListItem(streamId, conn.getScope().getName(), 
conn.getRemotePort(),
-                                               conn.getRemoteAddress(), "", 
null);
-                               }
-                               if (c == null) {
-                                       // Failed to create client
-                                       result.put("status", -1);
-                               } else {
-                                       
SessionVariablesUtil.initClient(conn.getClient(), c.getPublicSID());
-                                       c.setUserId(u.getId());
-                                       c.setFirstname(u.getFirstname());
-                                       c.setLastname(u.getLastname());
-                                       c.setMobile(true);
-                                       
sessionManager.updateClientByStreamId(streamId, c, false, null);
-       
-                                       add(result, "sid", sd.getSessionId());
-                                       add(result, "publicSid", 
c.getPublicSID());
-                                       add(result, "status", 0);
-                                       add(result, "userId", u.getId());
-                                       add(result, "firstname", 
u.getFirstname());
-                                       add(result, "lastname", 
u.getLastname());
-                                       add(result, "login", u.getLogin());
-                                       add(result, "email", u.getAddress() == 
null ? "" : u.getAddress().getEmail());
-                                       add(result, "language", 
u.getLanguageId()); //TODO rights
-                               }
+                               
SessionVariablesUtil.initClient(conn.getClient(), c.getPublicSID());
+                               c.setUserId(u.getId());
+                               c.setFirstname(u.getFirstname());
+                               c.setLastname(u.getLastname());
+                               c.setMobile(true);
+                               sessionManager.updateClientByStreamId(streamId, 
c, false, null);
+
+                               add(result, "sid", sd.getSessionId());
+                               add(result, "publicSid", c.getPublicSID());
+                               add(result, "status", 0);
+                               add(result, "userId", u.getId());
+                               add(result, "firstname", u.getFirstname());
+                               add(result, "lastname", u.getLastname());
+                               add(result, "login", u.getLogin());
+                               add(result, "email", u.getAddress() == null ? 
"" : u.getAddress().getEmail());
+                               add(result, "language", u.getLanguageId()); 
//TODO rights
                        }
                }
                return result;

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
 Thu Aug 25 08:46:39 2016
@@ -59,15 +59,33 @@ public class SessiondataDao {
 
                return sd;
        }
-       
+
        /**
         * creates a new session-object in the database
         * 
-        * @return created Sessiondata with random UID
+        * @param userId the id of the user to be set on this session
+        * @param languageId language id to be set on this session
+        * @return newly create {@link Sessiondata}
         */
-       public Sessiondata create() {
+       public Sessiondata create(Long userId, long languageId) {
+               return create(userId, null, languageId);
+       }
+
+       /**
+        * creates a new session-object in the database
+        * 
+        * @param userId the id of the user to be set on this session
+        * @param roomId the id of the room to be set on this session
+        * @param languageId language id to be set on this session
+        * @return newly create {@link Sessiondata}
+        */
+       public Sessiondata create(Long userId, Long roomId, long languageId) {
                log.debug("create :: create");
-               return update(newInstance());
+               Sessiondata sd = newInstance();
+               sd.setUserId(userId);
+               sd.setRoomId(roomId);
+               sd.setLanguageId(languageId);
+               return update(sd);
        }
 
        /**
@@ -75,17 +93,28 @@ public class SessiondataDao {
         * @param SID
         * @return
         */
-       public Sessiondata check(String SID) {
+       public Sessiondata find(String SID) {
                List<Sessiondata> sessions = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID).getResultList();
 
                Sessiondata sd = null;
                if (sessions != null && sessions.size() > 0) {
                        sd = sessions.get(0);
+                       if (sd == null || sd.getUserId() == null || 
sd.getUserId().equals(new Long(0))) {
+                               return null;
+                       }
                }
+               return sd;
+       }
 
-               // Checks if wether the Session or the User Object of that 
Session
-               // is set yet
-               if (sd == null || sd.getUserId() == null || 
sd.getUserId().equals(new Long(0))) {
+       /**
+        * 
+        * @param SID
+        * @return
+        */
+       public Sessiondata check(String SID) {
+               Sessiondata sd = find(SID);
+               // Checks if wether the Session or the User Object of that 
Session is set yet
+               if (sd == null) {
                        return newInstance();
                }
                return update(sd);
@@ -102,42 +131,7 @@ public class SessiondataDao {
                try {
                        log.debug("updateUser User: " + userId + " || " + SID);
 
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
-                       if (sd == null) {
-                               log.error("Could not find session to Update");
-                               return false;
-                       }
-                       log.debug("Found session to update: {}, userId: {}", 
sd.getSessionId(), userId);
-
-                       sd.setUserId(userId);
-                       update(sd);
-                       return true;
-               } catch (Exception ex2) {
-                       log.error("[updateUser]: ", ex2);
-               }
-               return false;
-       }
-
-       public boolean updateUser(String SID, Long userId, boolean permanent, 
long languageId) {
-               try {
-                       log.debug("updateUser User: " + userId + " || " + SID);
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
+                       Sessiondata sd = find(SID);
                        if (sd == null) {
                                log.error("Could not find session to Update");
                                return false;
@@ -145,36 +139,6 @@ public class SessiondataDao {
                        log.debug("Found session to update: {}, userId: {}", 
sd.getSessionId(), userId);
 
                        sd.setUserId(userId);
-                       sd.setPermanent(permanent);
-                       sd.setLanguageId(languageId);
-                       update(sd);
-
-                       return true;
-               } catch (Exception ex2) {
-                       log.error("[updateUser]: ", ex2);
-               }
-               return false;
-       }
-
-       public boolean updateUserGroup(String SID, Long groupId) {
-               try {
-                       log.debug("updateUserGroup User: " + groupId + " || " + 
SID);
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
-                       if (sd == null) {
-                               log.error("Could not find session to Update");
-                               return false;
-                       }
-                       log.debug("Found session to update: {}, groupId: {}", 
sd.getSessionId(), groupId);
-
-                       sd.setGroupId(groupId);
                        update(sd);
                        return true;
                } catch (Exception ex2) {
@@ -186,15 +150,7 @@ public class SessiondataDao {
        public boolean updateUserWithoutSession(String SID, Long userId) {
                try {
                        log.debug("updateUser User: " + userId + " || " + SID);
-                       TypedQuery<Sessiondata> query = 
em.createNamedQuery("getSessionById", 
Sessiondata.class).setParameter("sessionId", SID);
-
-                       List<Sessiondata> sessions = query.getResultList();
-
-                       Sessiondata sd = null;
-                       if (sessions != null && sessions.size() > 0) {
-                               sd = sessions.get(0);
-                       }
-
+                       Sessiondata sd = find(SID);
                        if (sd == null) {
                                log.error("Could not find session to Update");
                                return false;

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
 Thu Aug 25 08:46:39 2016
@@ -49,6 +49,9 @@ public class Sessiondata implements Seri
        @Column(name = "user_id")
        private Long userId;
 
+       @Column(name = "room_id")
+       private Long roomId;
+
        @Column(name = "session_id")
        private String sessionId;
 
@@ -68,9 +71,6 @@ public class Sessiondata implements Seri
        @Column(name = "language_id")
        private long languageId;
 
-       @Column(name = "group_id")
-       private Long groupId;
-
        public Sessiondata() {
        }
 
@@ -114,6 +114,14 @@ public class Sessiondata implements Seri
                this.userId = userId;
        }
 
+       public Long getRoomId() {
+               return roomId;
+       }
+
+       public void setRoomId(Long roomId) {
+               this.roomId = roomId;
+       }
+
        public String getXml() {
                return xml;
        }
@@ -137,13 +145,4 @@ public class Sessiondata implements Seri
        public void setLanguageId(long languageId) {
                this.languageId = languageId;
        }
-
-       public Long getGroupId() {
-               return groupId;
-       }
-
-       public void setGroupId(Long groupId) {
-               this.groupId = groupId;
-       }
-
 }

Modified: 
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
 Thu Aug 25 08:46:39 2016
@@ -162,7 +162,7 @@ public class UserManager implements IUse
 
        @Override
        public Long logout(String SID, long userId) {
-               sessionDao.updateUser(SID, null, false, 0);
+               sessionDao.updateUser(SID, null);
                return -12L;
        }
 

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1757626&r1=1757625&r2=1757626&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
 Thu Aug 25 08:46:39 2016
@@ -242,9 +242,11 @@ public class WebSession extends Abstract
                                                
//soapLogin.setClientURL(clientURL); //FIXME
                                                soapDao.update(soapLogin);
                                        }
-                                       sessionDao.updateUser(SID, 
user.getId());
-                                       setUser(user, null);
                                        roomId = soapLogin.getRoomId();
+                                       sd.setUserId(user.getId());
+                                       sd.setRoomId(roomId);
+                                       sessionDao.update(sd);
+                                       setUser(user, null);
                                        recordingId = 
soapLogin.getRecordingId();
                                        return true;
                                }
@@ -316,8 +318,6 @@ public class WebSession extends Abstract
        }
        
        public boolean signIn(User u) {
-               Sessiondata sessData = getBean(SessiondataDao.class).create();
-               SID = sessData.getSessionId();
                if (u == null) {
                        return false;
                }
@@ -354,16 +354,12 @@ public class WebSession extends Abstract
        public String getValidatedSid() {
                SessiondataDao sessionDao = getBean(SessiondataDao.class);
                Sessiondata sd = sessionDao.check(SID);
+               //TODO need to check roomId equality
                if (sd.getUserId() == null || !sd.getUserId().equals(userId)) {
                        if (sd.getId() == null) {
-                               sd = sessionDao.create();
-                       }
-                       if (!sessionDao.updateUser(sd.getSessionId(), userId, 
false, languageId)) {
-                               //something bad, force user to re-login
-                               invalidate();
-                       } else {
-                               SID = sd.getSessionId();
+                               sd = sessionDao.create(userId, roomId, 
languageId);
                        }
+                       SID = sd.getSessionId();
                }
                return SID;
        }


Reply via email to