Revision 6122
Added by ben leinfelder almost 13 years ago
IdentifierManager.java | ||
---|---|---|
1242 | 1242 |
*/ |
1243 | 1243 |
private void insertAccessPolicy(String guid, AccessPolicy accessPolicy) throws McdbDocNotFoundException, AccessException { |
1244 | 1244 |
|
1245 |
String docid = getLocalId(guid); |
|
1246 | 1245 |
List<XMLAccessDAO> accessDAOs = new ArrayList<XMLAccessDAO>(); |
1247 | 1246 |
for (AccessRule accessRule: accessPolicy.getAllowList()) { |
1248 | 1247 |
List<Subject> subjects = accessRule.getSubjectList(); |
1249 | 1248 |
List<Identifier> resources = accessRule.getResourceList(); |
1250 | 1249 |
List<Permission> permissions = accessRule.getPermissionList(); |
1251 | 1250 |
for (Subject subject: subjects) { |
1252 |
for (Identifier resource: resources) { |
|
1253 |
docid = getLocalId(resource.getValue()); |
|
1254 |
XMLAccessDAO accessDAO = new XMLAccessDAO(); |
|
1255 |
accessDAO.setPrincipalName(subject.getValue()); |
|
1256 |
accessDAO.setDocId(docid); |
|
1257 |
accessDAO.setPermType(AccessControlInterface.ALLOW); |
|
1258 |
accessDAO.setPermOrder(AccessControlInterface.DENYFIRST); |
|
1259 |
for (Permission permission: permissions) { |
|
1260 |
Long metacatPermission = new Long(convertPermission(permission)); |
|
1261 |
accessDAO.addPermission(metacatPermission); |
|
1262 |
} |
|
1263 |
accessDAOs.add(accessDAO); |
|
1264 |
} |
|
1251 |
XMLAccessDAO accessDAO = new XMLAccessDAO(); |
|
1252 |
accessDAO.setPrincipalName(subject.getValue()); |
|
1253 |
accessDAO.setGuid(guid); |
|
1254 |
accessDAO.setPermType(AccessControlInterface.ALLOW); |
|
1255 |
accessDAO.setPermOrder(AccessControlInterface.DENYFIRST); |
|
1256 |
for (Permission permission: permissions) { |
|
1257 |
Long metacatPermission = new Long(convertPermission(permission)); |
|
1258 |
accessDAO.addPermission(metacatPermission); |
|
1259 |
} |
|
1260 |
accessDAOs.add(accessDAO); |
|
1265 | 1261 |
} |
1266 | 1262 |
} |
1267 | 1263 |
|
1268 |
XMLAccessAccess accessController = new XMLAccessAccess(); |
|
1269 |
accessController.replaceAccess(docid, accessDAOs); |
|
1264 |
// use GUID to update |
|
1265 |
XMLAccessAccess accessController = new XMLAccessAccess(true); |
|
1266 |
accessController.replaceAccess(guid, accessDAOs); |
|
1270 | 1267 |
|
1271 | 1268 |
|
1272 | 1269 |
} |
... | ... | |
1279 | 1276 |
* @throws AccessException |
1280 | 1277 |
*/ |
1281 | 1278 |
private AccessPolicy getAccessPolicy(String guid) throws McdbDocNotFoundException, AccessException { |
1282 |
String docid = getLocalId(guid); |
|
1283 |
XMLAccessAccess accessController = new XMLAccessAccess(); |
|
1284 |
List<XMLAccessDAO> accessDAOs = accessController.getXMLAccessForDoc(docid); |
|
1285 |
AccessRule accessRule = new AccessRule(); |
|
1286 |
Identifier resource = new Identifier(); |
|
1287 |
resource.setValue(guid); |
|
1288 |
accessRule.addResource(resource); |
|
1279 |
// use GUID to look up the access |
|
1280 |
XMLAccessAccess accessController = new XMLAccessAccess(true); |
|
1281 |
List<XMLAccessDAO> accessDAOs = accessController.getXMLAccessForDoc(guid); |
|
1282 |
AccessRule accessRule = new AccessRule(); |
|
1289 | 1283 |
for (XMLAccessDAO accessDAO: accessDAOs) { |
1290 | 1284 |
Permission permission = convertPermission(accessDAO.getPermission().intValue()); |
1291 | 1285 |
accessRule.addPermission(permission); |
Also available in: Unified diff
include GUID column for xml_access and related methods for storing/retrieving access rules