Added in the index the id of users and groups that have read access to a file
authorChristos V. Stathis <chstath@ebs.gr>
Mon, 13 Dec 2010 14:49:25 +0000 (16:49 +0200)
committerChristos V. Stathis <chstath@ebs.gr>
Mon, 13 Dec 2010 14:49:25 +0000 (16:49 +0200)
solr/conf/schema.xml
src/gr/ebs/gss/server/ejb/ExternalAPIBean.java
src/gr/ebs/gss/server/ejb/GSSDAOBean.java

index 3729470..eaee272 100644 (file)
    <field name="id" type="string" indexed="true" stored="true" required="true" /> \r
    <field name="name" type="text" indexed="true" stored="true" required="true"/>\r
    <field name="tag" type="text" indexed="true" stored="true" multiValued="true"/>\r
+   <field name="ureaders" type="long" indexed="true" stored="true" multiValued="true"/>\r
+   <field name="greaders" type="long" indexed="true" stored="true" multiValued="true"/>  \r
 <!--   <field name="sku" type="textTight" indexed="true" stored="true" omitNorms="true"/>\r
    <field name="name" type="textgen" indexed="true" stored="true"/>\r
    <field name="alphaNameSort" type="alphaOnlySort" indexed="true" stored="false"/>\r
index fecf7e6..027d822 100644 (file)
@@ -2656,9 +2656,16 @@ public class ExternalAPIBean implements ExternalAPI, ExternalAPIRemote {
                                for (FileTag t : file.getFileTags()) {
                                        solrRequest.getParams().add("literal.tag", t.getTag());
                                }
+                for (Permission p : file.getPermissions()) {
+                    if (p.getRead()) {
+                        if (p.getUser() != null)
+                            solrRequest.setParam("literal.ureaders", p.getUser().getId().toString());
+                        else if (p.getGroup() != null)
+                            solrRequest.setParam("greaders", p.getGroup().getId().toString());
+                    }
+                }
                 File fsFile = new File(body.getStoredFilePath());
                                solrRequest.addFile(fsFile);
-//                             solrRequest.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
                                try {
                                        solr.request(solrRequest);
                                }
@@ -2696,6 +2703,14 @@ public class ExternalAPIBean implements ExternalAPI, ExternalAPIRemote {
                for (FileTag t : file.getFileTags()) {
                        solrDoc.addField("tag", t.getTag());
                }
+        for (Permission p : file.getPermissions()) {
+            if (p.getRead()) {
+                if (p.getUser() != null)
+                    solrDoc.addField("ureaders", p.getUser().getId());
+                else if (p.getGroup() != null)
+                    solrDoc.addField("greaders", p.getGroup().getId());
+            }
+        }
                solr.add(solrDoc);
        }
 
index a3a6af3..7599b80 100644 (file)
@@ -739,6 +739,7 @@ public class GSSDAOBean implements GSSDAO {
     public FileHeader getFileForIndexing(Long id) throws ObjectNotFoundException {
         FileHeader h = getEntityById(FileHeader.class, id);
         h.getFileTags().size();
+        h.getPermissions().size();
         return h;
     }