Author: solomax
Date: Thu Sep  1 15:52:02 2016
New Revision: 1758795

URL: http://svn.apache.org/viewvc?rev=1758795&view=rev
Log:
[OPENMEETINGS-1455] login from Moodle was tested

Modified:
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
    
openmeetings/application/branches/3.2.x/openmeetings-flash/src/main/swf/base/mainMethods.lzx
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.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/java/org/apache/openmeetings/web/common/MainPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/branches/3.2.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
    
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
 Thu Sep  1 15:52:02 2016
@@ -43,8 +43,7 @@ public class SOAPLoginDao {
        public String addSOAPLogin(String sessionHash, Long roomId,
                        boolean becomemoderator, boolean showAudioVideoTest,
                        boolean allowSameURLMultipleTimes, Long recordingId,
-                       boolean showNickNameDialog, String landingZone,
-                       boolean allowRecording) {
+                       String landingZone, boolean allowRecording) {
                try {
                        SOAPLogin soapLogin = new SOAPLogin();
                        soapLogin.setCreated(new Date());
@@ -54,9 +53,8 @@ public class SOAPLoginDao {
                        soapLogin.setHash(UUID.randomUUID().toString());
                        soapLogin.setRecordingId(recordingId);
                        soapLogin.setSessionHash(sessionHash);
-                       soapLogin.setBecomemoderator(becomemoderator);
+                       soapLogin.setModerator(becomemoderator);
                        soapLogin.setShowAudioVideoTest(showAudioVideoTest);
-                       soapLogin.setShowNickNameDialog(showNickNameDialog);
                        soapLogin.setLandingZone(landingZone);
                        soapLogin.setAllowRecording(allowRecording);
 

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 Thu Sep  1 15:52:02 2016
@@ -34,7 +34,6 @@ public class RoomOptionsDTO implements S
        private Long recordingId;
        private boolean moderator;
        private boolean showAudioVideoTest;
-       private boolean showNickNameDialog;
        private boolean allowSameURLMultipleTimes;
        private boolean allowRecording;
 
@@ -72,14 +71,6 @@ public class RoomOptionsDTO implements S
                this.showAudioVideoTest = showAudioVideoTest;
        }
 
-       public boolean isShowNickNameDialog() {
-               return showNickNameDialog;
-       }
-
-       public void setShowNickNameDialog(boolean showNickNameDialog) {
-               this.showNickNameDialog = showNickNameDialog;
-       }
-
        public boolean isAllowSameURLMultipleTimes() {
                return allowSameURLMultipleTimes;
        }
@@ -113,7 +104,6 @@ public class RoomOptionsDTO implements S
                ro.recordingId = optLong(o, "recordingId");
                ro.roomId = optLong(o, "roomId");
                ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", 
false);
-               ro.showNickNameDialog = o.optBoolean("showNickNameDialog", 
false);
                return ro;
        }
        

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
 Thu Sep  1 15:52:02 2016
@@ -55,8 +55,8 @@ public class SOAPLogin implements Serial
        @Column(name="use_date")
        private Date useDate;
        
-       @Column(name="becomemoderator")
-       private boolean becomemoderator;
+       @Column(name="moderator")
+       private boolean moderator;
        
        @Column(name="showaudiovideotest")
        private boolean showAudioVideoTest;
@@ -64,9 +64,6 @@ public class SOAPLogin implements Serial
        @Column(name="allow_same_url_multiple_times")
        private boolean allowSameURLMultipleTimes;
        
-       @Column(name="show_nick_name_dialog")
-       private boolean showNickNameDialog;
-       
        @Column(name="client_url")
        private String clientURL;
        
@@ -128,11 +125,11 @@ public class SOAPLogin implements Serial
                this.useDate = useDate;
        }
        
-       public boolean isBecomemoderator() {
-               return becomemoderator;
+       public boolean isModerator() {
+               return moderator;
        }
-       public void setBecomemoderator(boolean becomemoderator) {
-               this.becomemoderator = becomemoderator;
+       public void setModerator(boolean moderator) {
+               this.moderator = moderator;
        }
        
        public boolean getShowAudioVideoTest() {
@@ -149,13 +146,6 @@ public class SOAPLogin implements Serial
                this.allowSameURLMultipleTimes = allowSameURLMultipleTimes;
        }
 
-       public boolean getShowNickNameDialog() {
-               return showNickNameDialog;
-       }
-       public void setShowNickNameDialog(boolean showNickNameDialog) {
-               this.showNickNameDialog = showNickNameDialog;
-       }
-       
        public String getClientURL() {
                return clientURL;
        }

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=1758795&r1=1758794&r2=1758795&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 Sep  1 15:52:02 2016
@@ -78,18 +78,6 @@
        ]]>
        </method>
 
-       <method name="getTestingUrl">
-       <![CDATA[
-               return getUrl() + '?swf=networktesting' + ($debug ? 'debug' : 
'') + '.swf10.swf';
-       ]]>
-       </method>
-
-       <method name="getAppBaseUrl">
-       <![CDATA[
-               return getUrl() + "swf";
-       ]]>
-       </method>
-
        <method name="myinit">
        <![CDATA[
                canvas.mediaerrortimeout = 30000;

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 Thu Sep  1 15:52:02 2016
@@ -142,14 +142,11 @@ public class Application extends Authent
                
                getRootRequestMapperAsCompound().add(new 
NoVersionMapper(getHomePage()));
                getRootRequestMapperAsCompound().add(new 
NoVersionMapper("notinited", NotInitedPage.class));
-               getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", 
HashPage.class));
-               //getRootRequestMapperAsCompound().add(new 
NoVersionMapper("/hash", HashPage.class));
-               getRootRequestMapperAsCompound().add(new 
NoVersionMapper("/recording/${hash}", HashPage.class));
+               getRootRequestMapperAsCompound().add(new 
NoVersionMapper("/hash", HashPage.class));
                getRootRequestMapperAsCompound().add(new 
NoVersionMapper("signin", getSignInPageClass()));
                mountPage("install", InstallWizardPage.class);
                mountPage("activate", ActivatePage.class);
                mountPage("reset", ResetPage.class);
-               mountPage("/hash", HashPage.class);
                mountResource("/recordings/avi/${id}", new 
AviRecordingResourceReference());
                mountResource("/recordings/flv/${id}", new 
FlvRecordingResourceReference());
                mountResource("/recordings/mp4/${id}", new 
Mp4RecordingResourceReference());

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=1758795&r1=1758794&r2=1758795&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 Sep  1 15:52:02 2016
@@ -101,6 +101,7 @@ public class WebSession extends Abstract
        private UserDashboard dashboard;
        private Locale browserLocale = null;
        private Invitation i = null;
+       private SOAPLogin soap = null;
        private Long roomId = null;
        private Long recordingId = null;
        private Long loginError = null;
@@ -122,6 +123,7 @@ public class WebSession extends Abstract
                ISO8601FORMAT = null;
                sdf = null;
                i = null;
+               soap = null;
                roomId = null;
                recordingId = null;
                externalType = null;
