Changeset 11942
- Timestamp:
- 2006-06-20T10:53:18+12:00 (18 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/remote/ZipCollectionConfigurations.java
r10726 r11942 12 12 static public void main(String[] args) 13 13 { 14 if (args.length != 2) {15 System.err.println("Usage: ZipCollectionConfigurations <zip-file> <collect-directory-path> ");14 if (args.length != 4) { 15 System.err.println("Usage: ZipCollectionConfigurations <zip-file> <collect-directory-path> <user-name> <user-groups>"); 16 16 return; 17 17 } … … 19 19 String zip_file_path = args[0]; 20 20 String collect_directory_path = args[1]; 21 String user_name = args[2]; 22 String user_groups = args[3]; 21 23 22 24 if (!collect_directory_path.endsWith(File.separator)) { … … 30 32 ZipTools.ZipFilter collection_metadata_zip_filter = new CollectionMetadataZipFilter(); 31 33 32 // Add the etc and metadata directories from each of the collections 34 // Add the etc and metadata directories from each of the collections the user has access to 33 35 File[] collection_directories = collect_directory.listFiles(); 34 36 for (int i = 0; i < collection_directories.length; i++) { 35 37 if (collection_directories[i].isDirectory()) { 36 String etc_relative_path = collection_directories[i].getName() + File.separator + "etc"; 37 ZipTools.addFileToZip(zos, collect_directory_path, etc_relative_path, collection_etc_zip_filter); 38 39 String metadata_relative_path = collection_directories[i].getName() + File.separator + "metadata"; 40 ZipTools.addFileToZip(zos, collect_directory_path, metadata_relative_path, collection_metadata_zip_filter); 38 String collection_name = collection_directories[i].getName(); 39 if (checkAccess(collection_name, user_name, user_groups)) { 40 String etc_relative_path = collection_directories[i].getName() + File.separator + "etc"; 41 ZipTools.addFileToZip(zos, collect_directory_path, etc_relative_path, collection_etc_zip_filter); 42 String metadata_relative_path = collection_directories[i].getName() + File.separator + "metadata"; 43 ZipTools.addFileToZip(zos, collect_directory_path, metadata_relative_path, collection_metadata_zip_filter); 44 } 41 45 } 42 46 } 43 47 48 zos.putNextEntry(new ZipEntry(".gli")); 44 49 zos.close(); 45 50 } … … 47 52 exception.printStackTrace(); 48 53 } 54 } 55 56 57 static private boolean checkAccess(String collection_name, String user_name, String user_groups) 58 { 59 String[] user_groups_array = user_groups.split(","); 60 for (int i = 0; i < user_groups_array.length; i++) { 61 if (user_groups_array[i].equals("all-collections-editor")) { 62 return true; 63 } 64 if (user_groups_array[i].equals("personal-collections-editor") && collection_name.startsWith(user_name + "-")) { 65 return true; 66 } 67 if (user_groups_array[i].equals(collection_name + "-collection-editor")) { 68 return true; 69 } 70 } 71 72 return false; 49 73 } 50 74 -
trunk/gsdl/cgi-bin/gliserver.pl
r11941 r11942 409 409 410 410 # Users can be in any group to perform this action 411 &authenticate_user($gsdl_cgi, $username, "");411 my $user_groups = &authenticate_user($gsdl_cgi, $username, ""); 412 412 413 413 my $gsdlhome = $ENV{'GSDLHOME'}; … … 419 419 my $java_classpath = &util::filename_cat($gsdlhome, "bin", "java", "GLIServer.jar"); 420 420 my $zip_file_path = &util::filename_cat($collect_directory, $username . "-" . "collection-configurations.zip"); 421 my $java_args = "\"$zip_file_path\" \"$collect_directory\" ";421 my $java_args = "\"$zip_file_path\" \"$collect_directory\" \"$username\" \"$user_groups\""; 422 422 my $java_command = "$java -classpath \"$java_classpath\" org.greenstone.gatherer.remote.ZipCollectionConfigurations $java_args"; 423 423
Note:
See TracChangeset
for help on using the changeset viewer.