Revision 5098
Added by daigle almost 15 years ago
ReplicationService.java | ||
---|---|---|
40 | 40 |
import edu.ucsb.nceas.metacat.DocumentImplWrapper; |
41 | 41 |
import edu.ucsb.nceas.metacat.EventLog; |
42 | 42 |
import edu.ucsb.nceas.metacat.McdbException; |
43 |
import edu.ucsb.nceas.metacat.PermissionController; |
|
44 | 43 |
import edu.ucsb.nceas.metacat.accesscontrol.AccessControlForSingleFile; |
44 |
import edu.ucsb.nceas.metacat.accesscontrol.XMLAccessDAO; |
|
45 | 45 |
import edu.ucsb.nceas.metacat.database.DBConnection; |
46 | 46 |
import edu.ucsb.nceas.metacat.database.DBConnectionPool; |
47 | 47 |
import edu.ucsb.nceas.metacat.database.DatabaseService; |
... | ... | |
559 | 559 |
} |
560 | 560 |
|
561 | 561 |
//process extra access rules before dealing with the write exception (doc exist already) |
562 |
Vector<AccessControlForSingleFile> accessControlList = dih |
|
563 |
.getAccessControlList(); |
|
564 |
if (accessControlList != null) { |
|
565 |
for (int i = 0; i < accessControlList.size(); i++) { |
|
566 |
AccessControlForSingleFile acfsf = (AccessControlForSingleFile) accessControlList |
|
567 |
.get(i); |
|
568 |
if (!acfsf.accessControlExists()) { |
|
569 |
acfsf.insertPermissions(); |
|
562 |
// Vector<AccessControlForSingleFile> accessControlList = dih |
|
563 |
// .getAccessControlList(); |
|
564 |
|
|
565 |
Vector<XMLAccessDAO> accessControlList = dih.getAccessControlList(); |
|
566 |
if (accessControlList != null) { |
|
567 |
AccessControlForSingleFile acfsf = new AccessControlForSingleFile(docid); |
|
568 |
for (XMLAccessDAO xmlAccessDAO : accessControlList) { |
|
569 |
if (!acfsf.accessControlExists(xmlAccessDAO)) { |
|
570 |
acfsf.insertPermissions(xmlAccessDAO); |
|
570 | 571 |
logReplication.info("ReplicationService.handleForceReplicateRequest - document " + docid |
571 | 572 |
+ " permissions added to DB"); |
572 |
} |
|
573 |
} |
|
574 |
} |
|
573 |
} |
|
574 |
} |
|
575 |
} |
|
576 |
// if (accessControlList != null) { |
|
577 |
// for (int i = 0; i < accessControlList.size(); i++) { |
|
578 |
// AccessControlForSingleFile acfsf = (AccessControlForSingleFile) accessControlList |
|
579 |
// .get(i); |
|
580 |
// if (!acfsf.accessControlExists()) { |
|
581 |
// acfsf.insertPermissions(); |
|
582 |
// logReplication.info("ReplicationService.handleForceReplicateRequest - document " + docid |
|
583 |
// + " permissions added to DB"); |
|
584 |
// } |
|
585 |
// } |
|
586 |
// } |
|
575 | 587 |
|
576 | 588 |
if (writeException != null) { |
577 | 589 |
throw writeException; |
... | ... | |
724 | 736 |
writeException = e; |
725 | 737 |
} |
726 | 738 |
//process extra access rules |
727 |
Vector<AccessControlForSingleFile> accessControlList = dih |
|
728 |
.getAccessControlList(); |
|
729 |
if (accessControlList != null) { |
|
730 |
for (int i = 0; i < accessControlList.size(); i++) { |
|
731 |
AccessControlForSingleFile acfsf = (AccessControlForSingleFile) accessControlList |
|
732 |
.get(i); |
|
733 |
if (!acfsf.accessControlExists()) { |
|
734 |
acfsf.insertPermissions(); |
|
735 |
logReplication.info("ReplicationService.handleForceReplicateDataFileRequest - datafile " + docid |
|
739 |
// Vector<AccessControlForSingleFile> accessControlList = dih |
|
740 |
// .getAccessControlList(); |
|
741 |
// if (accessControlList != null) { |
|
742 |
// for (int i = 0; i < accessControlList.size(); i++) { |
|
743 |
// AccessControlForSingleFile acfsf = (AccessControlForSingleFile) accessControlList |
|
744 |
// .get(i); |
|
745 |
// if (!acfsf.accessControlExists()) { |
|
746 |
// acfsf.insertPermissions(); |
|
747 |
// logReplication.info("ReplicationService.handleForceReplicateDataFileRequest - datafile " + docid |
|
748 |
// + " permissions added to DB"); |
|
749 |
// } |
|
750 |
// } |
|
751 |
// } |
|
752 |
|
|
753 |
Vector<XMLAccessDAO> accessControlList = dih.getAccessControlList(); |
|
754 |
if (accessControlList != null) { |
|
755 |
AccessControlForSingleFile acfsf = new AccessControlForSingleFile(docid); |
|
756 |
for (XMLAccessDAO xmlAccessDAO : accessControlList) { |
|
757 |
if (!acfsf.accessControlExists(xmlAccessDAO)) { |
|
758 |
acfsf.insertPermissions(xmlAccessDAO); |
|
759 |
logReplication.info("ReplicationService.handleForceReplicateRequest - document " + docid |
|
736 | 760 |
+ " permissions added to DB"); |
737 |
}
|
|
738 |
}
|
|
739 |
}
|
|
761 |
}
|
|
762 |
}
|
|
763 |
}
|
|
740 | 764 |
|
741 | 765 |
if (writeException != null) { |
742 | 766 |
throw writeException; |
... | ... | |
843 | 867 |
sb.append("</public_access><rev>").append(doc.getRev()); |
844 | 868 |
sb.append("</rev>"); |
845 | 869 |
|
846 |
//permissions on the document |
|
847 |
PermissionController permController = new PermissionController(docid); |
|
848 |
Vector<AccessControlForSingleFile> accessControlList = permController |
|
849 |
.getAccessControl(); |
|
850 | 870 |
sb.append("<accessControl>"); |
851 |
for (int i = 0; i < accessControlList.size(); i++) { |
|
852 |
AccessControlForSingleFile acfsf = (AccessControlForSingleFile) accessControlList |
|
853 |
.get(i); |
|
854 |
sb.append(acfsf.getAccessString()); |
|
855 |
} |
|
871 |
|
|
872 |
AccessControlForSingleFile acfsf = new AccessControlForSingleFile(docid); |
|
873 |
sb.append(acfsf.getAccessString()); |
|
874 |
|
|
856 | 875 |
sb.append("</accessControl>"); |
857 | 876 |
|
858 | 877 |
sb.append("</documentinfo>"); |
Also available in: Unified diff
change AccessControlForSingleFile to only be instantiated for one file. move ACL methods to AccessControlForSingleFile. Change format of access sections returned to EML 2.1.0.