diff options
| author | Michael Wilson | 2014-10-14 18:53:57 +0200 |
|---|---|---|
| committer | Michael Wilson | 2014-10-14 18:53:57 +0200 |
| commit | cdc14633ee8bbcfb9a847f0dd109708d8b088fd4 (patch) | |
| tree | 94ad4fb1b951a971b48f61cac553290f8a858bfd | |
| parent | Text angepasst (diff) | |
| download | tutor-module-cdc14633ee8bbcfb9a847f0dd109708d8b088fd4.tar.gz tutor-module-cdc14633ee8bbcfb9a847f0dd109708d8b088fd4.tar.xz tutor-module-cdc14633ee8bbcfb9a847f0dd109708d8b088fd4.zip | |
-Wechsel ins Hauptmenü löscht nun gespeichrte Berechtigungen, die sich noch im Zwischenspeicher befinden
-Beim Bearbeiten vom Image werden nun Berechtigte Benutzer angezeigt
-Aktuell funktioniert bei den Veranstaltungen nichts... :(
3 files changed, 199 insertions, 44 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java index de7e4129..a584c0ff 100644 --- a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java @@ -18,6 +18,8 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.net.URI; import java.net.URISyntaxException; +import java.util.Iterator; +import java.util.List; import javax.swing.AbstractButton; import javax.swing.DefaultComboBoxModel; @@ -45,19 +47,27 @@ import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; +import org.apache.thrift.TException; + import models.Image; import models.Links; +import models.RightsManagement; +import models.person; +import server.generated.Person; +import server.generated.Server.Client; import util.GuiOrganizer; import util.OpenLinks; @SuppressWarnings("serial") public class PermissionEditImage_GUI extends JFrame { + Client client = models.Client.clientcon.getClient(); private final JPanel contentPanel = new JPanel(); String[] result; private JTable table; private Class[] classes; - Object[] titles = { "Name", "Read", "Write", "Link","Admin"}; + Object[] titles = { "Name", "Read", "Write", "Link", "Admin", "userID" }; + private List<Person> map = null; // List of people who have rights Component c = null; final DefaultTableModel model = new DefaultTableModel(titles, 0) { @@ -84,13 +94,13 @@ public class PermissionEditImage_GUI extends JFrame { private JLabel label_5; private JLabel label_6; private JLabel lblvolleRechteRead; - private static final String HELP_MESSAGE = "<html><div align=\"center\">" + - "Verändern Sie die Berechtigungen für Ihr Image.<br />" + - "Sie können die Rechte read, write, link und admin vergeben.<br />" + - "Link bedeutet, dass diese Person Veranstaltungen auf Ihr Image verlinken darf und dieses somit<br />" + - "implizit freigeben darf. Eine Person mit Adminrechten darf zusätzlich das Image löschen und Berechtigungen<br />" + - "für andere Benutzer festlegen und ist somit wie der Besitzer zu betrachten." + - "</div></html>"; + private static final String HELP_MESSAGE = "<html><div align=\"center\">" + + "Verändern Sie die Berechtigungen für Ihr Image.<br />" + + "Sie können die Rechte read, write, link und admin vergeben.<br />" + + "Link bedeutet, dass diese Person Veranstaltungen auf Ihr Image verlinken darf und dieses somit<br />" + + "implizit freigeben darf. Eine Person mit Adminrechten darf zusätzlich das Image löschen und Berechtigungen<br />" + + "für andere Benutzer festlegen und ist somit wie der Besitzer zu betrachten." + + "</div></html>"; public PermissionEditImage_GUI(Component formerGUI) { addWindowListener(new WindowAdapter() { @@ -159,9 +169,102 @@ public class PermissionEditImage_GUI extends JFrame { table = new JTable(); table.setModel(model); table.setSelectionForeground(Color.WHITE); - Object[] rowdata = { "Max Mustermann", new Boolean(false), - new Boolean(false), new Boolean(false), new Boolean(false) }; - model.addRow(rowdata); + + // invisible attribute userID for identifying selected user + table.getColumnModel().getColumn(5).setWidth(0); + table.getColumnModel().getColumn(5).setMinWidth(0); + table.getColumnModel().getColumn(5).setMaxWidth(0); + + // if new session, get values for table from database + if (RightsManagement.rightsManagement.getPermittedUserList().size() <= 0) { + System.out.println("Loading data from db"); + try { + //map = client.getAllOtherSatelliteUsers(person.verantwortlicher.getUserID()); + + + /* + * + * + * + * + * Hier gehts weiter. Problem: wie greifen wir auf die Rechte zu???? + * + * + * + * + * + * */ + + + + + + map = client.getPermissionForUserAndImage(person.verantwortlicher.getUserID(), Image.image.getImageId()); + Iterator<server.generated.Person> i = map.iterator(); + + int x = 0; + while (i.hasNext()) { + // erzeuge Objekte fuer die Tabelle + Object[] obj = { + map.get(x).getNachname() + ", " + + map.get(x).getVorname(), // Name + false, // Read + false, // Write + false, // Link + false, // Admin + map.get(x).getUserID() // userID + }; + // Fuege diese Objekte der Tabelle hinzu + model.addRow(obj); + i.next(); + x++; + + } + + } catch (TException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + } else // read from model + { + System.out.println("reading from model"); + System.out + .println("RightsManagement.rightsManagement.getPermittedUserList().size() = " + + RightsManagement.rightsManagement + .getPermittedUserList().size()); + + List<person> listt = RightsManagement.rightsManagement + .getPermittedUserList(); + Iterator<person> i = listt.iterator(); + + int x = 0; + while (i.hasNext()) { + // System.out.println("current pos=" + x); + // erzeuge Objekte fuer die Tabelle + person temp = i.next(); + + Object[] obj = { temp.getName() + ", " + temp.getVorname(), // Name + temp.isRead(), // Read + temp.isWrite(), // Write + temp.isLinkAllowed(), // Link + temp.isAdmin(), // Admin + temp.getUserID() // userID + }; + System.out.println("Processing: " + temp.getName() + ", " + + temp.getVorname() + ", " + temp.isRead() + ", " + + temp.isWrite() + ", " + temp.isLinkAllowed() + ", " + + temp.isAdmin() + ", " + temp.getUserID()); + // Fuege diese Objekte der Tabelle hinzu + model.addRow(obj); + x++; + } + }// end set list of permitted users + + /* + * Object[] rowdata = { "Max Mustermann", new Boolean(false), new + * Boolean(false), new Boolean(false), new Boolean(false) }; + * model.addRow(rowdata); + */ TableCellRenderer rend = table.getTableHeader().getDefaultRenderer(); @@ -189,27 +292,31 @@ public class PermissionEditImage_GUI extends JFrame { tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(), (String) titles[4])); /* - TableColumn tc5 = table.getColumnModel().getColumn(5); - tc5.setCellEditor(table.getDefaultEditor(Boolean.class)); - tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class)); - tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(), - (String) titles[5])); - */ + * TableColumn tc5 = table.getColumnModel().getColumn(5); + * tc5.setCellEditor(table.getDefaultEditor(Boolean.class)); + * tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + * tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(), + * (String) titles[5])); + */ scrollPane.setViewportView(table); - + JPanel panel_2 = new JPanel(); panel_2.setLayout(null); - panel_2.setBorder(new TitledBorder(null, "Freigabe", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_2.setBorder(new TitledBorder(null, "Freigabe", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_2.setBackground(SystemColor.menu); panel_2.setBounds(10, 227, 537, 80); panel_1.add(panel_2); - + JLabel label_7 = new JLabel("Freigabemodus:"); label_7.setBounds(10, 30, 250, 20); panel_2.add(label_7); - + final JComboBox comboBox_1 = new JComboBox(); - comboBox_1.setModel(new DefaultComboBoxModel(new String[] {"Lokal (Eigene Hochschule)", "Öffentlich (Alle Hochschulen)"})); + comboBox_1 + .setModel(new DefaultComboBoxModel(new String[] { + "Lokal (Eigene Hochschule)", + "Öffentlich (Alle Hochschulen)" })); comboBox_1.setSelectedIndex(Image.image.getShareMode()); comboBox_1.setBounds(270, 30, 250, 20); panel_2.add(comboBox_1); @@ -290,20 +397,22 @@ public class PermissionEditImage_GUI extends JFrame { "Image anpassen und überschreiben, jedoch nicht löschen."); lblImageAnpassenUnd.setBounds(120, 38, 380, 20); panel.add(lblImageAnpassenUnd); - + lblLinkAllowed = new JLabel("Link"); lblLinkAllowed.setBounds(20, 58, 90, 20); panel.add(lblLinkAllowed); - + label_5 = new JLabel("Admin"); label_5.setBounds(20, 78, 90, 20); panel.add(label_5); - - label_6 = new JLabel("Erzeugung einer Veranstaltung auf ein Image ist erlaubt."); + + label_6 = new JLabel( + "Erzeugung einer Veranstaltung auf ein Image ist erlaubt."); label_6.setBounds(120, 58, 380, 20); panel.add(label_6); - - lblvolleRechteRead = new JLabel("<HTML>Volle Rechte: read, write, löschen, Link und<br>Berechtigungen für andere Benutzer festlegen.</HTML>"); + + lblvolleRechteRead = new JLabel( + "<HTML>Volle Rechte: read, write, löschen, Link und<br>Berechtigungen für andere Benutzer festlegen.</HTML>"); lblvolleRechteRead.setBounds(120, 78, 380, 40); panel.add(lblvolleRechteRead); { @@ -317,8 +426,10 @@ public class PermissionEditImage_GUI extends JFrame { cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - //EditImageFreigabe_GUI sr = new EditImageFreigabe_GUI(); - EditImageTechnisch_GUI ei = new EditImageTechnisch_GUI(c); + // EditImageFreigabe_GUI sr = new + // EditImageFreigabe_GUI(); + EditImageTechnisch_GUI ei = new EditImageTechnisch_GUI( + c); ei.setVisible(true); dispose(); } @@ -331,7 +442,7 @@ public class PermissionEditImage_GUI extends JFrame { JButton continueButton = new JButton("Weiter"); continueButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - + Image.image.setShareMode(comboBox_1.getSelectedIndex()); FTPEditUploader_GUI ea = new FTPEditUploader_GUI(c); ea.setVisible(true); @@ -410,12 +521,14 @@ public class PermissionEditImage_GUI extends JFrame { } }); mnNewMenu_1.add(mntmAbout); - + JMenu mnNewMenu_Info = new JMenu("Info"); mnNewMenu_Info.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { - JOptionPane.showMessageDialog(c, HELP_MESSAGE, "Hilfe zu dieser Oberfläche", JOptionPane.INFORMATION_MESSAGE); + JOptionPane.showMessageDialog(c, HELP_MESSAGE, + "Hilfe zu dieser Oberfläche", + JOptionPane.INFORMATION_MESSAGE); } }); menuBar.add(mnNewMenu_Info); diff --git a/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java b/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java index fe49ef06..072ef196 100644 --- a/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java +++ b/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java @@ -47,6 +47,7 @@ import javax.swing.border.TitledBorder; import models.GUIRights; import models.ImageRights; import models.Links; +import models.RightsManagement; import models.SessionData; import models.person; @@ -132,6 +133,10 @@ public class MainMenue_GUI extends JFrame { txtpnBitteWhlenSie.setBounds(10, 36, 509, 22); panel.add(txtpnBitteWhlenSie); } + + //reset the list of permissions every time the user goes back to the main menu + RightsManagement.rightsManagement.getPermittedUserList().clear(); + contentPanel.setBounds(10, 104, 567, 502); contentPanel.setBackground(SystemColor.menu); diff --git a/dozentenmodulserver/src/main/java/sql/SQL.java b/dozentenmodulserver/src/main/java/sql/SQL.java index 3c82b182..80e19ea4 100644 --- a/dozentenmodulserver/src/main/java/sql/SQL.java +++ b/dozentenmodulserver/src/main/java/sql/SQL.java @@ -1112,16 +1112,15 @@ public List<Image> getImageListPermissionLink(String userID) { return id;
}
- //get all users from HS OG -- temp, tb replaced by allUsers bwLehrpool
+ //get all users from satellite -- temp, tb replaced by allUsers bwLehrpool
//does -NOT- return the user himself
public List<Person> getAllOtherSatelliteUsers(String userID){
Connection con=getConnection();
Statement stm=null;
ResultSet res = null;
- //Map<String, String> map = new HashMap<String, String>();
+
List<Person> list = new ArrayList<Person>();
-
try {
stm = con.createStatement();
} catch (SQLException e) {
@@ -1134,26 +1133,64 @@ public List<Image> getImageListPermissionLink(String userID) { // TODO Auto-generated catch block
e.printStackTrace();
}
-
try {
while (res.next()) {
-
-
+ //fill the list with users - permissions are all false because the image is new
list.add(new Person(res.getString("userID"),
res.getString("Nachname"),
- res.getString("Vorname")));
-
+ res.getString("Vorname"), false, false, false, false, false, false, false));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
return list;
-
- }
+ }//end getAllOtherSatelliteUsers()
+
+ // get the permissions of an image or a lecture for all other registered users -EXCEPT- the logged on user
+ public List<Person> getPermissionForUserAndImage(String userID, String imageID){
+ Connection con=getConnection();
+ Statement stm=null;
+ ResultSet res = null;
+ List<Person> list = new ArrayList<Person>();
+
+ try {
+ stm = con.createStatement();
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ try {
+ res = stm.executeQuery("SELECT DISTINCT pmi.GUID_imageID, pmi.userID, u.userID, u.Nachname, u.Vorname, pmi.image_read, pmi.image_write, pmi.image_admin, pmi.link_allowed FROM bwLehrpool.pm_VLData_image pmi, bwLehrpool.m_user u WHERE pmi.userID!='"+userID+"' AND pmi.GUID_imageID='"+imageID+"' AND pmi.userID=u.userID AND pmi.image_write=1 ORDER BY u.Nachname ASC;");
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ try {
+ while (res.next()) {
+ //fill the list with users - permissions are all false because the image is new
+ list.add(new Person(res.getString("userID"),
+ res.getString("Nachname"),
+ res.getString("Vorname"),
+ Boolean.parseBoolean(res.getString("image_read")),
+ Boolean.parseBoolean(res.getString("image_write")),
+ Boolean.parseBoolean(res.getString("image_admin")),
+ Boolean.parseBoolean(res.getString("link_allowed")),
+ false, //lecture_read
+ false, //lecture_write
+ false) //lecture_admin
+ );
+ }
+ } catch (SQLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return list;
+ }//end getAllOtherSatelliteUsers()
+
+
public boolean updateImagePermissions(){
boolean success=true;
|
