Changeset 25125 for main


Ignore:
Timestamp:
2012-02-21T16:23:53+13:00 (12 years ago)
Author:
sjm84
Message:

Added a function that gets a user by username

File:
1 edited

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 += ",";
Note: See TracChangeset for help on using the changeset viewer.