Changeset 25125

Show
Ignore:
Timestamp:
21.02.2012 16:23:53 (8 years ago)
Author:
sjm84
Message:

Added a function that gets a user by username

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/util/DerbyWrapper.java

    r25092 r25125  
    114114            conn.commit(); 
    115115        } 
    116         catch(Exception ex) 
     116        catch (Exception ex) 
    117117        { 
    118118            ex.printStackTrace(); 
     
    125125        String sql_list_all_user = "SELECT username, password, accountstatus, comment FROM " + USERS; 
    126126 
    127         ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String,String>>(); 
     127        ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String, String>>(); 
    128128        ResultSet rs = state.executeQuery(sql_list_all_user); 
    129129        while (rs.next()) 
     
    134134            user.put("as", rs.getString("accountstatus")); 
    135135            user.put("comment", rs.getString("comment")); 
    136              
     136 
    137137            users.add(user); 
    138138        } 
    139          
    140         for(HashMap<String, String> user : users) 
     139 
     140        for (HashMap<String, String> user : users) 
    141141        { 
    142142            ResultSet gs = state.executeQuery("SELECT role FROM roles WHERE username = '" + user.get("username") + "'"); 
    143143            String group = ""; 
    144             while(gs.next()) 
    145             { 
    146                 if(!group.equals("")) 
     144            while (gs.next()) 
     145            { 
     146                if (!group.equals("")) 
    147147                { 
    148148                    group += ","; 
     
    152152            userQueryResult.addUserTerm(user.get("username"), user.get("password"), group, user.get("as"), user.get("comment")); 
    153153        } 
    154          
     154 
    155155        if (userQueryResult.getSize() == 0) 
    156156        { 
     
    171171            String sql_insert_user = "insert into " + USERS + " values ('" + username + "', '" + password + "', '" + accountstatus + "', '" + comment + "')"; 
    172172            state.execute(sql_insert_user); 
    173              
     173 
    174174            String[] groupArray = groups.split(","); 
    175             for(String g : groupArray) 
     175            for (String g : groupArray) 
    176176            { 
    177177                String sql_insert_group = "insert into " + ROLES + " values ('" + username + "', '" + g + "')"; 
    178178                state.execute(sql_insert_group); 
    179179            } 
    180              
     180 
    181181            conn.commit(); 
    182182        } 
     
    196196            return "Error:" + e.getMessage(); 
    197197        } 
    198          
     198 
    199199        return "succeed"; 
    200200    } 
     
    281281            sql_find_user += append_sql; 
    282282        } 
    283          
    284         ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String,String>>(); 
     283 
     284        ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String, String>>(); 
    285285        ResultSet rs = state.executeQuery(sql_find_user); 
    286286        while (rs.next()) 
     
    291291            user.put("as", rs.getString("accountstatus")); 
    292292            user.put("comment", rs.getString("comment")); 
    293              
     293 
    294294            users.add(user); 
    295295        } 
    296296        conn.commit(); 
    297          
    298         for(HashMap<String, String> user : users) 
     297 
     298        for (HashMap<String, String> user : users) 
    299299        { 
    300300            ResultSet gs = state.executeQuery("SELECT role FROM " + ROLES + " WHERE username = '" + user.get("username") + "'"); 
    301              
     301 
    302302            String group = ""; 
    303             while(gs.next()) 
    304             { 
    305                 if(!group.equals("")) 
     303            while (gs.next()) 
     304            { 
     305                if (!group.equals("")) 
    306306                { 
    307307                    group += ","; 
     
    309309                group += gs.getString("role"); 
    310310            } 
    311              
    312             System.out.println("GROUP = " + group); 
    313              
     311 
    314312            userQueryResult.addUserTerm(user.get("username"), user.get("password"), group, user.get("as"), user.get("comment")); 
    315313        } 
    316          
     314 
     315        if (userQueryResult.getSize() > 0) 
     316        { 
     317            return userQueryResult; 
     318        } 
     319        else 
     320        { 
     321            System.out.println("couldn't find the user"); 
     322            return null; 
     323        } 
     324    } 
     325 
     326    public UserQueryResult findUser(String username) throws SQLException 
     327    { 
     328        UserQueryResult userQueryResult = new UserQueryResult(); 
     329 
     330        conn.setAutoCommit(false); 
     331        String sql_find_user = "SELECT  username, password, accountstatus, comment FROM " + USERS; 
     332        String append_sql = ""; 
     333 
     334        if (username != null) 
     335        { 
     336            append_sql = " WHERE username = '" + username + "'"; 
     337        } 
     338        if (!append_sql.equals("")) 
     339        { 
     340            sql_find_user += append_sql; 
     341        } 
     342 
     343        ArrayList<HashMap<String, String>> users = new ArrayList<HashMap<String, String>>(); 
     344        ResultSet rs = state.executeQuery(sql_find_user); 
     345        while (rs.next()) 
     346        { 
     347            HashMap<String, String> user = new HashMap<String, String>(); 
     348            user.put("username", rs.getString("username")); 
     349            user.put("password", rs.getString("password")); 
     350            user.put("as", rs.getString("accountstatus")); 
     351            user.put("comment", rs.getString("comment")); 
     352 
     353            users.add(user); 
     354        } 
     355        conn.commit(); 
     356 
     357        for (HashMap<String, String> user : users) 
     358        { 
     359            ResultSet gs = state.executeQuery("SELECT role FROM " + ROLES + " WHERE username = '" + user.get("username") + "'"); 
     360 
     361            String group = ""; 
     362            while (gs.next()) 
     363            { 
     364                if (!group.equals("")) 
     365                { 
     366                    group += ","; 
     367                } 
     368                group += gs.getString("role"); 
     369            } 
     370 
     371            userQueryResult.addUserTerm(user.get("username"), user.get("password"), group, user.get("as"), user.get("comment")); 
     372        } 
     373 
    317374        if (userQueryResult.getSize() > 0) 
    318375        { 
     
    336393                sql_modify_user_info += "password='" + new_password + "'"; 
    337394            } 
    338      
     395 
    339396            if (accountstatus != null && comment != null) 
    340397            { 
     
    344401            System.out.println(sql_modify_user_info); 
    345402            state.execute(sql_modify_user_info); 
    346              
     403 
    347404            String sql_delete_groups = "delete from " + ROLES + " where username='" + username + "'"; 
    348405            state.execute(sql_delete_groups); 
    349              
     406 
    350407            String[] groupsArray = groups.split(","); 
    351             for(String g : groupsArray) 
     408            for (String g : groupsArray) 
    352409            { 
    353410                String sql_insert_group = "insert into " + ROLES + " values ('" + username + "', '" + g + "')"; 
    354411                state.execute(sql_insert_group); 
    355412            } 
    356              
     413 
    357414            conn.commit(); 
    358415        } 
     
    390447            ResultSet groupsSet = state.executeQuery("SELECT role FROM " + ROLES + " WHERE username = '" + returned_username + "'"); 
    391448            String returned_groups = ""; 
    392             while(groupsSet.next()) 
    393             { 
    394                 if(!returned_groups.equals("")) 
     449            while (groupsSet.next()) 
     450            { 
     451                if (!returned_groups.equals("")) 
    395452                { 
    396453                    returned_groups += ",";