[prev in list] [next in list] [prev in thread] [next in thread]
List: slide-dev
Subject: cvs commit: jakarta-slide/src/share/org/apache/slide/security Security.java SecurityImpl.java
From: juergen () apache ! org
Date: 2001-02-26 12:52:00
[Download RAW message or body]
juergen 01/02/26 04:52:00
Modified: src/share/org/apache/slide/macro MacroImpl.java
src/share/org/apache/slide/common
NamespaceAccessTokenImpl.java
src/share/org/apache/slide/security Security.java
SecurityImpl.java
Log:
in case of a non versioned resource (this is default) a delete removes all the \
entries in the child stores (e.g. lock, security, rd, rds)
Revision Changes Path
1.11 +49 -25 jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java
Index: MacroImpl.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- MacroImpl.java 2001/02/19 17:04:42 1.10
+++ MacroImpl.java 2001/02/26 12:51:57 1.11
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v \
1.10 2001/02/19 17:04:42 juergen Exp $
- * $Revision: 1.10 $
- * $Date: 2001/02/19 17:04:42 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v \
1.11 2001/02/26 12:51:57 juergen Exp $ + * $Revision: 1.11 $
+ * $Date: 2001/02/26 12:51:57 $
*
* ====================================================================
*
@@ -71,12 +71,13 @@
import org.apache.slide.structure.*;
import org.apache.slide.security.*;
import org.apache.slide.content.*;
+import org.apache.slide.lock.*;
/**
* Macro helper class.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.10 $
+ * @version $Revision: 1.11 $
*/
public final class MacroImpl implements Macro {
@@ -94,12 +95,14 @@
*/
public MacroImpl(Namespace namespace, NamespaceConfig namespaceConfig,
Security securityHelper, Content contentHelper,
- Structure structureHelper) {
- this.namespace = namespace;
+ Structure structureHelper,
+ Lock lockHelper) {
+ this.namespace = namespace;
this.namespaceConfig = namespaceConfig;
- this.securityHelper = securityHelper;
- this.contentHelper = contentHelper;
+ this.securityHelper = securityHelper;
+ this.contentHelper = contentHelper;
this.structureHelper = structureHelper;
+ this.lockHelper = lockHelper;
}
@@ -136,6 +139,12 @@
private Security securityHelper;
+ /**
+ * Lock helper.
+ */
+ private Lock lockHelper;
+
+
// ---------------------------------------------------------- Macro Methods
@@ -411,28 +420,43 @@
if (currentObject.hasChildren()) {
Enumeration children = currentObject.enumerateChildren();
while (children.hasMoreElements()) {
- deleteObject(token, (String) children.nextElement(),
- e);
+ deleteObject(token, (String) children.nextElement(), e);
}
}
- // Removing object
- structureHelper.remove(token, currentObject);
+
+ // Removing all revisions
+ NodeRevisionDescriptors revisionDescriptors =
+ contentHelper.retrieve(token, targetUri);
+
+ // if the object is not revisioned remove it completely
+ // from it's associated stores
+ if (!revisionDescriptors.isVersioned()) {
+ // remove the associated locks
+ Enumeration locks = lockHelper.enumerateLocks(token, targetUri);
+ while (locks.hasMoreElements()) {
+ lockHelper.unlock(token, (NodeLock) locks.nextElement());
+ }
+ // remove the associated security
+ Enumeration permissions = \
securityHelper.enumeratePermissions(token, targetUri); + while \
(permissions.hasMoreElements()) { + NodePermission permission = \
(NodePermission) permissions.nextElement(); + \
securityHelper.revokePermission(token, permission); + }
+ // remove the NodeRevisionDescriptor and associated content
+ if (revisionDescriptors.hasRevisions()) {
+ contentHelper.remove(token, targetUri,
+ \
revisionDescriptors.getInitialRevision()); + }
+
+ // remove the NodeRevisionDescriptors object
+ contentHelper.remove(token, revisionDescriptors);
+
+ }
- // TODO : Remove permissions
+ // Removing object.
+ structureHelper.remove(token, currentObject);
- /*
- try {
- NodeProperties properties =
- structureHelper.retrieve(token, currentObject);
- structureHelper.remove(token, properties);
- structureHelper.remove(token, currentObject);
- } catch(StructureException ex) {
- // Perhaps there were no properties associated with
- // this object ...
- ex.printStackTrace();
- }
- */
} catch (SlideException ex) {
e.addException(ex);
1.13 +6 -5 \
jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java
Index: NamespaceAccessTokenImpl.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- NamespaceAccessTokenImpl.java 2001/02/26 12:49:20 1.12
+++ NamespaceAccessTokenImpl.java 2001/02/26 12:51:58 1.13
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v \
1.12 2001/02/26 12:49:20 juergen Exp $
- * $Revision: 1.12 $
- * $Date: 2001/02/26 12:49:20 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/common/NamespaceAccessTokenImpl.java,v \
1.13 2001/02/26 12:51:58 juergen Exp $ + * $Revision: 1.13 $
+ * $Date: 2001/02/26 12:51:58 $
*
* ====================================================================
*
@@ -106,7 +106,7 @@
* Namespace access token implementation.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
*/
public final class NamespaceAccessTokenImpl implements NamespaceAccessToken {
@@ -132,7 +132,7 @@
structureHelper, lockHelper);
macroHelper =
new MacroImpl(namespace, namespace.getConfig(), securityHelper,
- contentHelper, structureHelper);
+ contentHelper, structureHelper, lockHelper);
}
@@ -460,4 +460,5 @@
}
+
1.13 +17 -0 \
jakarta-slide/src/share/org/apache/slide/security/Security.java
Index: Security.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- Security.java 2001/02/26 12:47:22 1.12
+++ Security.java 2001/02/26 12:51:59 1.13
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v \
1.12 2001/02/26 12:47:22 juergen Exp $
- * $Revision: 1.12 $
- * $Date: 2001/02/26 12:47:22 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/Security.java,v \
1.13 2001/02/26 12:51:59 juergen Exp $ + * $Revision: 1.13 $
+ * $Date: 2001/02/26 12:51:59 $
*
* ====================================================================
*
@@ -73,7 +73,7 @@
* Security helper.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.12 $
+ * @version $Revision: 1.13 $
*/
public interface Security {
@@ -235,6 +235,23 @@
SubjectNode subject, ActionNode action)
throws ServiceAccessException, ObjectNotFoundException,
AccessDeniedException;
+
+
+ /**
+ * Revokes a permission.
+ *
+ * @param token Credentials token
+ * @param permission Permission to be removed
+ * @exception ServiceAccessException DataSource access error
+ * @exception ObjectNotFoundException Specified object was not found
+ * in the DataSource
+ * @exception AccessDeniedException Insufficent credentials
+ */
+ public void revokePermission(SlideToken token, NodePermission permission)
+ throws ServiceAccessException, ObjectNotFoundException,
+ AccessDeniedException;
+
+
/**
1.20 +23 -0 \
jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java
Index: SecurityImpl.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- SecurityImpl.java 2001/02/26 12:45:14 1.19
+++ SecurityImpl.java 2001/02/26 12:52:00 1.20
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v \
1.19 2001/02/26 12:45:14 juergen Exp $
- * $Revision: 1.19 $
- * $Date: 2001/02/26 12:45:14 $
+ * $Header: /home/cvs/jakarta-slide/src/share/org/apache/slide/security/SecurityImpl.java,v \
1.20 2001/02/26 12:52:00 juergen Exp $ + * $Revision: 1.20 $
+ * $Date: 2001/02/26 12:52:00 $
*
* ====================================================================
*
@@ -75,7 +75,7 @@
* Security helper.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.19 $
+ * @version $Revision: 1.20 $
*/
public final class SecurityImpl implements Security {
@@ -292,6 +292,29 @@
Uri objectUri = namespace.getUri(object.getUri());
objectUri.getStore()
.revokePermission(objectUri, permission);
+ }
+
+
+
+ /**
+ * Revokes a permission.
+ *
+ * @param token Credentials token
+ * @param permission Permission to be removed
+ * @exception ServiceAccessException DataSource access error
+ * @exception ObjectNotFoundException Specified object was not found
+ * in the DataSource
+ * @exception AccessDeniedException Insufficent credentials
+ */
+ public void revokePermission(SlideToken token, NodePermission permission)
+ throws ServiceAccessException, ObjectNotFoundException,
+ AccessDeniedException {
+
+ Uri objectUri = namespace.getUri(permission.getObjectUri());
+ ObjectNode object = objectUri.getStore().retrieveObject(objectUri);
+
+ checkCredentials(token, object, \
namespaceConfig.getRevokePermissionAction()); + \
objectUri.getStore().revokePermission(objectUri, permission); }
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic