| 1 21 package com.izforge.izpack.util.os.unix; 22 23 import com.izforge.izpack.util.StringTool; 24 25 import java.io.File ; 26 27 import java.util.ArrayList ; 28 29 34 public class UnixUsers extends ArrayList  35 { 36 37 39 40 private static final long serialVersionUID = -4804842346742194981L; 41 42 44 47 public UnixUsers() 48 { 49 fromUsersArrayList(getEtcPasswdUsersAsArrayList()); 50 fromUsersArrayList(getYpPasswdUsersAsArrayList()); 51 } 52 53 59 public ArrayList getUsersWithValidShells() 60 { 61 ArrayList result = new ArrayList (); 62 63 for (int idx = 0; idx < size(); idx++) 64 { 65 UnixUser user = (UnixUser) get(idx); 66 67 if ((user.getShell() != null) && user.getShell().trim().endsWith("sh")) 68 { 69 result.add(user); 70 } 71 } 72 73 return result; 74 } 75 76 81 public ArrayList getUsersWithValidShellsAndExistingHomes() 82 { 83 ArrayList result = new ArrayList (); 84 85 ArrayList usersWithValidShells = getUsersWithValidShells(); 86 87 for (int idx = 0; idx < usersWithValidShells.size(); idx++) 88 { 89 UnixUser user = (UnixUser) usersWithValidShells.get(idx); 90 91 if ((user.getHome() != null) && new File (user.getHome().trim()).exists()) 92 { 93 result.add(user); 94 } 95 } 96 97 return result; 98 } 99 100 106 public ArrayList _getUsersWithValidShellsExistingHomesAndDesktops() 107 { 108 ArrayList result = new ArrayList (); 109 110 ArrayList usersWithValidShellsAndExistingHomes = getUsersWithValidShellsAndExistingHomes(); 111 112 for (int idx = 0; idx < usersWithValidShellsAndExistingHomes.size(); idx++) 113 { 114 UnixUser user = (UnixUser) usersWithValidShellsAndExistingHomes.get(idx); 115 116 if ((user.getHome() != null) 117 && new File (user.getHome().trim() + File.separator + "Desktop").exists()) 118 { 119 result.add(user); 120 } 121 } 122 123 return result; 124 } 125 126 131 public ArrayList getValidUsersDesktopFolders() 132 { 133 ArrayList result = new ArrayList (); 134 135 ArrayList validUserDesktops = getUsersWithValidShellsExistingHomesAndDesktops(); 136 137 for (int idx = 0; idx < validUserDesktops.size(); idx++) 138 { 139 UnixUser user = (UnixUser) validUserDesktops.get(idx); 140 new File (user.getHome().trim() + File.separator + "Desktop"); 141 142 if (user.getHome() != null) 143 { 144 File DesktopFolder = new File (user.getHome().trim() + File.separator + "Desktop"); 145 146 if (DesktopFolder.exists() && DesktopFolder.isDirectory()) 147 { 148 result.add(DesktopFolder.toString()); 149 } 150 } 151 } 152 153 return result; 154 } 155 156 162 public static ArrayList getUsersWithValidShellsExistingHomesAndDesktops() 163 { 164 UnixUsers users = new UnixUsers(); 165 166 return users._getUsersWithValidShellsExistingHomesAndDesktops(); 167 } 168 169 174 private void fromUsersArrayList(ArrayList anUsersArrayList) 175 { 176 for (int idx = 0; idx < anUsersArrayList.size(); idx++) 177 { 178 add(new UnixUser().fromEtcPasswdLine((String ) anUsersArrayList.get(idx))); 179 } 180 } 181 182 187 public static ArrayList getEtcPasswdUsersAsArrayList() 188 { 189 ArrayList result = new ArrayList (); 190 ArrayList etcPasswdArray = UnixHelper.getEtcPasswdArray(); 191 192 for (int idx = 0; idx < etcPasswdArray.size(); idx++) 193 { 194 String line = (String ) etcPasswdArray.get(idx); 195 result.add(line); 196 } 197 198 return result; 199 } 200 201 206 public static ArrayList getYpPasswdUsersAsArrayList() 207 { 208 return UnixHelper.getYpPasswdArray(); 209 } 210 211 216 public static String getUsersColonString() 217 { 218 ArrayList usersArrayList = getEtcPasswdUsersAsArrayList(); 219 220 String retValue = ""; 221 222 for (int user = 0; user < usersArrayList.size(); user++) 223 { 224 String userline = (String ) usersArrayList.get(user); 225 retValue += (userline.substring(0, userline.indexOf(":")) + ":"); 226 } 227 228 if (retValue.endsWith(":")) 229 { 230 retValue = retValue.substring(0, retValue.length() - 1); 231 } 232 233 return retValue; 234 } 235 236 241 public static void main(String [] args) 242 { 243 System.out.println("UnixUsers:"); 244 245 UnixUsers users = new UnixUsers(); 246 247 for (int idx = 0; idx < users.size(); idx++) 249 { 250 System.out.println(((UnixUser) users.get(idx)).getName()); 251 } 252 253 System.out.println(StringTool 254 .stringArrayListToString(getUsersWithValidShellsExistingHomesAndDesktops())); 255 256 } 258 } 259 | Popular Tags |