Project

General

Profile

« Previous | Next » 

Revision 5098

Added by daigle almost 15 years ago

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.

View differences:

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