summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java5
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java1
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java31
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java76
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java2
11 files changed, 39 insertions, 90 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java
index a105437d..22f1111d 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java
@@ -108,11 +108,9 @@ public class LectureCustomPermissionManager extends JPanel{
this.newPermissionMap = permissionMap == null ? new HashMap<String, LecturePermissions>() : permissionMap;
permissionList.clear();
this.defaultPermissions = defaultPermissions;
-
for (Entry<String, LecturePermissions> e : newPermissionMap.entrySet()) {
permissionList.add(new UserLecturePermissions(e.getKey(), e.getValue()));
}
-
permissionTable.setData(permissionList, false);
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
index bf8fd2ba..57264e34 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
@@ -137,8 +137,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe
@Override
public void actionPerformed(ActionEvent arg0) {
ImageCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, image.defaultPermissions, image.imageBaseId);
-
-
}
});
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java
index b1b077ee..28e0f619 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageWizard.java
@@ -134,7 +134,7 @@ public class ImageWizard extends Wizard implements UiFeedback {
LOGGER.error("No vm meta data set in state!");
return false;
}
- if (uploadWizardState.permissions == null) {
+ if (uploadWizardState.defaultPermissions == null) {
LOGGER.error("No permissions set in state!");
return false;
}
@@ -153,7 +153,7 @@ public class ImageWizard extends Wizard implements UiFeedback {
// build imageBaseWrite
return new ImageBaseWrite(uploadWizardState.name, uploadWizardState.description,
uploadWizardState.selectedOs.getOsId(), uploadWizardState.meta.getVirtualizer().getVirtId(),
- uploadWizardState.isTemplate, uploadWizardState.permissions, uploadWizardState.shareMode);
+ uploadWizardState.isTemplate, uploadWizardState.defaultPermissions, uploadWizardState.shareMode);
}
@Override
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java
index e3d9d2d1..b29fe91f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java
@@ -87,8 +87,10 @@ public class LectureWizard extends Wizard implements UiFeedback {
// push to sat
state.uuid = ThriftManager.getSatClient().createLecture(Session.getSatelliteToken(),
lectureWriteFromState());
+ if(state.permissionMap != null && !state.permissionMap.isEmpty())
+ ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(), state.uuid, state.permissionMap);
} catch (TException e) {
- ThriftError.showMessage(this, LOGGER, e, "Fail to create lecture");
+ ThriftError.showMessage(this, LOGGER, e, "Failed to create lecture");
return false;
}
if (Gui.showMessageBox(this, "Veranstaltung erstellt! Wollen Sie zur Übersicht wechseln?",
@@ -96,7 +98,6 @@ public class LectureWizard extends Wizard implements UiFeedback {
LectureCache.get(true);
MainWindow.showPage(LectureListWindow.class);
}
- // TODO evaluate table state and create the map of permissions
// TODO run the actually request over external threaded class
return true;
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java
index 7e32d35d..14dbd247 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageCustomPermissionPageLayout.java
@@ -23,7 +23,6 @@ public class ImageCustomPermissionPageLayout extends WizardPage {
imageCustomPermissionManager = new ImageCustomPermissionManager();
grid.add(imageCustomPermissionManager).fill(true, true).expand(true, true);
grid.nextRow();
-
grid.finish(true);
}
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java
index d27f6001..ff832c43 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/LectureCustomPermissionPageLayout.java
@@ -1,23 +1,14 @@
package org.openslx.dozmod.gui.wizard.layout;
-import javax.swing.JButton;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-
-import org.openslx.dozmod.gui.control.table.LecturePermissionTable;
+import org.openslx.dozmod.gui.control.LectureCustomPermissionManager;
import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.WizardPage;
@SuppressWarnings("serial")
public abstract class LectureCustomPermissionPageLayout extends WizardPage {
-
- protected LecturePermissionTable permissionTableViewer;
- protected JButton addUser;
- protected JButton removeUser;
-
- String addUserLabel = "Benutzer hinzufügen";
- String removeUserLabel = "Benutzer entfernen";
+
+ protected LectureCustomPermissionManager lectureCustomPermissionManager;
/**
* Page for setting custom permissions of a lecture
@@ -27,20 +18,10 @@ public abstract class LectureCustomPermissionPageLayout extends WizardPage {
setDescription("Setzen Sie bei Bedarf benutzerdefinierte Berechtigungen");
GridManager grid = new GridManager(this, 1, false);
- // TableViewer on the table
- permissionTableViewer = new LecturePermissionTable();
- grid.add(new JScrollPane(permissionTableViewer)).fill(true, true).expand(true,true);
+ lectureCustomPermissionManager = new LectureCustomPermissionManager();
+ grid.add(lectureCustomPermissionManager).fill(true, true).expand(true, true);
grid.nextRow();
-
- // Buttons below table
- JPanel panel = new JPanel();
- addUser = new JButton(addUserLabel);
- removeUser = new JButton(removeUserLabel);
- panel.add(addUser);
- panel.add(removeUser);
- grid.add(panel);
- grid.nextRow();
-
+
grid.finish(true);
}
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java
index 901309a1..f6cfe0b7 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageCustomPermissionPage.java
@@ -31,7 +31,7 @@ public class ImageCustomPermissionPage extends ImageCustomPermissionPageLayout {
@Override
protected void onPageEnter() {
if(!initDone){
- imageCustomPermissionManager.initPanel(state.permissionMap, state.permissions);
+ imageCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions);
initDone = true;
}
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java
index b4e9816c..169bade3 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java
@@ -95,7 +95,7 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout {
@Override
protected boolean wantNextOrFinish() {
- state.permissions = new ImagePermissions(linkPermissionsCheck.isSelected(),
+ state.defaultPermissions = new ImagePermissions(linkPermissionsCheck.isSelected(),
readPermissionsCheck.isSelected(), writePermissionsCheck.isSelected(),
adminPermissionsCheck.isSelected());
state.selectedOs = (OperatingSystem)osCombo.getSelectedItem();
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java
index 52a6ca35..d4c70d5a 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureCustomPermissionPage.java
@@ -1,17 +1,9 @@
package org.openslx.dozmod.gui.wizard.page;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.ArrayList;
-
-import javax.swing.JOptionPane;
+import java.util.Map;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.LecturePermissions;
-import org.openslx.bwlp.thrift.iface.UserInfo;
-import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions;
-import org.openslx.dozmod.gui.window.UserListWindow;
-import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.LectureCustomPermissionPageLayout;
import org.openslx.dozmod.state.LectureWizardState;
@@ -21,11 +13,9 @@ public class LectureCustomPermissionPage extends LectureCustomPermissionPageLayo
private final static Logger LOGGER = Logger.getLogger(LectureCustomPermissionPage.class);
- private LectureWizardState state = null;
-
- private final LectureCustomPermissionPage me = this;
+ private boolean initDone = false;
- private ArrayList<UserLecturePermissions> permissionList = new ArrayList<>();
+ private LectureWizardState state = null;
/**
* Page for setting custom permissions of a lecture
@@ -33,46 +23,28 @@ public class LectureCustomPermissionPage extends LectureCustomPermissionPageLayo
public LectureCustomPermissionPage(Wizard wizard, LectureWizardState state) {
super(wizard);
this.state = state;
+ setPageComplete(true);
+ }
- addUser.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- // TODO again: which frame to giev? JOptionPane.getFrameForComponent(me) sounds cool at least :)
- UserListWindow.open(JOptionPane.getFrameForComponent(me), new UserAddedCallback() {
- @Override
- public void userAdded(final UserInfo newUser, UserListWindow window) {
+ @Override
+ protected void onPageEnter() {
+ if(!initDone){
+ lectureCustomPermissionManager.initPanel(state.permissionMap, state.defaultPermissions);
+ initDone = true;
+ }
+ }
- // check if we have this user already
- for (UserLecturePermissions current : permissionList) {
- if (current.userId.equals(newUser.userId)) {
- // user already in the list, skip it
- LOGGER.debug("User already present in the list, skipping!");
- return;
- }
- }
- // TODO use default permissions if they exist
- // add it to the list with either default permissions if set, or none
- permissionList.add(new UserLecturePermissions(newUser.userId, new LecturePermissions(
- true, false)));
- LOGGER.debug("User added: " + newUser);
- permissionTableViewer.setData(permissionList, false);
- }
- }, "Hinzufügen");
- }
- });
- // delete user button adapter
- removeUser.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- final UserLecturePermissions selected = permissionTableViewer.getSelectedItem();
- LOGGER.debug("Removing: " + selected);
- if (!permissionList.remove(selected)) {
- LOGGER.debug("Could not remove: " + selected);
- }
- permissionTableViewer.setData(permissionList, false);
- }
- });
- // no requirements before finishing
- setPageComplete(true);
+
+ @Override
+ protected boolean wantNextOrFinish() {
+ LOGGER.debug("Saving permissions to state ...");
+ // save the table stuff to our upload wizard state
+ Map<String, LecturePermissions> newPermissionMap = lectureCustomPermissionManager.getMap();
+ if (newPermissionMap == null || newPermissionMap.isEmpty()){
+ return true;
+ }
+ state.permissionMap = newPermissionMap;
+ return true;
}
+
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java b/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java
index bb64bf77..313c9c9d 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/LectureWizardState.java
@@ -23,7 +23,7 @@ public class LectureWizardState {
// TODO: defaults per sat
public LecturePermissions defaultPermissions = Session.getSatelliteConfig().defaultLecturePermissions;
// explicit permissions per user as set by the creator
- public Map<String, LecturePermissions> permissionList = null;
+ public Map<String, LecturePermissions> permissionMap = null;
// -- thrift internal stuff --
public String uuid = null;
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
index f087fd5f..d0e46d03 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
@@ -27,7 +27,7 @@ public class UploadWizardState {
public File diskFile = null;
// permissions assigned to that image by the user
// TODO: defaults per sat
- public ImagePermissions permissions = null;
+ public ImagePermissions defaultPermissions = null;
// explicit permissions per user as set by the creator
public Map<String, ImagePermissions> permissionMap = null;
// local, publish, download frozen share mode