@@ -169,28 +171,34 @@ public class WebSession extends Abstract
        public void checkHashes(StringValue secure, StringValue invitation) {
                try {
                        if (!secure.isEmpty()) {
-                               if (isSignedIn()) {
-                                       invalidate();
+                               if (!isSignedIn() || soap == null || 
!soap.getHash().equals(secure.toString())) {
+                                       // otherwise already logged-in with the 
same hash
+                                       if (isSignedIn()) {
+                                               invalidate();
+                                       }
+                                       signIn(secure.toString(), true);
                                }
-                               signIn(secure.toString(), true);
                        }
                        if (!invitation.isEmpty()) {
-                               if (isSignedIn()) {
-                                       invalidate();
-                               }
-                               i = 
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
-                               if (i.isAllowEntry()) {
-                                       Set<Right> rights = new HashSet<>();
-                                       if (i.getRoom() != null) {
-                                               rights.add(Right.Room);
-                                               roomId = i.getRoom().getId();
-                                       } else if (i.getAppointment() != null 
&& i.getAppointment().getRoom() != null) {
-                                               rights.add(Right.Room);
-                                               roomId = 
i.getAppointment().getRoom().getId();
-                                       } else if (i.getRecording() != null) {
-                                               recordingId = 
i.getRecording().getId();
+                               if (!isSignedIn() || i == null || 
!i.getHash().equals(invitation.toString())) {
+                                       // otherwise already logged-in with the 
same hash
+                                       if (isSignedIn()) {
+                                               invalidate();
+                                       }
+                                       i = 
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
+                                       if (i != null && i.isAllowEntry()) {
+                                               Set<Right> rights = new 
HashSet<>();
+                                               if (i.getRoom() != null) {
+                                                       rights.add(Right.Room);
+                                                       roomId = 
i.getRoom().getId();
+                                               } else if (i.getAppointment() 
!= null && i.getAppointment().getRoom() != null) {
+                                                       rights.add(Right.Room);
+                                                       roomId = 
i.getAppointment().getRoom().getId();
+                                               } else if (i.getRecording() != 
null) {
+                                                       recordingId = 
i.getRecording().getId();
+                                               }
+                                               setUser(i.getInvitee(), rights);
                                        }
-                                       setUser(i.getInvitee(), rights);
                                }
                        }
                } catch (Exception e) {
@@ -243,6 +251,7 @@ public class WebSession extends Abstract
                                        sessionDao.update(sd);
                                        setUser(user, null);
                                        recordingId = 
soapLogin.getRecordingId();
+                                       soap = soapLogin;
                                        return true;
                                }
                        }
@@ -255,6 +264,7 @@ public class WebSession extends Abstract
                Long _recordingId = recordingId;
                Long _roomId = roomId;
                Invitation _i = i;
+               SOAPLogin _soap = soap;
                replaceSession(); // required to prevent session fixation
                if (_sid != null) {
                        SID = _sid;
@@ -265,9 +275,12 @@ public class WebSession extends Abstract
                if (_roomId != null) {
                        roomId = _roomId;
                }
-               if (i != null) {
+               if (_i != null) {
                        i = _i;
                }
+               if (_soap != null) {
+                       soap = _soap;
+               }
                userId = u.getId();
                if (rights == null || rights.isEmpty()) {
                        this.rights = 
Collections.unmodifiableSet(u.getRights());
@@ -380,6 +393,10 @@ public class WebSession extends Abstract
                return i;
        }
 
+       public SOAPLogin getSoapLogin() {
+               return soap;
+       }
+
        public static String getExternalType() {
                return get().externalType;
        }

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 Thu Sep  1 15:52:02 2016
@@ -116,15 +116,6 @@ public class MainPanel extends Panel {
                                updateContents(PROFILE_MESSAGES, target);
                        }
                });
-               topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               getSession().invalidate();
-                               
setResponsePage(Application.get().getSignInPageClass());
-                       }
-               });
                topLinks.add(new AjaxLink<Void>("profile") {
                        private static final long serialVersionUID = 1L;
 
@@ -244,6 +235,20 @@ public class MainPanel extends Panel {
                        }
                });
        }
