diff options
author | Simon Rettberg | 2015-08-11 16:32:07 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-11 16:32:07 +0200 |
commit | 3a91f090eab386ea37f8c4379f27a26378fbaa04 (patch) | |
tree | d3ae74dbd17e81a8183cb81518458142b5c0a77f /dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java | |
parent | [server] Create proper path for file download (diff) | |
download | tutor-module-3a91f090eab386ea37f8c4379f27a26378fbaa04.tar.gz tutor-module-3a91f090eab386ea37f8c4379f27a26378fbaa04.tar.xz tutor-module-3a91f090eab386ea37f8c4379f27a26378fbaa04.zip |
[client] Improve authentication handling
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java index deeaa5ad..b01e02c2 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java @@ -25,6 +25,7 @@ import javax.swing.JSeparator; import org.apache.log4j.Logger; import org.apache.thrift.TException; +import org.openslx.bwlp.thrift.iface.WhoamiInfo; import org.openslx.dozmod.App; import org.openslx.dozmod.Config; import org.openslx.dozmod.Config.SavedSession; @@ -223,12 +224,11 @@ public abstract class MainWindow { if (session != null) { // Wait for proxy server init App.waitForInit(); - ThriftManager.setSatelliteAddress(session.address); try { - ThriftManager.getSatClient().isAuthenticated(session.token); + WhoamiInfo whoami = ThriftManager.getNewSatClient(session.address).whoami(session.token); // TODO: Satellite whoami call - Session.setSatelliteAddress(session.address); - Session.fromSavedSession(session); + Session.initialize(whoami, session.address, session.token, session.masterToken); + ThriftManager.setSatelliteAddress(Session.getSatelliteAddress()); LOGGER.info("Saved session used for resume."); } catch (TException e1) { LOGGER.info("Session resume failed.", e1); @@ -240,6 +240,8 @@ public abstract class MainWindow { // User did not login, show the login mask LoginWindow.open(mainWindow); } + mainWindow.setTitle("bwLehrstuhl - " + Session.getFirstName() + " " + Session.getLastName() + " [" + + Session.getSatelliteAddress() + "]"); // Show main menu by default showPage(MainMenuWindow.class); @@ -313,9 +315,19 @@ public abstract class MainWindow { JMenu cascadeFileMenu = new JMenu("File"); menuBar.add(cascadeFileMenu); + JMenuItem logoutItem = new JMenuItem("Logout"); + cascadeFileMenu.add(logoutItem); JMenuItem exitItem = new JMenuItem("Exit"); cascadeFileMenu.add(exitItem); + logoutItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Config.saveCurrentSession("", "", ""); + askApplicationQuit(); + } + }); + exitItem.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { |