44import java .awt .FlowLayout ;
55import java .awt .Toolkit ;
66import java .awt .event .ActionEvent ;
7+ import java .awt .event .MouseAdapter ;
8+ import java .awt .event .MouseEvent ;
9+ import java .awt .event .MouseListener ;
710import java .sql .ResultSet ;
811import java .sql .SQLException ;
912
3336import javax .swing .JTextField ;
3437import javax .swing .JComboBox ;
3538import javax .swing .DefaultComboBoxModel ;
39+ import java .awt .event .ActionListener ;
3640
3741public class Benutzervewaltung extends JDialog {
3842
@@ -49,7 +53,7 @@ public Benutzervewaltung(DBManager dbm) {
4953 setTitle ("Benutzerverwaltung" );
5054 setDefaultCloseOperation (JDialog .DISPOSE_ON_CLOSE );
5155 setModal (true );
52- setIconImage (Toolkit .getDefaultToolkit ().getImage (AnmeldungGui .class .getResource ("/img /icon.png" )));
56+ setIconImage (Toolkit .getDefaultToolkit ().getImage (AnmeldungGui .class .getResource ("/resources /icon.png" )));
5357 setBounds (100 , 100 , 673 , 353 );
5458 getContentPane ().setLayout (new BorderLayout ());
5559 contentPanel .setBorder (new EmptyBorder (5 , 5 , 5 , 5 ));
@@ -77,7 +81,13 @@ public Benutzervewaltung(DBManager dbm) {
7781
7882 JButton btnErstellen = new JButton ("Erstellen" );
7983
84+
8085 JButton btnSchliessen = new JButton ("Schließen" );
86+ btnSchliessen .addActionListener (new ActionListener () {
87+ public void actionPerformed (ActionEvent e ) {
88+ dispose ();
89+ }
90+ });
8191
8292 JComboBox comboBox = new JComboBox ();
8393 comboBox .setModel (new DefaultComboBoxModel (new String [] {"%" , "localhost" }));
@@ -196,14 +206,70 @@ public void actionPerformed(ActionEvent e)
196206 }
197207 }
198208 };
209+
210+ getData (dbm );
211+ table .addMouseListener ((MouseListener ) new MouseAdapter () {
212+ public void mouseClicked (MouseEvent e ) {
213+ if (e .getClickCount () == 2 ) {
214+ int dialogButton = JOptionPane .YES_NO_OPTION ;
215+ int dialogResult = JOptionPane .showConfirmDialog (null , "Sind Sie sicher, dass Sie diesen Benutzer Löschen möchten?" , "Warnung" , dialogButton , JOptionPane .WARNING_MESSAGE );
216+ if (dialogResult == JOptionPane .YES_OPTION ){
217+ //Tabelle suche (quelle + reihe)
218+ JTable target = (JTable )e .getSource ();
219+ int row = target .getSelectedRow (); // select a row
220+
221+ //Get benutzer und host von der Quelle
222+ String benutzer = (String ) table .getModel ().getValueAt (row , 0 );
223+ String host = (String ) table .getModel ().getValueAt (row , 1 );
224+ try {
225+ //Löscht benutzer
226+ dbm .startConnect ("" );
227+ dbm .getStatement ().executeUpdate ("DROP USER '" +benutzer +"'@'" +host +"';" );
228+ System .out .println ("Benutzer gelöscht!" );
229+ ((DefaultTableModel )table .getModel ()).removeRow (row );
230+ dbm .closeConnection ();
231+ getData (dbm );
232+ } catch (SQLException e1 ) {
233+ e1 .printStackTrace ();
234+ JOptionPane .showMessageDialog (null , e1 , "Fehler" , JOptionPane .ERROR_MESSAGE );
235+ }
236+ }
237+ }
238+ }
239+ });
240+
241+
242+ btnErstellen .addActionListener (new ActionListener () {
243+ public void actionPerformed (ActionEvent e ) {
244+ dbm .startConnect ("" );
245+ try {
246+ dbm .getStatement ().executeUpdate ("CREATE USER '" +textFieldBenutzername .getText ()+"'@'" +comboBox .getSelectedItem ().toString ()+"' IDENTIFIED BY '" +textFieldPasswort .getText ()+"';" );
247+ dbm .getStatement ().executeUpdate ("GRANT ALL PRIVILEGES ON crm . * TO '" +textFieldBenutzername .getText ()+"'@'" +comboBox .getSelectedItem ().toString ()+"'" );
248+ JOptionPane .showMessageDialog (null , "Benutzer erfolgreich erstellt" , "Info" , JOptionPane .INFORMATION_MESSAGE );
249+ getData (dbm );
250+ } catch (SQLException e1 ) {
251+ // TODO Auto-generated catch block
252+ e1 .printStackTrace ();
253+ JOptionPane .showMessageDialog (null , e1 , "Fehler" , JOptionPane .ERROR_MESSAGE );
254+ }
255+ dbm .closeConnection ();
256+ }
257+ });
258+
259+
260+
261+ }
262+
263+ private void getData (DBManager dbm ) {
199264 try {
200265 //Listet alle relevante Benutzer auf (Tabelle)
201266 dbm .startConnect ("" );
267+ DefaultTableModel tbm = (DefaultTableModel ) table .getModel ();
268+ tbm .setRowCount (0 );
202269 ResultSet rs = dbm .getStatement ().executeQuery ("select User, Host from mysql.user where not User=\" root\" and not User=\" mysql.infoschema\" and not User=\" mysql.session\" and not User=\" mysql.sys\" and not User='" +dbm .getUser ()+"';" );
203270 while (rs .next ()){
204- new ButtonColumn (table , deleteAction , 2 );
271+ // new ButtonColumn(table, deleteAction, 2);
205272 String data [] = {rs .getString (1 ),rs .getString (2 ),"Löschen" };
206- DefaultTableModel tbm = (DefaultTableModel ) table .getModel ();
207273 tbm .addRow (data );
208274 }
209275 dbm .closeConnection ();
0 commit comments