Changeset 11942 for trunk/gli


Ignore:
Timestamp:
2006-06-20T10:53:18+12:00 (18 years ago)
Author:
mdewsnip
Message:

ZipCollectionConfigurations now includes only those collections that the user has access to.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gli/src/org/greenstone/gatherer/remote/ZipCollectionConfigurations.java

    r10726 r11942  
    1212    static public void main(String[] args)
    1313    {
    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>");
    1616        return;
    1717    }
     
    1919    String zip_file_path = args[0];
    2020    String collect_directory_path = args[1];
     21    String user_name = args[2];
     22    String user_groups = args[3];
    2123
    2224    if (!collect_directory_path.endsWith(File.separator)) {
     
    3032        ZipTools.ZipFilter collection_metadata_zip_filter = new CollectionMetadataZipFilter();
    3133
    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
    3335        File[] collection_directories = collect_directory.listFiles();
    3436        for (int i = 0; i < collection_directories.length; i++) {
    3537        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            }
    4145        }
    4246        }
    4347
     48        zos.putNextEntry(new ZipEntry(".gli"));
    4449        zos.close();
    4550    }
     
    4752        exception.printStackTrace();
    4853    }
     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;
    4973    }
    5074
Note: See TracChangeset for help on using the changeset viewer.