+
+       @Override
+       protected void onInitialize() {
+               super.onInitialize();
+               topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               getSession().invalidate();
+                               
setResponsePage(Application.get().getSignInPageClass());
+                       }
+               });
+       }
 
        private List<IMenuItem> getMainMenu() {
                List<IMenuItem> menu = new ArrayList<>();

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 Thu Sep  1 15:52:02 2016
@@ -56,10 +56,9 @@ import com.googlecode.wicket.jquery.ui.w
 
 public class HashPage extends BaseInitedPage implements IUpdatable {
        private static final long serialVersionUID = 1L;
-       public static final String SECURE_HASH = "secureHash";
        public static final String PANEL_MAIN = "panel-main";
-       public static final String INVITATION_HASH = "invitationHash";
-       private static final String HASH = "hash";
+       public static final String INVITATION_HASH = "invitation";
+       private static final String HASH = "secure";
        private final WebMarkupContainer recContainer = new 
WebMarkupContainer("panel-recording");
        private final VideoInfo vi = new VideoInfo("info", null);
        private final VideoPlayer vp = new VideoPlayer("player", null);
@@ -67,10 +66,7 @@ public class HashPage extends BaseInited
        private boolean error = true;
 
        public HashPage(PageParameters p) {
-               StringValue secure = p.get(SECURE_HASH);
-               if (secure.isEmpty()) {
-                       secure = p.get(HASH);
-               }
+               StringValue secure = p.get(HASH);
                StringValue invitation = p.get(INVITATION_HASH);
 
                WebSession ws = WebSession.get();

Modified: 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Thu Sep  1 15:52:02 2016
@@ -43,6 +43,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.db.entity.room.RoomGroup;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -184,6 +185,8 @@ public class RoomPanel extends BasePanel
                } else if (getRoomClients(r.getId()).size() >= 
r.getNumberOfPartizipants()) {
                        accessDenied = new 
ExpiredMessageDialog(ACCESS_DENIED_ID, getString("99"), menu);
                        room.setVisible(false);
+               } else if (r.getId().equals(WebSession.get().getRoomId())) {
+                       // secureHash/invitationHash, already checked
                } else {
                        boolean allowed = false;
                        String deniedMessage = null;
@@ -359,10 +362,15 @@ public class RoomPanel extends BasePanel
                        //We are setting initial rights here
                        Client c = getClient();
                        addUserToRoom(c.setRoomId(getRoom().getId()));
-                       User u = getBean(UserDao.class).get(getUserId());
-                       Right rr = AuthLevelUtil.getRoomRight(u, r, 
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, 
getRoomClients(r.getId()).size());
-                       if (rr != null) {
-                               c.getRights().add(rr);
+                       SOAPLogin soap = WebSession.get().getSoapLogin();
+                       if (soap != null && soap.isModerator()) {
+                               c.getRights().add(Right.superModerator);
+                       } else {
+                               User u = 
getBean(UserDao.class).get(getUserId());
+                               Right rr = AuthLevelUtil.getRoomRight(u, r, 
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, 
getRoomClients(r.getId()).size());
+                               if (rr != null) {
+                                       c.getRights().add(rr);
+                               }
                        }
                }
        }

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=1758795&r1=1758794&r2=1758795&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 Sep  1 15:52:02 2016
@@ -292,7 +292,6 @@ public class UserWebService implements U
                                String hash = soapLoginDao.addSOAPLogin(sid, 
options.getRoomId(),
                                                options.isModerator(), 
options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
                                                options.getRecordingId(),
-                                               options.isShowNickNameDialog(),
                                                "room", // LandingZone,
                                                options.isAllowRecording()
                                                );

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
 Thu Sep  1 15:52:02 2016
@@ -43,8 +43,7 @@ public class SOAPLoginDao {
        public String addSOAPLogin(String sessionHash, Long roomId,
                        boolean becomemoderator, boolean showAudioVideoTest,
                        boolean allowSameURLMultipleTimes, Long recordingId,
-                       boolean showNickNameDialog, String landingZone,
-                       boolean allowRecording) {
+                       String landingZone, boolean allowRecording) {
                try {
                        SOAPLogin soapLogin = new SOAPLogin();
                        soapLogin.setCreated(new Date());
@@ -54,9 +53,8 @@ public class SOAPLoginDao {
                        soapLogin.setHash(UUID.randomUUID().toString());
                        soapLogin.setRecordingId(recordingId);
                        soapLogin.setSessionHash(sessionHash);
-                       soapLogin.setBecomemoderator(becomemoderator);
+                       soapLogin.setModerator(becomemoderator);
                        soapLogin.setShowAudioVideoTest(showAudioVideoTest);
-                       soapLogin.setShowNickNameDialog(showNickNameDialog);
                        soapLogin.setLandingZone(landingZone);
                        soapLogin.setAllowRecording(allowRecording);
 

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 Thu Sep  1 15:52:02 2016
@@ -34,7 +34,6 @@ public class RoomOptionsDTO implements S
        private Long recordingId;
        private boolean moderator;
        private boolean showAudioVideoTest;
-       private boolean showNickNameDialog;
        private boolean allowSameURLMultipleTimes;
        private boolean allowRecording;
 
@@ -72,14 +71,6 @@ public class RoomOptionsDTO implements S
                this.showAudioVideoTest = showAudioVideoTest;
        }
 
-       public boolean isShowNickNameDialog() {
-               return showNickNameDialog;
-       }
-
-       public void setShowNickNameDialog(boolean showNickNameDialog) {
-               this.showNickNameDialog = showNickNameDialog;
-       }
-
        public boolean isAllowSameURLMultipleTimes() {
                return allowSameURLMultipleTimes;
        }
@@ -113,7 +104,6 @@ public class RoomOptionsDTO implements S
                ro.recordingId = optLong(o, "recordingId");
                ro.roomId = optLong(o, "roomId");
                ro.showAudioVideoTest = o.optBoolean("showAudioVideoTest", 
false);
-               ro.showNickNameDialog = o.optBoolean("showNickNameDialog", 
false);
                return ro;
        }
        

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
 Thu Sep  1 15:52:02 2016
@@ -55,8 +55,8 @@ public class SOAPLogin implements Serial
        @Column(name="use_date")
        private Date useDate;
        
-       @Column(name="becomemoderator")
-       private boolean becomemoderator;
+       @Column(name="moderator")
+       private boolean moderator;
        
        @Column(name="showaudiovideotest")
        private boolean showAudioVideoTest;
@@ -64,9 +64,6 @@ public class SOAPLogin implements Serial
        @Column(name="allow_same_url_multiple_times")
        private boolean allowSameURLMultipleTimes;
        
-       @Column(name="show_nick_name_dialog")
-       private boolean showNickNameDialog;
-       
        @Column(name="client_url")
        private String clientURL;
        
@@ -128,11 +125,11 @@ public class SOAPLogin implements Serial
                this.useDate = useDate;
        }
        
-       public boolean isBecomemoderator() {
-               return becomemoderator;
+       public boolean isModerator() {
+               return moderator;
        }
-       public void setBecomemoderator(boolean becomemoderator) {
-               this.becomemoderator = becomemoderator;
+       public void setModerator(boolean moderator) {
+               this.moderator = moderator;
        }
        
        public boolean getShowAudioVideoTest() {
@@ -149,13 +146,6 @@ public class SOAPLogin implements Serial
                this.allowSameURLMultipleTimes = allowSameURLMultipleTimes;
        }
 
-       public boolean getShowNickNameDialog() {
-               return showNickNameDialog;
-       }
-       public void setShowNickNameDialog(boolean showNickNameDialog) {
-               this.showNickNameDialog = showNickNameDialog;
-       }
-       
        public String getClientURL() {
                return clientURL;
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
 Thu Sep  1 15:52:02 2016
@@ -142,14 +142,11 @@ public class Application extends Authent
                
                getRootRequestMapperAsCompound().add(new 
NoVersionMapper(getHomePage()));
                getRootRequestMapperAsCompound().add(new 
NoVersionMapper("notinited", NotInitedPage.class));
-               getRootRequestMapperAsCompound().add(new NoVersionMapper("swf", 
HashPage.class));
-               //getRootRequestMapperAsCompound().add(new 
NoVersionMapper("/hash", HashPage.class));
-               getRootRequestMapperAsCompound().add(new 
NoVersionMapper("/recording/${hash}", HashPage.class));
+               getRootRequestMapperAsCompound().add(new 
NoVersionMapper("/hash", HashPage.class));
                getRootRequestMapperAsCompound().add(new 
NoVersionMapper("signin", getSignInPageClass()));
                mountPage("install", InstallWizardPage.class);
                mountPage("activate", ActivatePage.class);
                mountPage("reset", ResetPage.class);
-               mountPage("/hash", HashPage.class);
                mountResource("/recordings/avi/${id}", new 
AviRecordingResourceReference());
                mountResource("/recordings/flv/${id}", new 
FlvRecordingResourceReference());
                mountResource("/recordings/mp4/${id}", new 
Mp4RecordingResourceReference());

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=1758795&r1=1758794&r2=1758795&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 Sep  1 15:52:02 2016
@@ -101,6 +101,7 @@ public class WebSession extends Abstract
        private UserDashboard dashboard;
        private Locale browserLocale = null;
        private Invitation i = null;
+       private SOAPLogin soap = null;
        private Long roomId = null;
        private Long recordingId = null;
        private Long loginError = null;
@@ -122,6 +123,7 @@ public class WebSession extends Abstract
                ISO8601FORMAT = null;
                sdf = null;
                i = null;
+               soap = null;
                roomId = null;
                recordingId = null;
                externalType = null;
@@ -169,28 +171,34 @@ public class WebSession extends Abstract
        public void checkHashes(StringValue secure, StringValue invitation) {
                try {
                        if (!secure.isEmpty()) {
-                               if (isSignedIn()) {
-                                       invalidate();
+                               if (!isSignedIn() || soap == null || 
!soap.getHash().equals(secure.toString())) {
+                                       // otherwise already logged-in with the 
same hash
+                                       if (isSignedIn()) {
+                                               invalidate();
+                                       }
+                                       signIn(secure.toString(), true);
                                }
-                               signIn(secure.toString(), true);
                        }
                        if (!invitation.isEmpty()) {
-                               if (isSignedIn()) {
-                                       invalidate();
-                               }
-                               i = 
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
-                               if (i.isAllowEntry()) {
-                                       Set<Right> rights = new HashSet<>();
-                                       if (i.getRoom() != null) {
-                                               rights.add(Right.Room);
-                                               roomId = i.getRoom().getId();
-                                       } else if (i.getAppointment() != null 
&& i.getAppointment().getRoom() != null) {
-                                               rights.add(Right.Room);
-                                               roomId = 
i.getAppointment().getRoom().getId();
-                                       } else if (i.getRecording() != null) {
-                                               recordingId = 
i.getRecording().getId();
+                               if (!isSignedIn() || i == null || 
!i.getHash().equals(invitation.toString())) {
+                                       // otherwise already logged-in with the 
same hash
+                                       if (isSignedIn()) {
+                                               invalidate();
+                                       }
+                                       i = 
getBean(InvitationDao.class).getByHash(invitation.toString(), false, true);
+                                       if (i != null && i.isAllowEntry()) {
+                                               Set<Right> rights = new 
HashSet<>();
+                                               if (i.getRoom() != null) {
+                                                       rights.add(Right.Room);
+                                                       roomId = 
i.getRoom().getId();
+                                               } else if (i.getAppointment() 
!= null && i.getAppointment().getRoom() != null) {
+                                                       rights.add(Right.Room);
+                                                       roomId = 
i.getAppointment().getRoom().getId();
+                                               } else if (i.getRecording() != 
null) {
+                                                       recordingId = 
i.getRecording().getId();
+                                               }
+                                               setUser(i.getInvitee(), rights);
                                        }
-                                       setUser(i.getInvitee(), rights);
                                }
                        }
                } catch (Exception e) {
@@ -243,6 +251,7 @@ public class WebSession extends Abstract
                                        sessionDao.update(sd);
                                        setUser(user, null);
                                        recordingId = 
soapLogin.getRecordingId();
+                                       soap = soapLogin;
                                        return true;
                                }
                        }
@@ -255,6 +264,7 @@ public class WebSession extends Abstract
                Long _recordingId = recordingId;
                Long _roomId = roomId;
                Invitation _i = i;
+               SOAPLogin _soap = soap;
                replaceSession(); // required to prevent session fixation
                if (_sid != null) {
                        SID = _sid;
@@ -265,9 +275,12 @@ public class WebSession extends Abstract
                if (_roomId != null) {
                        roomId = _roomId;
                }
-               if (i != null) {
+               if (_i != null) {
                        i = _i;
                }
+               if (_soap != null) {
+                       soap = _soap;
+               }
                userId = u.getId();
                if (rights == null || rights.isEmpty()) {
                        this.rights = 
Collections.unmodifiableSet(u.getRights());
@@ -380,6 +393,10 @@ public class WebSession extends Abstract
                return i;
        }
 
+       public SOAPLogin getSoapLogin() {
+               return soap;
+       }
+
        public static String getExternalType() {
                return get().externalType;
        }

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
 Thu Sep  1 15:52:02 2016
@@ -116,15 +116,6 @@ public class MainPanel extends Panel {
                                updateContents(PROFILE_MESSAGES, target);
                        }
                });
-               topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
-                       private static final long serialVersionUID = 1L;
-
-                       @Override
-                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
-                               getSession().invalidate();
-                               
setResponsePage(Application.get().getSignInPageClass());
-                       }
-               });
                topLinks.add(new AjaxLink<Void>("profile") {
                        private static final long serialVersionUID = 1L;
 
@@ -244,6 +235,20 @@ public class MainPanel extends Panel {
                        }
                });
        }
+
+       @Override
+       protected void onInitialize() {
+               super.onInitialize();
+               topLinks.add(new ConfirmableAjaxBorder("logout", 
getString("310"), getString("634")) {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       protected void onSubmit(AjaxRequestTarget target, 
Form<?> form) {
+                               getSession().invalidate();
+                               
setResponsePage(Application.get().getSignInPageClass());
+                       }
+               });
+       }
 
        private List<IMenuItem> getMainMenu() {
                List<IMenuItem> menu = new ArrayList<>();

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
 Thu Sep  1 15:52:02 2016
@@ -56,10 +56,9 @@ import com.googlecode.wicket.jquery.ui.w
 
 public class HashPage extends BaseInitedPage implements IUpdatable {
        private static final long serialVersionUID = 1L;
-       public static final String SECURE_HASH = "secureHash";
        public static final String PANEL_MAIN = "panel-main";
-       public static final String INVITATION_HASH = "invitationHash";
-       private static final String HASH = "hash";
+       public static final String INVITATION_HASH = "invitation";
+       private static final String HASH = "secure";
        private final WebMarkupContainer recContainer = new 
WebMarkupContainer("panel-recording");
        private final VideoInfo vi = new VideoInfo("info", null);
        private final VideoPlayer vp = new VideoPlayer("player", null);
@@ -67,10 +66,7 @@ public class HashPage extends BaseInited
        private boolean error = true;
 
        public HashPage(PageParameters p) {
-               StringValue secure = p.get(SECURE_HASH);
-               if (secure.isEmpty()) {
-                       secure = p.get(HASH);
-               }
+               StringValue secure = p.get(HASH);
                StringValue invitation = p.get(INVITATION_HASH);
 
                WebSession ws = WebSession.get();

Modified: 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
 Thu Sep  1 15:52:02 2016
@@ -41,6 +41,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
 import org.apache.openmeetings.db.entity.room.RoomGroup;
+import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -187,6 +188,8 @@ public class RoomPanel extends BasePanel
                } else if (getRoomClients(r.getId()).size() >= 
r.getNumberOfPartizipants()) {
                        accessDenied = new 
ExpiredMessageDialog(ACCESS_DENIED_ID, getString("99"), menu);
                        room.setVisible(false);
+               } else if (r.getId().equals(WebSession.get().getRoomId())) {
+                       // secureHash/invitationHash, already checked
                } else {
                        boolean allowed = false;
                        String deniedMessage = null;
@@ -362,10 +365,15 @@ public class RoomPanel extends BasePanel
                        //We are setting initial rights here
                        Client c = getClient();
                        addUserToRoom(c.setRoomId(getRoom().getId()));
-                       User u = getBean(UserDao.class).get(getUserId());
-                       Right rr = AuthLevelUtil.getRoomRight(u, r, 
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, 
getRoomClients(r.getId()).size());
-                       if (rr != null) {
-                               c.getRights().add(rr);
+                       SOAPLogin soap = WebSession.get().getSoapLogin();
+                       if (soap != null && soap.isModerator()) {
+                               c.getRights().add(Right.superModerator);
+                       } else {
+                               User u = 
getBean(UserDao.class).get(getUserId());
+                               Right rr = AuthLevelUtil.getRoomRight(u, r, 
r.isAppointment() ? getBean(AppointmentDao.class).getByRoom(r.getId()) : null, 
getRoomClients(r.getId()).size());
+                               if (rr != null) {
+                                       c.getRights().add(rr);
+                               }
                        }
                }
        }

Modified: 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1758795&r1=1758794&r2=1758795&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
 Thu Sep  1 15:52:02 2016
@@ -292,7 +292,6 @@ public class UserWebService implements U
                                String hash = soapLoginDao.addSOAPLogin(sid, 
options.getRoomId(),
                                                options.isModerator(), 
options.isShowAudioVideoTest(), options.isAllowSameURLMultipleTimes(),
                                                options.getRecordingId(),
-                                               options.isShowNickNameDialog(),
                                                "room", // LandingZone,
                                                options.isAllowRecording()
                                                );



Reply via email to