You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/08/25 08:46:40 UTC

svn commit: r1757626 [1/2] - in /openmeetings/application: branches/3.2.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/ branches/3.2.x/openmeetin...

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", "sebawagner@apache.org", 
-				"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("sebawagner@apache.org", "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;
 	}