svn commit: r1513729 - in /sling/trunk: bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp

2013-08-13 Thread enorman
Author: enorman
Date: Wed Aug 14 05:28:14 2013
New Revision: 1513729

URL: http://svn.apache.org/r1513729
Log:
SLING-3010 integrate patch from Anjan. Added integration tests to guard against 
future regressions.

Modified:

sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

Modified: 
sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java?rev=1513729r1=1513728r2=1513729view=diff
==
--- 
sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java
 (original)
+++ 
sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java
 Wed Aug 14 05:28:14 2013
@@ -484,6 +484,9 @@ public class AccessControlUtil {
if (privilege.isAggregate()) {
Privilege[] privileges = 
privilege.getAggregatePrivileges();
for (Privilege disaggregate : privileges) {
+   if (disaggregate.isAggregate()) {
+   continue; //nested aggregate, so skip 
it since the privileges are already included.
+   }

disaggregatedPrivilegeNames.add(disaggregate.getName());
}
} else {

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java?rev=1513729r1=1513728r2=1513729view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
 Wed Aug 14 05:28:14 2013
@@ -855,4 +855,140 @@ public class ModifyAceTest extends Abstr
 JSONObject jsonObject = new JSONObject(json);
assertNotNull(jsonObject);
}
+   
+   
+   /**
+* Test for SLING-3010
+*/
+   public void 
testMergeAceForUserGrantNestedAggregatePrivilegeAfterDenySuperAggregatePrivilege()
 throws IOException, JSONException {
+   testUserId = createTestUser();
+   
+   testFolderUrl = createTestFolder();
+   
+String postUrl = testFolderUrl + .modifyAce.json;
+
+//1. setup an initial set of denied privileges for the test user
+ListNameValuePair postParams = new ArrayListNameValuePair();
+   postParams.add(new NameValuePair(principalId, testUserId));
+   postParams.add(new 
NameValuePair(privilege@jcr:versionManagement, denied));
+   postParams.add(new NameValuePair(privilege@jcr:read, 
denied));
+   postParams.add(new 
NameValuePair(privilege@jcr:modifyAccessControl, denied)); 
+   postParams.add(new NameValuePair(privilege@rep:write, 
denied)); 
+   
+   Credentials creds = new UsernamePasswordCredentials(admin, 
admin);
+   /*String json = */getAuthenticatedPostContent(creds, postUrl, 
CONTENT_TYPE_JSON, postParams, HttpServletResponse.SC_OK);
+
+   
+//2. now grant the jcr:write subset from the rep:write aggregate 
privilege
+   postParams = new ArrayListNameValuePair();
+   postParams.add(new NameValuePair(principalId, testUserId));
+   postParams.add(new 
NameValuePair(privilege@jcr:versionManagement, granted));
+   postParams.add(new NameValuePair(privilege@jcr:read, 
granted));
+   postParams.add(new 
NameValuePair(privilege@jcr:modifyAccessControl, granted)); 
+   postParams.add(new NameValuePair(privilege@jcr:write, 
granted)); //sub-aggregate of rep:write  
+   
+   /*String json = */getAuthenticatedPostContent(creds, postUrl, 
CONTENT_TYPE_JSON, postParams, HttpServletResponse.SC_OK);
+   
+   //3. verify that the acl has the correct values
+   //fetch the JSON for the acl to verify the settings.
+   String getUrl = testFolderUrl + .acl.json;
+
+   String json = getAuthenticatedContent(creds, getUrl, 
CONTENT_TYPE_JSON, null, HttpServletResponse.SC_OK);
+   assertNotNull(json

svn commit: r1395846 - in /sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post: AbstractGetAclServlet.java GetAclServlet.java GetEffective

2012-10-08 Thread enorman
Author: enorman
Date: Tue Oct  9 02:28:57 2012
New Revision: 1395846

URL: http://svn.apache.org/viewvc?rev=1395846view=rev
Log:
SLING-2616 Enable tidy output from acl servlets

Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java?rev=1395846r1=1395845r2=1395846view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java
 Tue Oct  9 02:28:57 2012
@@ -23,8 +23,8 @@ import java.util.LinkedHashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Map.Entry;
+import java.util.Set;
 
 import javax.jcr.AccessDeniedException;
 import javax.jcr.Item;
@@ -69,7 +69,21 @@ public abstract class AbstractGetAclServ
response.setContentType(application/json);
response.setCharacterEncoding(UTF-8);
 
-   acl.write(response.getWriter());
+   boolean isTidy = false;
+   final String[] selectors = 
request.getRequestPathInfo().getSelectors();
+   if (selectors != null  selectors.length  0) {
+   for (final String level : selectors) {
+   if(tidy.equals(level)) {
+   isTidy = true;
+   }
+   }
+   }
+
+   if (isTidy) {
+   response.getWriter().append(acl.toString(2));
+   } else {
+   acl.write(response.getWriter());
+   }
 } catch (AccessDeniedException ade) {
 response.sendError(HttpServletResponse.SC_NOT_FOUND);
 } catch (ResourceNotFoundException rnfe) {

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java?rev=1395846r1=1395845r2=1395846view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 Tue Oct  9 02:28:57 2012
@@ -115,7 +115,10 @@ import org.apache.sling.jcr.jackrabbit.a
@Property (name=sling.servlet.methods, 
value=GET),
@Property (name=sling.servlet.selectors, 
-   value=acl),
+   value={
+   acl,
+   tidy.acl
+   }),
@Property (name=sling.servlet.extensions, 
value=json)
 })

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java?rev=1395846r1=1395845r2=1395846view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
 Tue Oct  9 02:28:57 2012
@@ -115,7 +115,10 @@ import org.apache.sling.jcr.jackrabbit.a
@Property (name=sling.servlet.methods, 
value=GET),
@Property (name=sling.servlet.selectors, 
-   value=eacl),
+   value={
+   eacl

svn commit: r1395204 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ launchpad/integration-tests/src/main/java/org/apache/slin

2012-10-06 Thread enorman
Author: enorman
Date: Sun Oct  7 01:48:44 2012
New Revision: 1395204

URL: http://svn.apache.org/viewvc?rev=1395204view=rev
Log:
SLING-2600 Effective ACL servlet returns incorrect information

Added:

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/GetAclTest.java
Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/SlingDateValuesTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java?rev=1395204r1=1395203r2=1395204view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
 Sun Oct  7 01:48:44 2012
@@ -96,6 +96,8 @@ public abstract class AbstractAccessPost
 case COPY :   htmlResponse.onCopied(change.getSource(), 
change.getDestination()); break;
 case CREATE : htmlResponse.onCreated(change.getSource()); 
break;
 case ORDER : htmlResponse.onChange(ordered, 
change.getSource(), change.getDestination()); break;
+   default:
+   break;
 }
 }
 

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java?rev=1395204r1=1395203r2=1395204view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 Sun Oct  7 01:48:44 2012
@@ -16,6 +16,9 @@
  */
 package org.apache.sling.jcr.jackrabbit.accessmanager.post;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.security.AccessControlEntry;
@@ -131,13 +134,16 @@ public class GetAclServlet extends Abstr
protected AccessControlEntry[] getAccessControlEntries(Session session, 
String absPath) throws RepositoryException {
AccessControlManager accessControlManager = 
AccessControlUtil.getAccessControlManager(session);
AccessControlPolicy[] policies = 
accessControlManager.getPolicies(absPath);
+ListAccessControlEntry allEntries = new 
ArrayListAccessControlEntry(); 
for (AccessControlPolicy accessControlPolicy : policies) {
if (accessControlPolicy instanceof AccessControlList) {
AccessControlEntry[] accessControlEntries = 
((AccessControlList)accessControlPolicy).getAccessControlEntries();
-   return accessControlEntries;
+for (AccessControlEntry accessControlEntry : 
accessControlEntries) {
+   allEntries.add(accessControlEntry);
+   }
}
}
-   return new AccessControlEntry[0];
+return allEntries.toArray(new AccessControlEntry[allEntries.size()]);
}
 
 }

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java?rev=1395204r1=1395203r2=1395204view=diff

svn commit: r1353206 - /sling/trunk/bundles/resourceresolver/pom.xml

2012-06-23 Thread enorman
Author: enorman
Date: Sat Jun 23 22:16:08 2012
New Revision: 1353206

URL: http://svn.apache.org/viewvc?rev=1353206view=rev
Log:
fixing build for a fresh environment

Modified:
sling/trunk/bundles/resourceresolver/pom.xml

Modified: sling/trunk/bundles/resourceresolver/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/resourceresolver/pom.xml?rev=1353206r1=1353205r2=1353206view=diff
==
--- sling/trunk/bundles/resourceresolver/pom.xml (original)
+++ sling/trunk/bundles/resourceresolver/pom.xml Sat Jun 23 22:16:08 2012
@@ -23,7 +23,7 @@
 groupIdorg.apache.sling/groupId
 artifactIdsling/artifactId
 version13-SNAPSHOT/version
-relativePath../../../parent/pom.xml/relativePath
+relativePath../../parent/pom.xml/relativePath
 /parent
 
 artifactIdorg.apache.sling.resourceresolver/artifactId




svn commit: r1353212 - /sling/trunk/bundles/scripting/jsp-jstl/

2012-06-23 Thread enorman
Author: enorman
Date: Sat Jun 23 22:51:46 2012
New Revision: 1353212

URL: http://svn.apache.org/viewvc?rev=1353212view=rev
Log:
svn:ignore build artifacts and eclipse files

Modified:
sling/trunk/bundles/scripting/jsp-jstl/   (props changed)

Propchange: sling/trunk/bundles/scripting/jsp-jstl/
--
--- svn:ignore (added)
+++ svn:ignore Sat Jun 23 22:51:46 2012
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project




svn commit: r1348688 - in /sling/trunk/samples/custom-selector-login-form: ./ src/ src/main/ src/main/resources/ src/main/resources/org/ src/main/resources/org/apache/ src/main/resources/org/apache/sl

2012-06-10 Thread enorman
Author: enorman
Date: Mon Jun 11 00:07:41 2012
New Revision: 1348688

URL: http://svn.apache.org/viewvc?rev=1348688view=rev
Log:
SLING-2504 - adding sample that demonstrates how to customize the auth.selector 
login page as requested by Dragos Dascalita Haut

Added:
sling/trunk/samples/custom-selector-login-form/
sling/trunk/samples/custom-selector-login-form/LICENSE
sling/trunk/samples/custom-selector-login-form/NOTICE
sling/trunk/samples/custom-selector-login-form/README.txt
sling/trunk/samples/custom-selector-login-form/pom.xml
sling/trunk/samples/custom-selector-login-form/src/
sling/trunk/samples/custom-selector-login-form/src/main/
sling/trunk/samples/custom-selector-login-form/src/main/resources/
sling/trunk/samples/custom-selector-login-form/src/main/resources/org/

sling/trunk/samples/custom-selector-login-form/src/main/resources/org/apache/

sling/trunk/samples/custom-selector-login-form/src/main/resources/org/apache/sling/

sling/trunk/samples/custom-selector-login-form/src/main/resources/org/apache/sling/auth/

sling/trunk/samples/custom-selector-login-form/src/main/resources/org/apache/sling/auth/selector/

sling/trunk/samples/custom-selector-login-form/src/main/resources/org/apache/sling/auth/selector/custom_login.html

Added: sling/trunk/samples/custom-selector-login-form/LICENSE
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/custom-selector-login-form/LICENSE?rev=1348688view=auto
==
--- sling/trunk/samples/custom-selector-login-form/LICENSE (added)
+++ sling/trunk/samples/custom-selector-login-form/LICENSE Mon Jun 11 00:07:41 
2012
@@ -0,0 +1,202 @@
+
+ Apache License
+   Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+  License shall mean the terms and conditions for use, reproduction,
+  and distribution as defined by Sections 1 through 9 of this document.
+
+  Licensor shall mean the copyright owner or entity authorized by
+  the copyright owner that is granting the License.
+
+  Legal Entity shall mean the union of the acting entity and all
+  other entities that control, are controlled by, or are under common
+  control with that entity. For the purposes of this definition,
+  control means (i) the power, direct or indirect, to cause the
+  direction or management of such entity, whether by contract or
+  otherwise, or (ii) ownership of fifty percent (50%) or more of the
+  outstanding shares, or (iii) beneficial ownership of such entity.
+
+  You (or Your) shall mean an individual or Legal Entity
+  exercising permissions granted by this License.
+
+  Source form shall mean the preferred form for making modifications,
+  including but not limited to software source code, documentation
+  source, and configuration files.
+
+  Object form shall mean any form resulting from mechanical
+  transformation or translation of a Source form, including but
+  not limited to compiled object code, generated documentation,
+  and conversions to other media types.
+
+  Work shall mean the work of authorship, whether in Source or
+  Object form, made available under the License, as indicated by a
+  copyright notice that is included in or attached to the work
+  (an example is provided in the Appendix below).
+
+  Derivative Works shall mean any work, whether in Source or Object
+  form, that is based on (or derived from) the Work and for which the
+  editorial revisions, annotations, elaborations, or other modifications
+  represent, as a whole, an original work of authorship. For the purposes
+  of this License, Derivative Works shall not include works that remain
+  separable from, or merely link (or bind by name) to the interfaces of,
+  the Work and Derivative Works thereof.
+
+  Contribution shall mean any work of authorship, including
+  the original version of the Work and any modifications or additions
+  to that Work or Derivative Works thereof, that is intentionally
+  submitted to Licensor for inclusion in the Work by the copyright owner
+  or by an individual or Legal Entity authorized to submit on behalf of
+  the copyright owner. For the purposes of this definition, submitted
+  means any form of electronic, verbal, or written communication sent
+  to the Licensor or its representatives, including but not limited to
+  communication on electronic mailing lists, source code control systems,
+  and issue tracking systems that are managed by, or on behalf of, the
+  Licensor for the purpose of discussing and improving the Work, but
+  excluding communication that is conspicuously marked or otherwise

svn commit: r1302034 - in /sling/trunk: bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/ launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/

2012-03-17 Thread enorman
Author: enorman
Date: Sat Mar 17 22:33:45 2012
New Revision: 1302034

URL: http://svn.apache.org/viewvc?rev=1302034view=rev
Log:
SLING-2415 Added ability to match all child nodes for the :applyTo parameter by 
using '*' as the last segment of the value.  The applies to the delete, move 
and copy operations.

Modified:

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractPostOperation.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletCopyTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletDeleteTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletMoveTest.java

Modified: 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractPostOperation.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractPostOperation.java?rev=1302034r1=1302033r2=1302034view=diff
==
--- 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractPostOperation.java
 (original)
+++ 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/AbstractPostOperation.java
 Sat Mar 17 22:33:45 2012
@@ -478,6 +478,8 @@ public abstract class AbstractPostOperat
 
 private Resource nextResource;
 
+private IteratorResource resourceIterator = null;
+
 ApplyToIterator(SlingHttpServletRequest request, String[] paths) {
 this.resolver = request.getResourceResolver();
 this.baseResource = request.getResource();
@@ -507,13 +509,48 @@ public abstract class AbstractPostOperat
 }
 
 private Resource seek() {
+   if (resourceIterator != null) {
+   if (resourceIterator.hasNext()) {
+   //return the next resource in the iterator
+   Resource res = resourceIterator.next();
+   return res;
+   } else {
+   resourceIterator = null;
+   }
+   }
 while (pathIndex  paths.length) {
 String path = paths[pathIndex];
 pathIndex++;
 
-Resource res = resolver.getResource(baseResource, path);
-if (res != null) {
-return res;
+//SLING-2415 - support wildcard as the last segment of the 
applyTo path
+if (path.endsWith(*)) {
+   if (path.length() == 1) {
+   resourceIterator = baseResource.listChildren();
+   } else if (path.endsWith(/*)) {
+   path = path.substring(0, path.length() - 2);
+   if (path.length() == 0) {
+   resourceIterator = baseResource.listChildren();
+   } else {
+   Resource res = 
resolver.getResource(baseResource, path);
+if (res != null) {
+   resourceIterator = res.listChildren();
+}
+   }
+} 
+   if (resourceIterator != null) {
+   //return the first resource in the iterator
+   if (resourceIterator.hasNext()) {
+   Resource res = resourceIterator.next();
+   return res;
+   } else {
+   resourceIterator = null;
+   }
+   }
+} else {
+Resource res = resolver.getResource(baseResource, path);
+if (res != null) {
+return res;
+}
 }
 }
 

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletCopyTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletCopyTest.java?rev=1302034r1=1302033r2=1302034view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletCopyTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post

svn commit: r1231244 - in /sling/trunk: bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integration

2012-01-13 Thread enorman
Author: enorman
Date: Fri Jan 13 18:55:13 2012
New Revision: 1231244

URL: http://svn.apache.org/viewvc?rev=1231244view=rev
Log:
SLING-2165 fixed regression loading the login page of the launchpad

Modified:

sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java

Modified: 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java?rev=1231244r1=1231243r2=1231244view=diff
==
--- 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
 (original)
+++ 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/AuthUtil.java
 Fri Jan 13 18:55:13 2012
@@ -403,19 +403,21 @@ public final class AuthUtil {
  */
 public static boolean checkReferer(HttpServletRequest request, String 
loginForm) {
 //SLING-2165: if a Referer header is supplied check if it matches the 
login path for this handler
-String referer = request.getHeader(Referer);
-if (referer != null) {
-String expectedPath = String.format(%s%s, 
request.getContextPath(), loginForm);
-try {
-URL uri = new URL(referer);
-if (!expectedPath.equals(uri.getPath())) {
-//not for this selector, so let the next one handle it.
-return false;
+   if (POST.equals(request.getMethod())) {
+String referer = request.getHeader(Referer);
+if (referer != null) {
+String expectedPath = String.format(%s%s, 
request.getContextPath(), loginForm);
+try {
+URL uri = new URL(referer);
+if (!expectedPath.equals(uri.getPath())) {
+//not for this selector, so let the next one handle it.
+return false;
+}
+} catch (MalformedURLException e) {
+getLog().debug(Failed to parse the referer value for the 
login form  + loginForm, e);
 }
-} catch (MalformedURLException e) {
-getLog().debug(Failed to parse the referer value for the 
login form  + loginForm, e);
 }
-}
+   }
 return true;
 }
 

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java?rev=1231244r1=1231243r2=1231244view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
 Fri Jan 13 18:55:13 2012
@@ -144,4 +144,15 @@ public class RedirectOnLoginErrorTest ex
 }
 assertEquals(Expected to remain on the form/login page, 
loginPageUrl, location);
 }
+
+/**
+ * Test SLING-2165.  Verify that a GET request to the default login page 
does not
+ * result in an error condition.
+ *
+ * @throws Exception
+ */
+public void testGetDefaultLoginPage() throws Exception {
+final String loginPageUrl = String.format(%s/system/sling/login, 
HTTP_BASE_URL);
+assertHttpStatus(loginPageUrl, HttpServletResponse.SC_OK);
+}
 }




svn commit: r1225347 - in /sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference: ./ src/main/java/org/apache/sling/archetype/servlet/testing/ src/test/java/org/apache/slin

2011-12-28 Thread enorman
Author: enorman
Date: Wed Dec 28 21:34:43 2011
New Revision: 1225347

URL: http://svn.apache.org/viewvc?rev=1225347view=rev
Log:
fixing build on windows

Modified:

sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/pom.xml
   (props changed)

sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/main/java/org/apache/sling/archetype/servlet/testing/ByPathServlet.java
   (props changed)

sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/main/java/org/apache/sling/archetype/servlet/testing/ByResourceTypeServlet.java
   (props changed)

sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/main/java/org/apache/sling/archetype/servlet/testing/SimpleFilter.java
   (props changed)

sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/test/java/org/apache/sling/archetype/servlet/testing/ByPathServletTest.java
   (props changed)

Propchange: 
sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/pom.xml
--
svn:eol-style = native

Propchange: 
sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/main/java/org/apache/sling/archetype/servlet/testing/ByPathServlet.java
--
svn:eol-style = native

Propchange: 
sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/main/java/org/apache/sling/archetype/servlet/testing/ByResourceTypeServlet.java
--
svn:eol-style = native

Propchange: 
sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/main/java/org/apache/sling/archetype/servlet/testing/SimpleFilter.java
--
svn:eol-style = native

Propchange: 
sling/trunk/maven/archetypes/servlet/src/test/resources/projects/normal/reference/src/test/java/org/apache/sling/archetype/servlet/testing/ByPathServletTest.java
--
svn:eol-style = native




svn commit: r1208229 - in /sling/trunk/bundles/jcr: contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanage

2011-11-29 Thread enorman
Author: enorman
Date: Wed Nov 30 03:05:52 2011
New Revision: 1208229

URL: http://svn.apache.org/viewvc?rev=1208229view=rev
Log:
SLING-2308 Remove user password digesting from sling

Modified:

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/JcrContentHelper.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractUserPostServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java?rev=1208229r1=1208228r2=1208229view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
 Wed Nov 30 03:05:52 2011
@@ -18,10 +18,7 @@
  */
 package org.apache.sling.jcr.contentloader.internal;
 
-import java.io.UnsupportedEncodingException;
-import java.security.NoSuchAlgorithmException;
 import java.util.Calendar;
-import java.util.Dictionary;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -69,16 +66,6 @@ public class ContentLoaderService implem
 
 public static final String BUNDLE_CONTENT_NODE = 
/var/sling/bundle-content;
 
-/**
- * To be used for the encryption. E.g. for passwords in
- * {@link javax.jcr.SimpleCredentials#getPassword()} SimpleCredentials}
- *
- * @scr.property valueRef=DEFAULT_PASSWORD_DIGEST_ALGORITHM
- */
-private static final String PROP_PASSWORD_DIGEST_ALGORITHM = 
password.digest.algorithm;
-private static final String DEFAULT_PASSWORD_DIGEST_ALGORITHM = sha1;
-private String passwordDigestAlgoritm = null;
-
 /** default log */
 final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -215,27 +202,6 @@ public class ContentLoaderService implem
 }
 }
 
-/**
- * Digest the given password using the configured digest algorithm
- *
- * @param pwd the value to digest
- * @return the digested value
- * @throws IllegalArgumentException
- */
-public String digestPassword(String pwd) throws IllegalArgumentException {
-try {
-StringBuffer password = new StringBuffer();
-password.append({).append(passwordDigestAlgoritm).append(});
-
password.append(DefaultContentCreator.digest(passwordDigestAlgoritm,
-pwd.getBytes(UTF-8)));
-return password.toString();
-} catch (NoSuchAlgorithmException e) {
-throw new IllegalArgumentException(e.toString());
-} catch (UnsupportedEncodingException e) {
-throw new IllegalArgumentException(e.toString());
-}
-}
-
 // -- SCR Integration -
 
 /** Activates this component, called by SCR before registering as a 
service */
@@ -245,14 +211,6 @@ public class ContentLoaderService implem
 
 componentContext.getBundleContext().addBundleListener(this);
 
-Dictionary?, ? props = componentContext.getProperties();
-Object propValue = props.get(PROP_PASSWORD_DIGEST_ALGORITHM);
-if (propValue instanceof String) {
-passwordDigestAlgoritm = (String) propValue;
-} else {
-passwordDigestAlgoritm = DEFAULT_PASSWORD_DIGEST_ALGORITHM;
-}
-
 Session session = null;
 try {
 session = this.getSession();
@@ -307,7 +265,6 @@ public class ContentLoaderService implem
 this.initialContentLoader.dispose();
 this.initialContentLoader = null;
 }
-passwordDigestAlgoritm = null;
 }
 
 // -- internal helper 
--

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr

svn commit: r1208235 - in /sling/trunk/bundles/jcr/jackrabbit-accessmanager: ./ src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/

2011-11-29 Thread enorman
Author: enorman
Date: Wed Nov 30 03:30:19 2011
New Revision: 1208235

URL: http://svn.apache.org/viewvc?rev=1208235view=rev
Log:
SLING-2309 AccessManager - Convert @scr Java Doc Tags to SCR Annotations

Modified:
sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java

Modified: sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml?rev=1208235r1=1208234r2=1208235view=diff
==
--- sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml Wed Nov 30 
03:30:19 2011
@@ -144,5 +144,12 @@
 groupIdorg.slf4j/groupId
 artifactIdslf4j-api/artifactId
 /dependency
+
+dependency
+groupIdorg.apache.felix/groupId
+artifactIdorg.apache.felix.scr.annotations/artifactId
+version1.6.0/version
+scopeprovided/scope
+/dependency
 /dependencies
 /project

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java?rev=1208235r1=1208234r2=1208235view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
 Wed Nov 30 03:30:19 2011
@@ -28,7 +28,12 @@ import javax.jcr.Session;
 import javax.jcr.security.AccessControlEntry;
 import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
+import javax.servlet.Servlet;
 
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Properties;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.ResourceNotFoundException;
 import org.apache.sling.api.servlets.HtmlResponse;
@@ -67,15 +72,21 @@ import org.apache.sling.servlets.post.Sl
  * dt500/dt
  * ddFailure. HTML explains the failure./dd
  * /dl
- *
- * @scr.component immediate=true label=%deleteAces.post.operation.name
- *description=%deleteAces.post.operation.description
- * @scr.service interface=javax.servlet.Servlet
- * @scr.service 
interface=org.apache.sling.jcr.jackrabbit.accessmanager.DeleteAces
- * @scr.property name=sling.servlet.resourceTypes 
value=sling/servlet/default
- * @scr.property name=sling.servlet.methods value=POST
- * @scr.property name=sling.servlet.selectors value=deleteAce
  */
+@Component (immediate=true, 
+   label=%deleteAces.post.operation.name, 
+   description=%deleteAces.post.operation.description)
+@Service (value={
+   Servlet.class,
+   DeleteAces.class})
+@Properties ({
+   @Property (name=sling.servlet.resourceTypes, 
+   value=sling/servlet/default),
+   @Property (name=sling.servlet.methods, 
+   value=POST),
+   @Property (name=sling.servlet.selectors, 
+   value=deleteAce)
+})
 public class DeleteAcesServlet extends AbstractAccessPostServlet implements 
DeleteAces {
private static final long serialVersionUID = 3784866802938282971L;
 

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java?rev=1208235r1=1208234r2=1208235view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java

svn commit: r1207745 - /sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml

2011-11-28 Thread enorman
Author: enorman
Date: Tue Nov 29 04:06:38 2011
New Revision: 1207745

URL: http://svn.apache.org/viewvc?rev=1207745view=rev
Log:
SLING-2303 Use a PersistanceManager that is not deprecated

Modified:
sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml

Modified: 
sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml?rev=1207745r1=1207744r2=1207745view=diff
==
--- sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml 
(original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/repository.xml 
Tue Nov 29 04:06:38 2011
@@ -47,10 +47,9 @@
 FileSystem 
class=org.apache.jackrabbit.core.fs.local.LocalFileSystem
 param name=path value=${wsp.home}/
 /FileSystem
-PersistenceManager 
class=org.apache.jackrabbit.core.persistence.db.DerbyPersistenceManager
+PersistenceManager 
class=org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager
   param name=url value=jdbc:derby:${wsp.home}/db;create=true/
   param name=schemaObjectPrefix value=${wsp.name}_/
-  param name=shutdownOnClose value=false/
 /PersistenceManager
 SearchIndex 
class=org.apache.jackrabbit.core.query.lucene.SearchIndex
 param name=path value=${wsp.home}/index/
@@ -63,10 +62,9 @@
 param name=path value=${rep.home}/version /
 /FileSystem
 
-PersistenceManager 
class=org.apache.jackrabbit.core.persistence.db.DerbyPersistenceManager
+PersistenceManager 
class=org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager
   param name=url 
value=jdbc:derby:${rep.home}/version/db;create=true/
   param name=schemaObjectPrefix value=version_/
-  param name=shutdownOnClose value=false/
 /PersistenceManager
 /Versioning
 




svn commit: r1206611 - in /sling/trunk: bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/

2011-11-26 Thread enorman
Author: enorman
Date: Sat Nov 26 21:40:18 2011
New Revision: 1206611

URL: http://svn.apache.org/viewvc?rev=1206611view=rev
Log:
SLING-2108 PostServlet :import operation does not take autoCheckout into account

Modified:

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java

sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreatorTest.java
sling/trunk/bundles/servlets/post/pom.xml

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/SlingPostConstants.java

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java
sling/trunk/launchpad/integration-tests/pom.xml

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java

sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/post/testimport3.json

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java?rev=1206611r1=1206610r2=1206611view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ContentImportListener.java
 Sat Nov 26 21:40:18 2011
@@ -64,4 +64,17 @@ public interface ContentImportListener {
  */
void onReorder(String orderedPath, String beforeSibbling);

+/**
+ * A versionable Node has been checked in. The source path provides the 
path of the 
+ * newly checked in Node.
+ * @since 2.1.4
+ */
+   void onCheckin(String srcPath);
+
+   /**
+ * A versionable Node has been checked out. The source path provides the 
path of the 
+ * newly checked out Node.
+ * @since 2.1.4
+ */
+   void onCheckout(String srcPath);
 }

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java?rev=1206611r1=1206610r2=1206611view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
 Sat Nov 26 21:40:18 2011
@@ -46,6 +46,16 @@ public abstract class ImportOptions {
public abstract boolean isCheckin();
 
/**
+* Specifies whether versionable nodes is automatically checked out when
+* necessary.
+* @return true to checkout the versionable nodes, false otherwise
+ * @since 2.1.4
+*/
+   public boolean isAutoCheckout() {
+   return true;
+   }
+
+   /**
 * Check if the import provider for the given file extension should
 * be ignored.
 * 

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java?rev=1206611r1=1206610r2=1206611view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
 Sat Nov 26 21:40:18 2011
@@ -50,6 +50,7 @@ import java.util.Map.Entry;
 import java.util.regex.Pattern;
 
 import javax.jcr.Item;
+import javax.jcr.ItemNotFoundException;
 import javax.jcr.Node;
 import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
@@ -251,6 +252,7 @@ public class DefaultContentCreator imple
 if ( !isParentImport

svn commit: r1201491 - /sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/HtmlRenderer.java

2011-11-13 Thread enorman
Author: enorman
Date: Sun Nov 13 19:43:29 2011
New Revision: 1201491

URL: http://svn.apache.org/viewvc?rev=1201491view=rev
Log:
SLING-2270 Junit Core HtmlRenderer outputs invalid HTML
Apply patch by Brian Riggs (Many thanks)

Modified:

sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/HtmlRenderer.java

Modified: 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/HtmlRenderer.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/HtmlRenderer.java?rev=1201491r1=1201490r2=1201491view=diff
==
--- 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/HtmlRenderer.java
 (original)
+++ 
sling/trunk/testing/junit/core/src/main/java/org/apache/sling/junit/impl/servlet/HtmlRenderer.java
 Sun Nov 13 19:43:29 2011
@@ -142,7 +142,7 @@ public class HtmlRenderer extends RunLis
 super.testFinished(description);
 output.print(p class='finished'Test finished: );
 HtmlFilter.escape(output, description.toString());
-output.println(/p);
+output.println(/p/div);
 }
 
 @Override




svn commit: r1201565 - /sling/trunk/bundles/engine/pom.xml

2011-11-13 Thread enorman
Author: enorman
Date: Mon Nov 14 00:48:49 2011
New Revision: 1201565

URL: http://svn.apache.org/viewvc?rev=1201565view=rev
Log:
SLING-2257 File uploads  2GB are not available as request parameters (reported 
by Dominique Pfister)
Removed embedded commons-fileupload and import the same packages from the 
o.a.c.fileupload v1.2.2 bundle.

Modified:
sling/trunk/bundles/engine/pom.xml

Modified: sling/trunk/bundles/engine/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/engine/pom.xml?rev=1201565r1=1201564r2=1201565view=diff
==
--- sling/trunk/bundles/engine/pom.xml (original)
+++ sling/trunk/bundles/engine/pom.xml Mon Nov 14 00:48:49 2011
@@ -69,14 +69,15 @@
 org.apache.sling.engine.impl.*
 /Private-Package
 Import-Package
+org.apache.commons.fileupload;version=1.2,
+org.apache.commons.fileupload.disk;version=1.2,
+org.apache.commons.fileupload.portlet;version=1.2,
+org.apache.commons.fileupload.servlet;version=1.2,
 org.osgi.service.useradmin;
 javax.portlet;
 org.apache.commons.math.*;resolution:=optional,
 *
 /Import-Package
-Embed-Dependency
-commons-fileupload
-/Embed-Dependency
 /instructions
 /configuration
 /plugin
@@ -140,7 +141,7 @@
 dependency
 groupIdcommons-fileupload/groupId
 artifactIdcommons-fileupload/artifactId
-version1.1.1/version
+version1.2.2/version
 scopeprovided/scope
 /dependency
 dependency




svn commit: r1201346 - in /sling/trunk: bundles/auth/core/src/main/java/org/apache/sling/auth/core/spi/ bundles/auth/form/ bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/ bundles/auth

2011-11-12 Thread enorman
Author: enorman
Date: Sat Nov 12 22:22:51 2011
New Revision: 1201346

URL: http://svn.apache.org/viewvc?rev=1201346view=rev
Log:
SLING-2165 Form based login failure should stay on the same login page to show 
the login error

Added:

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/login/RedirectOnLoginErrorTest.java
Modified:

sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/spi/AbstractAuthenticationHandler.java
sling/trunk/bundles/auth/form/pom.xml

sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
sling/trunk/bundles/auth/openid/pom.xml

sling/trunk/bundles/auth/openid/src/main/java/org/apache/sling/auth/openid/impl/OpenIDAuthenticationHandler.java
sling/trunk/bundles/auth/selector/pom.xml

sling/trunk/bundles/auth/selector/src/main/java/org/apache/sling/auth/selector/SelectorAuthenticationHandler.java
sling/trunk/launchpad/builder/src/main/bundles/list.xml

Modified: 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/spi/AbstractAuthenticationHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/spi/AbstractAuthenticationHandler.java?rev=1201346r1=1201345r2=1201346view=diff
==
--- 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/spi/AbstractAuthenticationHandler.java
 (original)
+++ 
sling/trunk/bundles/auth/core/src/main/java/org/apache/sling/auth/core/spi/AbstractAuthenticationHandler.java
 Sat Nov 12 22:22:51 2011
@@ -20,6 +20,8 @@ package org.apache.sling.auth.core.spi;
 
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.net.URLEncoder;
 import java.util.HashMap;
 import java.util.Iterator;
@@ -420,4 +422,29 @@ public abstract class AbstractAuthentica
 // TODO: log.error(Failed to send 403/Forbidden response, ioe);
 }
 }
+
+   /**
+* Check if the request is for this authentication handler.
+* 
+* @param request the current request
+* @return true if the referer matches this handler, or false otherwise
+*/
+   public static boolean checkReferer(HttpServletRequest request, String 
loginForm) {
+   //SLING-2165: if a Referer header is supplied check if it 
matches the login path for this handler
+String referer = request.getHeader(Referer);
+if (referer != null) {
+   String expectedPath = String.format(%s%s, 
request.getContextPath(), loginForm);
+   try {
+   URL uri = new URL(referer);
+   if (!expectedPath.equals(uri.getPath())) {
+   //not for this selector, so let the next one handle it.
+   return false;
+   }
+   } catch (MalformedURLException e) {
+   
LoggerFactory.getLogger(AbstractAuthenticationHandler.class)
+   .debug(Failed to parse the referer value for 
the login form  + loginForm, e);
+   }
+}
+return true;
+   }
 }

Modified: sling/trunk/bundles/auth/form/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/form/pom.xml?rev=1201346r1=1201345r2=1201346view=diff
==
--- sling/trunk/bundles/auth/form/pom.xml (original)
+++ sling/trunk/bundles/auth/form/pom.xml Sat Nov 12 22:22:51 2011
@@ -98,7 +98,7 @@
 dependency
 groupIdorg.apache.sling/groupId
 artifactIdorg.apache.sling.auth.core/artifactId
-version1.0.4/version
+version1.0.7-SNAPSHOT/version
 scopeprovided/scope
 /dependency
 dependency

Modified: 
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java?rev=1201346r1=1201345r2=1201346view=diff
==
--- 
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
 (original)
+++ 
sling/trunk/bundles/auth/form/src/main/java/org/apache/sling/auth/form/impl/FormAuthenticationHandler.java
 Sat Nov 12 22:22:51 2011
@@ -353,6 +353,12 @@ public class FormAuthenticationHandler e
 return false;
 }
 
+//check the referer to see if the request is for this handler
+if (!checkReferer(request, loginForm)) {
+   //not for this handler, so return
+   return false;
+}
+
 final String resource

svn commit: r1201348 - in /sling/trunk/samples/usermanager-ui/src/main/resources: SLING-INF/i18n/ css/usermanager/ images/ js/usermanager/ libs/sling/group/ libs/sling/groups/ libs/sling/user/ libs/sl

2011-11-12 Thread enorman
Author: enorman
Date: Sat Nov 12 22:50:56 2011
New Revision: 1201348

URL: http://svn.apache.org/viewvc?rev=1201348view=rev
Log:
SLING-1562 improvements to the usermanager.ui sample
1. user/group delete action was broken when the app was not mounted at the root 
context
2. block rendering of several pages for the anonymous user
3. misc ui tweaks 

Removed:
sling/trunk/samples/usermanager-ui/src/main/resources/images/ajax-loader.gif
Modified:

sling/trunk/samples/usermanager-ui/src/main/resources/SLING-INF/i18n/resources.json

sling/trunk/samples/usermanager-ui/src/main/resources/css/usermanager/usermanager.css

sling/trunk/samples/usermanager-ui/src/main/resources/css/usermanager/usermanager.min.css

sling/trunk/samples/usermanager-ui/src/main/resources/js/usermanager/usermanager.js

sling/trunk/samples/usermanager-ui/src/main/resources/js/usermanager/usermanager.min.js

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/group/update_body.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/groups/body.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/groups/html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/groups/searchresult.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/user/update_body.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/userManager/body.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/userManager/html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/userManager/searchresult.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/users/body.html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/users/html.esp

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/users/searchresult.html.esp

Modified: 
sling/trunk/samples/usermanager-ui/src/main/resources/SLING-INF/i18n/resources.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/src/main/resources/SLING-INF/i18n/resources.json?rev=1201348r1=1201347r2=1201348view=diff
==
--- 
sling/trunk/samples/usermanager-ui/src/main/resources/SLING-INF/i18n/resources.json
 (original)
+++ 
sling/trunk/samples/usermanager-ui/src/main/resources/SLING-INF/i18n/resources.json
 Sat Nov 12 22:50:56 2011
@@ -77,7 +77,7 @@
 prop.label.loginEnabled: {
 jcr:primaryType: sling:MessageEntry,
 sling:key: prop.label.loginEnabled,
-sling:message: Login Enabled
+sling:message: Is Login Enabled
 },
 prop.label.loginEnabled.yes: {
 jcr:primaryType: sling:MessageEntry,

Modified: 
sling/trunk/samples/usermanager-ui/src/main/resources/css/usermanager/usermanager.css
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/src/main/resources/css/usermanager/usermanager.css?rev=1201348r1=1201347r2=1201348view=diff
==
--- 
sling/trunk/samples/usermanager-ui/src/main/resources/css/usermanager/usermanager.css
 (original)
+++ 
sling/trunk/samples/usermanager-ui/src/main/resources/css/usermanager/usermanager.css
 Sat Nov 12 22:50:56 2011
@@ -183,17 +183,13 @@ img, a img
 text-align: center;
 }
 
-#authorizables-body
-{
-min-width: 750px;   
-}
-
 #find-authorizables-quick-nav
 {
 padding: 2px 4px;
 }
 
-#authorizables-results-body
+#authorizables-results-body,
+#authorizables-results-progress
 {
 margin-top: 5px;
 }
@@ -207,7 +203,7 @@ img, a img
 #find-authorizables-quick-nav .ui-button-text-only .ui-button-text
 {
 line-height: 1;
-padding: 3px 3px;
+padding: 1px 1px;
 font-size: 10pt;
 }
 #find-authorizables-block .ui-button-text-only .ui-button-text
@@ -262,6 +258,7 @@ img, a img
 font-weight: bold; 
 display: inline; 
 line-height: 33px; 
+border-style: none;
 }
 
 
@@ -290,7 +287,7 @@ img, a img
 {
 float: left;
 display: inline;
-width: 15%;
+width: 20%;
 text-align: right;
 }
 
@@ -298,7 +295,7 @@ img, a img
 #create-group-form input
 {
 margin-left: 10px;
-width: 75%;
+width: 70%;
 }
 
 #create-user-form button,
@@ -341,7 +338,7 @@ img, a img
 {
 float: left;
 display: inline;
-width: 15%;
+width: 20%;
 text-align: right;
 }
 
@@ -352,7 +349,7 @@ img, a img
 #add-group-member-form input
 {
 margin-left: 10px;
-width: 75%;
+width: 70%;
 }
 
 #update-user-form button,
@@ -381,14 +378,14 @@ img, a img
 
 #update-password-form label 
 {
-width: 15%;
+width: 20%;
 text-align: right;
 }
 
 #update-password-form input 
 {
 margin-left: 10px;
-width: 75%;
+width: 70%;
 }
 
 #update-password-form button 
@@ -417,7 +414,7 @@ img, a img
 
 #disabledReasonPanel input

svn commit: r1200746 - in /sling/trunk: contrib/scripting/scala/config/ contrib/scripting/scala/samples/forum/ contrib/scripting/scala/samples/hello-world/ maven/archetypes/bundle-for-jcrinstall/ mave

2011-11-10 Thread enorman
Author: enorman
Date: Fri Nov 11 06:21:39 2011
New Revision: 1200746

URL: http://svn.apache.org/viewvc?rev=1200746view=rev
Log:
svn:ignore eclipse project files

Modified:
sling/trunk/contrib/scripting/scala/config/   (props changed)
sling/trunk/contrib/scripting/scala/samples/forum/   (props changed)
sling/trunk/contrib/scripting/scala/samples/hello-world/   (props changed)
sling/trunk/maven/archetypes/bundle/   (props changed)
sling/trunk/maven/archetypes/bundle-for-jcrinstall/   (props changed)
sling/trunk/samples/installing-dependencies/   (props changed)

Propchange: sling/trunk/contrib/scripting/scala/config/
--
--- svn:ignore (original)
+++ svn:ignore Fri Nov 11 06:21:39 2011
@@ -1 +1,4 @@
+.classpath
+.project
+.settings
 target

Propchange: sling/trunk/contrib/scripting/scala/samples/forum/
--
--- svn:ignore (original)
+++ svn:ignore Fri Nov 11 06:21:39 2011
@@ -1 +1,4 @@
+.classpath
+.project
+.settings
 target

Propchange: sling/trunk/contrib/scripting/scala/samples/hello-world/
--
--- svn:ignore (original)
+++ svn:ignore Fri Nov 11 06:21:39 2011
@@ -1 +1,4 @@
+.classpath
+.project
+.settings
 target

Propchange: sling/trunk/maven/archetypes/bundle/
--
--- svn:ignore (original)
+++ svn:ignore Fri Nov 11 06:21:39 2011
@@ -1 +1,3 @@
+.project
+.settings
 target

Propchange: sling/trunk/maven/archetypes/bundle-for-jcrinstall/
--
--- svn:ignore (original)
+++ svn:ignore Fri Nov 11 06:21:39 2011
@@ -1 +1,3 @@
+.project
+.settings
 target

Propchange: sling/trunk/samples/installing-dependencies/
--
--- svn:ignore (added)
+++ svn:ignore Fri Nov 11 06:21:39 2011
@@ -0,0 +1 @@
+target




svn commit: r1200172 - /sling/trunk/bundles/servlets/compat/

2011-11-09 Thread enorman
Author: enorman
Date: Thu Nov 10 06:04:06 2011
New Revision: 1200172

URL: http://svn.apache.org/viewvc?rev=1200172view=rev
Log:
svn:ignore eclipse project files

Modified:
sling/trunk/bundles/servlets/compat/   (props changed)

Propchange: sling/trunk/bundles/servlets/compat/
--
--- svn:ignore (original)
+++ svn:ignore Thu Nov 10 06:04:06 2011
@@ -1 +1,4 @@
 target
+.classpath
+.project
+.settings




svn commit: r1158505 - in /sling/trunk/samples/accessmanager-ui/src/main/resources: SLING-INF/i18n/resources.json js/accessmanager/accessmanager.js js/accessmanager/accessmanager.min.js libs/sling/ser

2011-08-16 Thread enorman
Author: enorman
Date: Wed Aug 17 04:27:43 2011
New Revision: 1158505

URL: http://svn.apache.org/viewvc?rev=1158505view=rev
Log:
SLING-2065 Add ui for the additional JCR 2.0 privileges

Modified:

sling/trunk/samples/accessmanager-ui/src/main/resources/SLING-INF/i18n/resources.json

sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.js

sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.min.js

sling/trunk/samples/accessmanager-ui/src/main/resources/libs/sling/servlet/default/ace_body.html.esp

Modified: 
sling/trunk/samples/accessmanager-ui/src/main/resources/SLING-INF/i18n/resources.json
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/src/main/resources/SLING-INF/i18n/resources.json?rev=1158505r1=1158504r2=1158505view=diff
==
--- 
sling/trunk/samples/accessmanager-ui/src/main/resources/SLING-INF/i18n/resources.json
 (original)
+++ 
sling/trunk/samples/accessmanager-ui/src/main/resources/SLING-INF/i18n/resources.json
 Wed Aug 17 04:27:43 2011
@@ -197,6 +197,31 @@
 jcr:primaryType: sling:MessageEntry,
 sling:key: label.privilege.jcr:modifyAccessControl,
 sling:message: Modify Permissions
+},
+label.privilege.jcr_lockManagement: {
+jcr:primaryType: sling:MessageEntry,
+sling:key: label.privilege.jcr:lockManagement,
+sling:message: Lock Management
+},
+label.privilege.jcr_versionManagement: {
+jcr:primaryType: sling:MessageEntry,
+sling:key: label.privilege.jcr:versionManagement,
+sling:message: Version Management
+},
+label.privilege.jcr_nodeTypeManagement: {
+jcr:primaryType: sling:MessageEntry,
+sling:key: label.privilege.jcr:nodeTypeManagement,
+sling:message: NodeType Management
+},
+label.privilege.jcr_retentionManagement: {
+jcr:primaryType: sling:MessageEntry,
+sling:key: label.privilege.jcr:retentionManagement,
+sling:message: Retention Management
+},
+label.privilege.jcr_lifecycleManagement: {
+jcr:primaryType: sling:MessageEntry,
+sling:key: label.privilege.jcr:lifecycleManagement,
+sling:message: Lifecycle Management
 },
 
 button.save: {

Modified: 
sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.js
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.js?rev=1158505r1=1158504r2=1158505view=diff
==
--- 
sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.js
 (original)
+++ 
sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.js
 Wed Aug 17 04:27:43 2011
@@ -205,6 +205,12 @@ AccessManager.Ace = {
 
m.setAggregatePrivilege(jcr:readAccessControl, value);
m.setAggregatePrivilege(jcr:modifyAccessControl, 
value);
+
+   m.setAggregatePrivilege(jcr:lockManagement, value);
+   m.setAggregatePrivilege(jcr:versionManagement, value);
+   m.setAggregatePrivilege(jcr:nodeTypeManagement, 
value);
+   m.setAggregatePrivilege(jcr:retentionManagement, 
value);
+   m.setAggregatePrivilege(jcr:lifecycleManagement, 
value);
} else {
var writeGranted = 
$(input[name='privilege@jcr:write'][value=granted]:radio:checked);
var writeDenied = 
$(input[name='privilege@jcr:write'][value=denied]:radio:checked);
@@ -227,6 +233,12 @@ AccessManager.Ace = {
 
m.setAggregatePrivilege(jcr:readAccessControl, 
this.value);
m.setAggregatePrivilege(jcr:modifyAccessControl, 
this.value);
+
+   m.setAggregatePrivilege(jcr:lockManagement, 
this.value);
+   m.setAggregatePrivilege(jcr:versionManagement, 
this.value);
+   m.setAggregatePrivilege(jcr:nodeTypeManagement, 
this.value);
+   m.setAggregatePrivilege(jcr:retentionManagement, 
this.value);
+   m.setAggregatePrivilege(jcr:lifecycleManagement, 
this.value);
});

$(input[name='privilege@jcr:write']:radio).bind(change, 
function(e) {

Modified: 
sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.min.js
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/src/main/resources/js/accessmanager/accessmanager.min.js

svn commit: r1150196 - /sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java

2011-07-23 Thread enorman
Author: enorman
Date: Sat Jul 23 19:24:14 2011
New Revision: 1150196

URL: http://svn.apache.org/viewvc?rev=1150196view=rev
Log:
SLING-2131 handle special characters in the generated filename that are not 
allowed by windows

Modified:

sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java

Modified: 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java?rev=1150196r1=1150195r2=1150196view=diff
==
--- 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
 (original)
+++ 
sling/trunk/installer/core/src/main/java/org/apache/sling/installer/core/impl/FileDataStore.java
 Sat Jul 23 19:24:14 2011
@@ -148,7 +148,11 @@ public class FileDataStore {
 final int pos = url.lastIndexOf('/');
 final String name = url.substring(pos + 1);
 final String filename = (hint == null ? rsrc : hint) + '-' + name + 
'-' + getNextSerialNumber() + .ser;
-final File file = this.getDataFile(filename);
+
+//replace special characters from the filename that are not allowed by 
the OS
+final String filename2 = 
filename.replaceAll([\\*\/\\[\\]\\:\\;\\|\\=\\,]+, _); // Windows
+  
+final File file = this.getDataFile(filename2);
 
 this.copyToLocalStorage(stream, file);
 




svn commit: r1149041 - in /sling/trunk: maven/archetypes/launchpad-standalone/ maven/archetypes/launchpad-webapp/ samples/usermanager-ui/

2011-07-20 Thread enorman
Author: enorman
Date: Thu Jul 21 05:35:49 2011
New Revision: 1149041

URL: http://svn.apache.org/viewvc?rev=1149041view=rev
Log:
svn:ignore eclipse project files

Modified:
sling/trunk/maven/archetypes/launchpad-standalone/   (props changed)
sling/trunk/maven/archetypes/launchpad-webapp/   (props changed)
sling/trunk/samples/usermanager-ui/   (props changed)

Propchange: sling/trunk/maven/archetypes/launchpad-standalone/
--
--- svn:ignore (original)
+++ svn:ignore Thu Jul 21 05:35:49 2011
@@ -1 +1,3 @@
 target
+.project
+.settings

Propchange: sling/trunk/maven/archetypes/launchpad-webapp/
--
--- svn:ignore (original)
+++ svn:ignore Thu Jul 21 05:35:49 2011
@@ -1 +1,3 @@
 target
+.project
+.settings

Propchange: sling/trunk/samples/usermanager-ui/
--
--- svn:ignore (original)
+++ svn:ignore Thu Jul 21 05:35:49 2011
@@ -1 +1,4 @@
 target
+.classpath
+.settings
+.project




svn commit: r1137043 - in /sling/trunk/bundles/jcr/resource/src: main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java test/java/org/apache/sling/jcr/resource/internal/JcrResourceR

2011-06-17 Thread enorman
Author: enorman
Date: Fri Jun 17 21:40:03 2011
New Revision: 1137043

URL: http://svn.apache.org/viewvc?rev=1137043view=rev
Log:
SLING-2093 empty path should map to the root

Modified:

sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java

sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java

Modified: 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java?rev=1137043r1=1137042r2=1137043view=diff
==
--- 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/JcrResourceResolver.java
 Fri Jun 17 21:40:03 2011
@@ -666,6 +666,9 @@ public class JcrResourceResolver
 
 // and then we have the mapped path to work on
 mappedPath = buf.toString();
+} else {
+// root if no segments
+   mappedPath = /;   
 }
 
 LOGGER.debug(map: Alias mapping resolves to path {}, mappedPath);

Modified: 
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java?rev=1137043r1=1137042r2=1137043view=diff
==
--- 
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
 (original)
+++ 
sling/trunk/bundles/jcr/resource/src/test/java/org/apache/sling/jcr/resource/internal/JcrResourceResolverTest.java
 Fri Jun 17 21:40:03 2011
@@ -41,7 +41,6 @@ import javax.servlet.http.HttpSession;
 
 import junitx.util.PrivateAccessor;
 
-import org.apache.jackrabbit.api.security.principal.PrincipalManager;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.sling.api.SlingConstants;
 import org.apache.sling.api.resource.NonExistingResource;
@@ -1624,6 +1623,11 @@ public class JcrResourceResolverTest ext
 assertEquals(path, mapped);
 }
 
+public void testMapEmptyPath() throws Exception {
+String mapped = resResolver.map();
+assertEquals(/, mapped);
+}
+
 public void testMapExtensionFragmentQuery() throws Exception {
 String path = rootNode.getPath();
 String mapped = resResolver.map(path);




svn commit: r1125779 - in /sling/trunk/bundles/jcr: jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ jackrabbit-accessmanager/src/main/resources/OSGI-INF/meta

2011-05-21 Thread enorman
Author: enorman
Date: Sat May 21 19:51:21 2011
New Revision: 1125779

URL: http://svn.apache.org/viewvc?rev=1125779view=rev
Log:
cleanup metatype labels

Added:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractPostServlet.java
   (with props)
Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/resources/OSGI-INF/metatype/metatype.properties

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/DeleteAuthorizableServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateGroupServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/resource/AuthorizableResourceProvider.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/resources/OSGI-INF/metatype/metatype.properties

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java?rev=1125779r1=1125778r2=1125779view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java
 Sat May 21 19:51:21 2011
@@ -68,7 +68,8 @@ import org.apache.sling.servlets.post.Sl
  * ddFailure. HTML explains the failure./dd
  * /dl
  *
- * @scr.component immediate=true
+ * @scr.component immediate=true label=%deleteAces.post.operation.name
+ *description=%deleteAces.post.operation.description
  * @scr.service interface=javax.servlet.Servlet
  * @scr.service 
interface=org.apache.sling.jcr.jackrabbit.accessmanager.DeleteAces
  * @scr.property name=sling.servlet.resourceTypes 
value=sling/servlet/default

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java?rev=1125779r1=1125778r2=1125779view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java
 Sat May 21 19:51:21 2011
@@ -93,7 +93,8 @@ import org.apache.sling.jcr.jackrabbit.a
  * /pre
  * /code
  *
- * @scr.component immediate=true
+ * @scr.component immediate=true label=%getAcl.get.operation.name
+ *description=%getAcl.get.operation.description
  * @scr.service interface=javax.servlet.Servlet
  * @scr.service 
interface=org.apache.sling.jcr.jackrabbit.accessmanager.GetAcl
  * @scr.property name=sling.servlet.resourceTypes 
value=sling/servlet/default

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java?rev=1125779r1=1125778r2=1125779view=diff

svn commit: r1124538 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/ bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/

2011-05-18 Thread enorman
Author: enorman
Date: Thu May 19 05:24:07 2011
New Revision: 1124538

URL: http://svn.apache.org/viewvc?rev=1124538view=rev
Log:
SLING-2083 AccessManager permissions manipulation services that mirror the 
functionality of the REST operations for programmatic access management code.

Added:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/DeleteAces.java
   (with props)

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java
   (with props)

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetEffectiveAcl.java
   (with props)

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/ModifyAce.java
   (with props)
Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractGetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/DeleteAcesServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/GetEffectiveAclServlet.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
sling/trunk/launchpad/builder/src/main/bundles/list.xml

Added: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/DeleteAces.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/DeleteAces.java?rev=1124538view=auto
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/DeleteAces.java
 (added)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/DeleteAces.java
 Thu May 19 05:24:07 2011
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.jcr.jackrabbit.accessmanager;
+
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+
+/**
+ * The codeDeleteAces/code service api.
+ * p
+ * This interface is not intended to be implemented by bundles. It is
+ * implemented by this bundle and may be used by client bundles.
+ * /p
+ */
+public interface DeleteAces {
+
+   /**
+* Deletes one or more ACEs from the access control list of a resource.
+* 
+* @param jcrSession the JCR session of the user updating the user
+* @param resourcePath The path of the resource to update the ACL for 
(required)
+* @param principalNamesToDelete An array of ace principal names to 
delete.. (required)
+* @throws RepositoryException
+*/
+   public void deleteAces(Session jcrSession,
+   String resourcePath,
+   String [] 
principalNamesToDelete
+   ) throws RepositoryException;
+   
+}

Propchange: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/DeleteAces.java
--
svn:eol-style = native

Added: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/GetAcl.java?rev=1124538view=auto
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit

svn commit: r1100046 - /sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java

2011-05-05 Thread enorman
Author: enorman
Date: Fri May  6 04:29:01 2011
New Revision: 1100046

URL: http://svn.apache.org/viewvc?rev=1100046view=rev
Log:
revert change from revision 1100034 that checked in by accident.

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java?rev=1100046r1=1100045r2=1100046view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
 Fri May  6 04:29:01 2011
@@ -243,6 +243,15 @@ public class AuthorizablePrivilegesInfoI
return true;
}
}
+   
+   //check if the user is a member of the 'User 
administrator' group
+   Authorizable userAdmin = 
userManager.getAuthorizable(this.userAdminGroupName);
+   if (userAdmin instanceof Group) {
+   boolean isMember = 
((Group)userAdmin).isMember(currentUser);
+   if (isMember) {
+   return true;
+   }
+   }
}
} catch (RepositoryException e) {
log.warn(Failed to determine if {} can remove 
authorizable {}, jcrSession.getUserID(), groupId);




svn commit: r1099482 - in /sling/trunk: bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ launchpad/integration-tests/src/main/java/org/apache/sling/l

2011-05-04 Thread enorman
Author: enorman
Date: Wed May  4 15:11:25 2011
New Revision: 1099482

URL: http://svn.apache.org/viewvc?rev=1099482view=rev
Log:
SLING-2069 PW reset through administrator is not possible.  
Following the jackrabbit model, members of the UserAdmin group can set the 
password of other users.

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/UpdateUserTest.java

sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/user/update_body.html.esp

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java?rev=1099482r1=1099481r2=1099482view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
 Wed May  4 15:11:25 2011
@@ -17,6 +17,7 @@
 package org.apache.sling.jackrabbit.usermanager.impl.post;
 
 import java.lang.reflect.Method;
+import java.util.Dictionary;
 import java.util.List;
 
 import javax.jcr.Credentials;
@@ -24,12 +25,19 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 import org.apache.jackrabbit.api.security.user.Authorizable;
+import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
+import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.resource.ResourceNotFoundException;
 import org.apache.sling.api.servlets.HtmlResponse;
+import org.apache.sling.commons.osgi.OsgiUtil;
+import org.apache.sling.jcr.base.util.AccessControlUtil;
 import org.apache.sling.servlets.post.Modification;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * p
@@ -45,7 +53,7 @@ import org.apache.sling.servlets.post.Mo
  * h4Post Parameters/h4
  * dl
  * dtoldPwd/dt
- * ddThe current password for the user (required)/dd
+ * ddThe current password for the user (required for non-administrators)/dd
  * dtnewPwd/dt
  * ddThe new password for the user (required)/dd
  * dtnewPwdConfirm/dt
@@ -63,13 +71,13 @@ import org.apache.sling.servlets.post.Mo
  * h4Example/h4
  *
  * code
- * curl -FoldPwd=oldpassword -FnewPwd=newpassword =FnewPwdConfirm=newpassword 
http://localhost:8080/system/userManager/user/ieb.changePassword.html
+ * curl -FoldPwd=oldpassword -FnewPwd=newpassword -FnewPwdConfirm=newpassword 
http://localhost:8080/system/userManager/user/ieb.changePassword.html
  * /code
  *
  * h4Notes/h4
  *
  *
- * @scr.component metatype=no immediate=true
+ * @scr.component immediate=true
  * @scr.service interface=javax.servlet.Servlet
  * @scr.property name=sling.servlet.resourceTypes value=sling/user
  * @scr.property name=sling.servlet.methods value=POST
@@ -78,6 +86,46 @@ import org.apache.sling.servlets.post.Mo
 public class ChangeUserPasswordServlet extends AbstractUserPostServlet {
 private static final long serialVersionUID = 1923614318474654502L;
 
+/**
+ * default log
+ */
+private final Logger log = LoggerFactory.getLogger(getClass());
+
+/**
+ * The name of the configuration parameter providing the 
+ * name of the group whose members are allowed to reset the password
+ * of a user without the 'oldPwd' value.
+ *
+ * @scr.property valueRef=DEFAULT_USER_ADMIN_GROUP_NAME
+ */
+private static final String PAR_USER_ADMIN_GROUP_NAME = 
user.admin.group.name;
+
+/**
+ * The default 'User administrator' group name
+ *
+ * @see #PAR_USER_ADMIN_GROUP_NAME
+ */
+private static final String DEFAULT_USER_ADMIN_GROUP_NAME = UserAdmin;
+ 
+private String userAdminGroupName = DEFAULT_USER_ADMIN_GROUP_NAME;
+
+// -- SCR integration -
+
+/**
+ * Activates this component.
+ *
+ * @param componentContext The OSGi codeComponentContext/code of this
+ *component.
+ */
+protected void activate(ComponentContext componentContext) {
+super.activate(componentContext);
+Dictionary?, ? props = componentContext.getProperties();
+
+this.userAdminGroupName = 
OsgiUtil.toString(props.get

svn commit: r1098913 - in /sling/trunk: bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ launchpad/integration-tests/src/main/java/org/apache/sling/l

2011-05-02 Thread enorman
Author: enorman
Date: Tue May  3 05:29:58 2011
New Revision: 1098913

URL: http://svn.apache.org/viewvc?rev=1098913view=rev
Log:
SLING-2070 Members of the UserAdmin group can not create a new user

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java?rev=1098913r1=1098912r2=1098913view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
 Tue May  3 05:29:58 2011
@@ -24,10 +24,12 @@ import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 
 import org.apache.jackrabbit.api.security.user.Authorizable;
+import org.apache.jackrabbit.api.security.user.Group;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.servlets.HtmlResponse;
+import org.apache.sling.commons.osgi.OsgiUtil;
 import org.apache.sling.servlets.post.impl.helper.RequestProperty;
 import 
org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider;
 import org.apache.sling.jcr.api.SlingRepository;
@@ -105,6 +107,23 @@ public class CreateUserServlet extends A
 private Boolean selfRegistrationEnabled = 
DEFAULT_SELF_REGISTRATION_ENABLED;
 
 /**
+ * The name of the configuration parameter providing the 
+ * 'User administrator' group name.
+ *
+ * @scr.property valueRef=DEFAULT_USER_ADMIN_GROUP_NAME
+ */
+private static final String PAR_USER_ADMIN_GROUP_NAME = 
user.admin.group.name;
+
+/**
+ * The default 'User administrator' group name
+ *
+ * @see #PAR_USER_ADMIN_GROUP_NAME
+ */
+private static final String DEFAULT_USER_ADMIN_GROUP_NAME = UserAdmin;
+ 
+private String userAdminGroupName = DEFAULT_USER_ADMIN_GROUP_NAME;
+
+/**
  * The JCR Repository we access to resolve resources
  *
  * @scr.reference
@@ -155,6 +174,10 @@ public class CreateUserServlet extends A
 } else {
 selfRegistrationEnabled = DEFAULT_SELF_REGISTRATION_ENABLED;
 }
+
+this.userAdminGroupName = 
OsgiUtil.toString(props.get(PAR_USER_ADMIN_GROUP_NAME),
+   DEFAULT_USER_ADMIN_GROUP_NAME);
+log.info(User Admin Group Name {}, this.userAdminGroupName);
 }
 
 /*
@@ -176,6 +199,18 @@ public class CreateUserServlet extends A
 UserManager um = AccessControlUtil.getUserManager(currentSession);
 User currentUser = (User) 
um.getAuthorizable(currentSession.getUserID());
 administrator = currentUser.isAdmin();
+
+if (!administrator) {
+   //check if the user is a member of the 'User 
administrator' group
+   Authorizable userAdmin = 
um.getAuthorizable(this.userAdminGroupName);
+   if (userAdmin instanceof Group) {
+   boolean isMember = 
((Group)userAdmin).isMember(currentUser);
+   if (isMember) {
+   administrator = true;
+   }
+   }
+   
+}
 } catch ( Exception ex ) {
 log.warn(Failed to determin if the user is an admin, assuming 
not. Cause: +ex.getMessage());
 administrator = false;

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java?rev=1098913r1=1098912r2=1098913view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java
 Tue May  3 05:29:58

svn commit: r1098430 [4/4] - in /sling/trunk/samples: ./ accessmanager-ui/ accessmanager-ui/.settings/ accessmanager-ui/src/ accessmanager-ui/src/main/ accessmanager-ui/src/main/java/ accessmanager-ui

2011-05-01 Thread enorman
Added: 
sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/user/update_body.html.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/user/update_body.html.esp?rev=1098430view=auto
==
--- 
sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/user/update_body.html.esp
 (added)
+++ 
sling/trunk/samples/usermanager-ui/src/main/resources/libs/sling/user/update_body.html.esp
 Sun May  1 22:46:46 2011
@@ -0,0 +1,203 @@
+%
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var privilegesInfo = 
sling.getService(Packages.org.apache.sling.jackrabbit.usermanager.AuthorizablePrivilegesInfo);
+var authorizable = 
resource.adaptTo(Packages.org.apache.jackrabbit.api.security.user.Authorizable);
+var canEdit = privilegesInfo.canUpdateProperties(currentSession, 
authorizable.getID());
+var canRemove = privilegesInfo.canRemove(currentSession, 
authorizable.getID()); 
+var canUpdateMembers = privilegesInfo.canUpdateGroupMembers(currentSession, 
authorizable.getID());
+var valueMap = 
resource.adaptTo(Packages.org.apache.sling.api.resource.ValueMap);
+var isMe = authorizable.getID().equals(request.getRemoteUser());
+
+var rb = request.getResourceBundle(org.apache.sling.usermgr.Resources, null);
+
+var propNameSet = new Packages.java.util.TreeSet(valueMap.keySet());
+propNameSet.remove(declaredMemberOf);
+propNameSet.remove(memberOf);
+
+var propKeysCsv = rb.getString(csv.static.user.prop.keys);
+var items = [];
+if (propKeysCsv != null  propKeysCsv.length()  0  
!propKeysCsv.equals(csv.static.user.prop.keys)) {
+items = propKeysCsv.split(,);
+}
+for (var i=0; i  items.length; i++) {
+propNameSet.add(items[i]);
+}
+
+function propLabel(propName) {
+var key = prop.label. + propName;
+var value = rb.getString(key);
+if (value == key) {
+return propName;
+}
+return value;
+};
+function format(key, args) {
+var value = rb.getString(key);
+return Packages.java.text.MessageFormat.format(value, args);
+}
+function displayName(path) {
+var res = request.getResourceResolver().resolve(path);
+var resValueMap = 
res.adaptTo(Packages.org.apache.sling.api.resource.ValueMap);
+var value = resValueMap.get(displayName);
+if (value == null) {
+value = path.substring(path.lastIndexOf('/') + 1)
+}
+return value;
+}
+%
+div class=ui-widget ui-widget-content ui-corner-all usermgmt-body 
id=update-user-body 
+h3 class=ui-widget-header ui-corner-all 
usermgmt-header%=format(canEdit ? header.update.user : header.view.user, 
authorizable.getID())%/h3
+
+div class=info-msg-block style=display:none;
+div class=ui-state-highlight ui-corner-all 
+p
+span class=ui-icon ui-icon-info/span
+span class=info-msg-text/span
+/p
+/div
+/div
+
+form id=update-user-form accept-charset=UTF-8 
+action=%=request.contextPath%%=resource.path %.update.html 
+method=post 
+fieldset
+input type=hidden value=UTF-8 name=_charset_ /
+input id=redirect type=hidden name=:redirect 
value=%=request.contextPath%%=resource.path %.html /
+
+%-- Member Of --%
+% var key = memberOf; 
+   var value = valueMap.get(key);
+%
+div class=prop-line ui-helper-clearfix
+label for=%=key%%=propLabel(key)%:/label
+
+ol id=%=key%
+li id=%=key%__empty %= value.length == 0 ?  : 
style='display:none' %%=rb.getString(memberOf.empty)%/li
+%  
+   for (i = 0; i  value.length; i++) {
+  var group = value[i];
+%
+li
+a 
href=%=request.contextPath%%=group%.html%=displayName(group)%/a
+/li
+%
+   }/* endfor */
+%
+/ol
+/div
+
+%
+var it = 

svn commit: r1098430 [2/4] - in /sling/trunk/samples: ./ accessmanager-ui/ accessmanager-ui/.settings/ accessmanager-ui/src/ accessmanager-ui/src/main/ accessmanager-ui/src/main/java/ accessmanager-ui

2011-05-01 Thread enorman
Added: 
sling/trunk/samples/accessmanager-ui/src/main/resources/libs/sling/servlet/default/acl_body.html.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/src/main/resources/libs/sling/servlet/default/acl_body.html.esp?rev=1098430view=auto
==
--- 
sling/trunk/samples/accessmanager-ui/src/main/resources/libs/sling/servlet/default/acl_body.html.esp
 (added)
+++ 
sling/trunk/samples/accessmanager-ui/src/main/resources/libs/sling/servlet/default/acl_body.html.esp
 Sun May  1 22:46:46 2011
@@ -0,0 +1,122 @@
+%
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+var privilegesInfo = new 
Packages.org.apache.sling.jcr.jackrabbit.accessmanager.PrivilegesInfo();
+if (!privilegesInfo.canReadAccessControl(currentNode)) {
+   //user can't read the ACL.
+   response.sendError(403);
+} else {
+   if (!response.isCommitted()) {
+   //don't allow caching of this page
+response.setDateHeader(Expires, 0);
+response.setHeader(Pragma, no-cache);
+response.setHeader(Cache-control, no-cache, must-revalidate);
+}
+   
+   var canModify = privilegesInfo.canModifyAccessControl(currentNode);
+   
+   var rb = 
request.getResourceBundle(org.apache.sling.accessmanager.Resources, null);
+   
+   function format(key, args) {
+  var value = rb.getString(key);
+ return Packages.java.text.MessageFormat.format(value, args);
+   }
+%
+
+div class=ui-widget ui-widget-content ui-corner-all accessmgmt-body 
id=update-acl-block 
+% if (canModify) { %
+div id='modify-acl-header' class=ui-widget-header ui-corner-all 
ui-helper-clearfix
+h3 class=accessmgmt-header%=format(header.update.acl, 
[currentNode.name])%/h3
+span id=add-ace-block
+a 
href=%=request.contextPath%%=resource.path%.ace.html%=rb.getString(menu.link.add.ace)%/a
+/span
+/div
+% } else { /*end if(canModify) */ %
+h3 class=ui-widget-header ui-corner-all 
accessmgmt-header%=format(header.view.acl, [currentNode.name])%/h3
+% } /* endelse */ %
+
+%
+   var accessMap = privilegesInfo.getDeclaredAccessRights(currentNode);
+   if (accessMap.isEmpty()) {
+%
+div id=acl-list-empty class=ui-corner-all 
ui-state-highlight%=rb.getString(msg.acl.empty)%/div
+% } else { %
+   table id=acl-list width=100% class=ui-widget ui-widget-content 
ui-corner-all
+thead class=ui-widget-header
+tr
+th 
align=left%=rb.getString(column.authorizable.header)%/th
+th align=left 
width=125px%=rb.getString(column.privileges.header)%/th
+th align=left width=75px#160;/th
+/tr
+/thead
+tbody
+   %
+  var jcrSession = 
request.getResourceResolver().adaptTo(Packages.javax.jcr.Session);
+  var userManager = 
Packages.org.apache.sling.jcr.base.util.AccessControlUtil.getUserManager(jcrSession);
+   
+  var entrySet = accessMap.entrySet();
+  var iterator = entrySet.iterator();
+  while (iterator.hasNext()) {
+ var entry = iterator.next();
+ var principal = entry.getKey();
+ var accessrights = entry.getValue();
+   
+ var userDisplayName = principal.getName();
+ var authorizable = 
userManager.getAuthorizable(principal.getName());
+ if (authorizable) {
+ var values = authorizable.getProperty(displayName);
+ if (values != null  values.length  0) {
+ userDisplayName = values[0].getString();
+ }
+ }
+   %
+tr
+td
+a title='%=rb.getString(canModify ? 
menu.link.update.ace : menu.link.view.ace)%' 
+
href=%=request.contextPath%%=currentNode.path%.ace.html?pid=%=principal.getName()%%=userDisplayName%/a
+/td
+td width=125px
+
%=accessrights.getPrivilegeSetDisplayName(request.locale)%
+

svn commit: r1098433 - in /sling/trunk/samples: accessmanager-ui/ usermanager-ui/

2011-05-01 Thread enorman
Author: enorman
Date: Sun May  1 22:52:33 2011
New Revision: 1098433

URL: http://svn.apache.org/viewvc?rev=1098433view=rev
Log:
ignore build artifacts

Modified:
sling/trunk/samples/accessmanager-ui/   (props changed)
sling/trunk/samples/usermanager-ui/   (props changed)

Propchange: sling/trunk/samples/accessmanager-ui/
--
--- svn:ignore (added)
+++ svn:ignore Sun May  1 22:52:33 2011
@@ -0,0 +1 @@
+target

Propchange: sling/trunk/samples/usermanager-ui/
--
--- svn:ignore (added)
+++ svn:ignore Sun May  1 22:52:33 2011
@@ -0,0 +1 @@
+target




svn commit: r1098434 - /sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java

2011-05-01 Thread enorman
Author: enorman
Date: Sun May  1 22:59:23 2011
New Revision: 1098434

URL: http://svn.apache.org/viewvc?rev=1098434view=rev
Log:
correct some errors in the javadocs

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java?rev=1098434r1=1098433r2=1098434view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ChangeUserPasswordServlet.java
 Sun May  1 22:59:23 2011
@@ -33,10 +33,10 @@ import org.apache.sling.servlets.post.Mo
 
 /**
  * p
- * Changes the password associated with a user. a new group. Maps on to nodes 
of resourceType codesling/groups/code like
+ * Changes the password associated with a user. Maps on to nodes of 
resourceType codesling/user/code like
  * code/rep:system/rep:userManager/rep:users/ae/fd/3e/ieb/code mapped to a 
resource url
  * code/system/userManager/user/ieb/code. This servlet responds at
- * code/system/userManager/user/ieb.changePassword.create.html/code
+ * code/system/userManager/user/ieb.changePassword.html/code
  * /p
  * h4Methods/h4
  * ul
@@ -54,11 +54,11 @@ import org.apache.sling.servlets.post.Mo
  * h4Response/h4
  * dl
  * dt200/dt
- * ddSucess sent with no body/dd
+ * ddSuccess sent with no body/dd
  * dt404/dt
  * ddIf the user was not found./dd
  * dt500/dt
- * ddFailure, including group already exists. HTML explains the failure./dd
+ * ddFailure, including password validation errors. HTML explains the 
failure./dd
  * /dl
  * h4Example/h4
  *




svn commit: r1098436 - in /sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post: CreateGroupServlet.java CreateUserServlet.java

2011-05-01 Thread enorman
Author: enorman
Date: Sun May  1 23:06:30 2011
New Revision: 1098436

URL: http://svn.apache.org/viewvc?rev=1098436view=rev
Log:
SLING-2066 improve error reporting for validation errors

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java?rev=1098436r1=1098435r2=1098436view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
 Sun May  1 23:06:30 2011
@@ -95,7 +95,7 @@ public class CreateGroupServlet extends 
 
 // check that the submitted parameter values have valid values.
 final String principalName = 
request.getParameter(SlingPostConstants.RP_NODE_NAME);
-if (principalName == null) {
+if (principalName == null || principalName.length() == 0) {
 throw new RepositoryException(Group name was not submitted);
 }
 
@@ -104,41 +104,37 @@ public class CreateGroupServlet extends 
 throw new RepositoryException(JCR Session not found);
 }
 
-try {
-UserManager userManager = 
AccessControlUtil.getUserManager(session);
-Authorizable authorizable = 
userManager.getAuthorizable(principalName);
-
-if (authorizable != null) {
-// principal already exists!
-throw new RepositoryException(
-A principal already exists with the requested name: 
-+ principalName);
-} else {
-Group group = userManager.createGroup(new Principal() {
-public String getName() {
-return principalName;
-}
-});
-
-String groupPath = 
AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PREFIX
-+ group.getID();
-
-MapString, RequestProperty reqProperties = collectContent(
-request, response, groupPath);
-response.setPath(groupPath);
-response.setLocation(externalizePath(request, groupPath));
-response.setParentLocation(externalizePath(request,
-
AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PATH));
-changes.add(Modification.onCreated(groupPath));
-
-// write content from form
-writeContent(session, group, reqProperties, changes);
-
-// update the group memberships
-updateGroupMembership(request, group, changes);
-}
-} catch (RepositoryException re) {
-throw new RepositoryException(Failed to create new group., re);
+UserManager userManager = AccessControlUtil.getUserManager(session);
+Authorizable authorizable = userManager.getAuthorizable(principalName);
+
+if (authorizable != null) {
+// principal already exists!
+throw new RepositoryException(
+A principal already exists with the requested name: 
++ principalName);
+} else {
+Group group = userManager.createGroup(new Principal() {
+public String getName() {
+return principalName;
+}
+});
+
+String groupPath = 
AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PREFIX
++ group.getID();
+
+MapString, RequestProperty reqProperties = collectContent(
+request, response, groupPath);
+response.setPath(groupPath);
+response.setLocation(externalizePath(request, groupPath));
+response.setParentLocation(externalizePath(request,
+AuthorizableResourceProvider.SYSTEM_USER_MANAGER_GROUP_PATH));
+changes.add(Modification.onCreated(groupPath));
+
+// write content from form
+writeContent(session, group, reqProperties, changes);
+
+// update the group memberships
+updateGroupMembership(request, group, changes);
 }
 }
 }

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit

svn commit: r1098439 - /sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java

2011-05-01 Thread enorman
Author: enorman
Date: Sun May  1 23:13:21 2011
New Revision: 1098439

URL: http://svn.apache.org/viewvc?rev=1098439view=rev
Log:
SLING-2067 Added null check to AuthorizablePrivilegesInfo to fix NPE when used 
in a script that is being rendered for the anonymous user 

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java?rev=1098439r1=1098438r2=1098439view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/AuthorizablePrivilegesInfoImpl.java
 Sun May  1 23:13:21 2011
@@ -23,6 +23,7 @@ import java.util.Dictionary;
 
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.servlet.Servlet;
 
 import org.apache.jackrabbit.api.security.user.Authorizable;
 import org.apache.jackrabbit.api.security.user.Group;
@@ -31,6 +32,9 @@ import org.apache.jackrabbit.api.securit
 import org.apache.sling.commons.osgi.OsgiUtil;
 import org.apache.sling.jackrabbit.usermanager.AuthorizablePrivilegesInfo;
 import org.apache.sling.jcr.base.util.AccessControlUtil;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceReference;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -110,16 +114,18 @@ public class AuthorizablePrivilegesInfoI
UserManager userManager = 
AccessControlUtil.getUserManager(jcrSession);
Authorizable currentUser = 
userManager.getAuthorizable(jcrSession.getUserID());
 
-   if (((User)currentUser).isAdmin()) {
-   return true; //admin user has full control
-   }
-   
-   //check if the user is a member of the 'Group 
administrator' group
-   Authorizable groupAdmin = 
userManager.getAuthorizable(this.groupAdminGroupName);
-   if (groupAdmin instanceof Group) {
-   boolean isMember = 
((Group)groupAdmin).isMember(currentUser);
-   if (isMember) {
-   return true;
+   if (currentUser != null) {
+   if (((User)currentUser).isAdmin()) {
+   return true; //admin user has full 
control
+   }
+   
+   //check if the user is a member of the 'Group 
administrator' group
+   Authorizable groupAdmin = 
userManager.getAuthorizable(this.groupAdminGroupName);
+   if (groupAdmin instanceof Group) {
+   boolean isMember = 
((Group)groupAdmin).isMember(currentUser);
+   if (isMember) {
+   return true;
+   }
}
}
} catch (RepositoryException e) {
@@ -133,23 +139,46 @@ public class AuthorizablePrivilegesInfoI
 */
public boolean canAddUser(Session jcrSession) {
try {
+   //if self-registration is enabled, then anyone can 
create a user
+   if (componentContext != null) {
+   String filter = 
((sling.servlet.resourceTypes=sling/users)(|(sling.servlet.methods=POST)(sling.servlet.selectors=create)));
+   BundleContext bundleContext = 
componentContext.getBundleContext();
+   ServiceReference[] serviceReferences = 
bundleContext.getServiceReferences(Servlet.class.getName(), filter);
+   if (serviceReferences != null) {
+   String propName = 
self.registration.enabled;
+   for (ServiceReference serviceReference 
: serviceReferences) {
+   Object propValue = 
serviceReference.getProperty(propName);
+   if (propValue != null) {
+   boolean

svn commit: r1098450 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml

2011-05-01 Thread enorman
Author: enorman
Date: Mon May  2 00:23:46 2011
New Revision: 1098450

URL: http://svn.apache.org/viewvc?rev=1098450view=rev
Log:
SLING-1847 use the snapshot build of the o.a.s.auth.form bundle to pick up the 
fixed bug

Modified:
sling/trunk/launchpad/builder/src/main/bundles/list.xml

Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1098450r1=1098449r2=1098450view=diff
==
--- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original)
+++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Mon May  2 00:23:46 
2011
@@ -81,7 +81,7 @@
 bundle
 groupIdorg.apache.sling/groupId
 artifactIdorg.apache.sling.auth.form/artifactId
-version1.0.2/version
+version1.0.3-SNAPSHOT/version
 /bundle
 bundle
 groupIdorg.apache.sling/groupId




svn commit: r1098452 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml

2011-05-01 Thread enorman
Author: enorman
Date: Mon May  2 00:37:23 2011
New Revision: 1098452

URL: http://svn.apache.org/viewvc?rev=1098452view=rev
Log:
SLING-2066 use the snapshot build of the usermanager bundle to pick up the 
fixed bug

Modified:
sling/trunk/launchpad/builder/src/main/bundles/list.xml

Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1098452r1=1098451r2=1098452view=diff
==
--- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original)
+++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Mon May  2 00:37:23 
2011
@@ -353,7 +353,7 @@
 bundle
 groupIdorg.apache.sling/groupId
 
artifactIdorg.apache.sling.jcr.jackrabbit.usermanager/artifactId
-version2.1.0/version
+version2.1.1-SNAPSHOT/version
 /bundle
 bundle
 groupIdorg.apache.sling/groupId




svn commit: r1098453 - in /sling/trunk/samples: accessmanager-ui/README.txt accessmanager-ui/pom.xml usermanager-ui/README.txt

2011-05-01 Thread enorman
Author: enorman
Date: Mon May  2 00:38:33 2011
New Revision: 1098453

URL: http://svn.apache.org/viewvc?rev=1098453view=rev
Log:
SLING-2065, SLING-1562 updated readme

Modified:
sling/trunk/samples/accessmanager-ui/README.txt
sling/trunk/samples/accessmanager-ui/pom.xml
sling/trunk/samples/usermanager-ui/README.txt

Modified: sling/trunk/samples/accessmanager-ui/README.txt
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/README.txt?rev=1098453r1=1098452r2=1098453view=diff
==
--- sling/trunk/samples/accessmanager-ui/README.txt (original)
+++ sling/trunk/samples/accessmanager-ui/README.txt Mon May  2 00:38:33 2011
@@ -1,50 +1,47 @@
-Sling user management UI sample
+Sling access manager UI sample
 -
 
 WHY THIS SAMPLE?
 
-This demonstrates some sample UI for user self-regirstration and profile 
update.
+This demonstrates some sample UI for viewing/updating the access control
+lists of JCR nodes.
+
+PRE-REQUISITES
+--
+This sample uses the i18n support provided by the org.apache.sling.i18n bundle,
+so that bundle must be installed into your sling instance first. 
+
+If using the sling launchpad, you will need to remove the following scripts 
from your
+jackrabbit repository since this sample bundle provides a different 
implementation of
+those scripts.
+/apps/sling/servlet/default/ace.html.esp
+/apps/sling/servlet/default/acl.html.esp
 
 HOW TO INSTALL
 --
 Build this bundle and install it in Sling.
 
-For example, if Sling is running on port 8080 (which happens if you start 
-the launchpad/testing module with mvn jetty:run), this will build and 
+For example, if Sling is running on port  (which happens if you start 
+the launchpad/builder module with mvn launchpad:run), this will build and 
 install it:
 
-mvn -P autoInstallBundle clean install 
-Dsling.url=http://localhost:8080/system/console
+mvn -P autoInstallBundle clean install 
-Dsling.url=http://localhost:/system/console
 
 To verify that the bundle is correctly installed:
 
-1) http://localhost:8080/apps/espblog/html.esp must return the html.esp 
+1) http://localhost:/libs/sling/accessmanager/page.html.esp must return 
the page.html.esp 
script.
 
-2) The console at http://localhost:8080/system/console/bundles must 
-list the bundle named Sling - ESP blog sample as active.
+2) The console at http://localhost:/system/console/bundles must 
+list the bundle named Apache Sling Access Manager UI sample as active.   
 
 
 HOW TO TEST
 ---
-Start by logging in at http://localhost:8080/?sling:authRequestLogin=true,
-using username=admin and password=admin (or use the login link on the 
-/index.html page).
-
-Once logged in, /index.html should say you are currently logged in as
-user admin to workspace default.
-
-Then, http://localhost:8080/content/espblog/*.html should display the Sling 
ESP
-blog sample page, with the Home/Admin/New Post/... menu.
-
-If you get Sling's default HTML rendition instead (Resource dumped by 
-HtmlRendererServlet) that's probably because the path-based-rtp bundle
-is not installed. Run the above mvn...clean install command in the
-sling/samples/path-based-rtp folder to install it, and reload the page.
+Login as the admin user.
 
-Create a new post using the New Post menu.
+Open http://localhost:/[node_path_here].acl.html to view the access 
control list for
+a JCR node where [node_path_here] is replaced with the path of the node. 
 
-The post can include an attachment, if that's an image the included
-ThumbnailGeneratorService generates thumbnails in different sizes, displayed
-on the post's page. This happens asynchronously, so depending on your 
-machine's speed the thumbnails might only appear after a few seconds.
+Use the links on the page to add/update/remove access control entries to the 
list
+to provision privileges for users or groups.
 
-The ESP scripts are found under /apps/espblog in the repository.

Modified: sling/trunk/samples/accessmanager-ui/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/accessmanager-ui/pom.xml?rev=1098453r1=1098452r2=1098453view=diff
==
--- sling/trunk/samples/accessmanager-ui/pom.xml (original)
+++ sling/trunk/samples/accessmanager-ui/pom.xml Mon May  2 00:38:33 2011
@@ -99,7 +99,6 @@
 configuration
   instructions
 Export-Package
-org.apache.sling.accessmanager
 /Export-Package
 Sling-Bundle-Resources
 /images,

Modified: sling/trunk/samples/usermanager-ui/README.txt
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/README.txt?rev=1098453r1=1098452r2=1098453view=diff
==
--- sling/trunk/samples

svn commit: r1095594 - /sling/trunk/launchpad/builder/src/main/bundles/list.xml

2011-04-20 Thread enorman
Author: enorman
Date: Thu Apr 21 03:48:02 2011
New Revision: 1095594

URL: http://svn.apache.org/viewvc?rev=1095594view=rev
Log:
SLING-1847 use the snapshot build of the o.a.s.auth.form bundle to pick up the 
fixed bug

Modified:
sling/trunk/launchpad/builder/src/main/bundles/list.xml

Modified: sling/trunk/launchpad/builder/src/main/bundles/list.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/builder/src/main/bundles/list.xml?rev=1095594r1=1095593r2=1095594view=diff
==
--- sling/trunk/launchpad/builder/src/main/bundles/list.xml (original)
+++ sling/trunk/launchpad/builder/src/main/bundles/list.xml Thu Apr 21 03:48:02 
2011
@@ -81,7 +81,7 @@
 bundle
 groupIdorg.apache.sling/groupId
 artifactIdorg.apache.sling.auth.form/artifactId
-version1.0.2/version
+version1.0.3-SNAPSHOT/version
 /bundle
 bundle
 groupIdorg.apache.sling/groupId




svn commit: r1088070 - in /sling/trunk: bundles/commons/testing/ bundles/jcr/davex/ bundles/jcr/jackrabbit-server/ bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/im

2011-04-02 Thread enorman
Author: enorman
Date: Sat Apr  2 18:15:02 2011
New Revision: 1088070

URL: http://svn.apache.org/viewvc?rev=1088070view=rev
Log:
SLING-2044 Upgrade to jackrabbit 2.2.5

Added:
sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/
sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/apache/

sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/apache/jackrabbit/

sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/apache/jackrabbit/core/

sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/apache/jackrabbit/core/query/

sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/apache/jackrabbit/core/query/lucene/

sling/trunk/bundles/jcr/jackrabbit-server/src/main/resources/org/apache/jackrabbit/core/query/lucene/tika-config.xml
   (with props)
Modified:
sling/trunk/bundles/commons/testing/pom.xml
sling/trunk/bundles/jcr/davex/pom.xml
sling/trunk/bundles/jcr/jackrabbit-server/pom.xml

sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultAccessManager.java

sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server/impl/security/PluggableDefaultLoginModule.java
sling/trunk/bundles/jcr/webdav/pom.xml
sling/trunk/launchpad/builder/src/main/bundles/list.xml

Modified: sling/trunk/bundles/commons/testing/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/commons/testing/pom.xml?rev=1088070r1=1088069r2=1088070view=diff
==
--- sling/trunk/bundles/commons/testing/pom.xml (original)
+++ sling/trunk/bundles/commons/testing/pom.xml Sat Apr  2 18:15:02 2011
@@ -87,19 +87,19 @@
 dependency
 groupIdorg.apache.jackrabbit/groupId
 artifactIdjackrabbit-api/artifactId
-version2.1.1/version
+version2.2.5/version
 scopecompile/scope
 /dependency
 dependency
 groupIdorg.apache.jackrabbit/groupId
 artifactIdjackrabbit-jcr-commons/artifactId
-version2.1.1/version
+version2.2.5/version
 scopecompile/scope
 /dependency
 dependency
 groupIdorg.apache.jackrabbit/groupId
 artifactIdjackrabbit-core/artifactId
-version2.1.1/version
+version2.2.5/version
 scopecompile/scope
 /dependency
 dependency

Modified: sling/trunk/bundles/jcr/davex/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/davex/pom.xml?rev=1088070r1=1088069r2=1088070view=diff
==
--- sling/trunk/bundles/jcr/davex/pom.xml (original)
+++ sling/trunk/bundles/jcr/davex/pom.xml Sat Apr  2 18:15:02 2011
@@ -95,7 +95,7 @@
 dependency
 groupIdorg.apache.jackrabbit/groupId
 artifactIdjackrabbit-jcr-server/artifactId
-version2.1.1/version
+version2.2.5/version
 scopecompile/scope
 /dependency
 

Modified: sling/trunk/bundles/jcr/jackrabbit-server/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-server/pom.xml?rev=1088070r1=1088069r2=1088070view=diff
==
--- sling/trunk/bundles/jcr/jackrabbit-server/pom.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-server/pom.xml Sat Apr  2 18:15:02 2011
@@ -94,9 +94,10 @@
 
org.apache.sling.jcr.jackrabbit.server.impl.Activator
 /Bundle-Activator
 Export-Package
-
org.apache.sling.jcr.jackrabbit.server;version=2.1.0,
-
org.apache.sling.jcr.jackrabbit.server.security.*;version=2.0.4-incubator,
-
org.apache.jackrabbit.core.security.principal;version=2.1.1
+ 
org.apache.sling.jcr.jackrabbit.server;version=2.1.0,
+ 
org.apache.sling.jcr.jackrabbit.server.security;version=2.0.4-incubator,
+ 
org.apache.sling.jcr.jackrabbit.server.security.accessmanager;version=2.1.0,
+ 
org.apache.jackrabbit.core.security.principal;version=2.2.5
 /Export-Package
 Private-Package
 org.apache.sling.jcr.jackrabbit.server.impl.*,
@@ -215,7 +216,7 @@
 dependency
 groupIdorg.apache.jackrabbit/groupId
 artifactIdjackrabbit-core/artifactId
-version2.1.1/version
+version2.2.5/version
 scopecompile/scope
 /dependency
 dependency

Modified: 
sling/trunk/bundles/jcr/jackrabbit-server/src/main/java/org/apache/sling/jcr/jackrabbit/server

svn commit: r1085787 - in /sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling: explorer/js/explorer.js servlet/default/explorer/edit.esp servlet/default/explorer/explorer.esp servle

2011-03-26 Thread enorman
Author: enorman
Date: Sat Mar 26 19:12:29 2011
New Revision: 1085787

URL: http://svn.apache.org/viewvc?rev=1085787view=rev
Log:
SLING-2019 explorer doesn't work when sling is used in a non-root context

Modified:

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/explorer.js

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/explorer.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/node.esp

Modified: 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/explorer.js
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/explorer.js?rev=1085787r1=1085786r2=1085787view=diff
==
--- 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/explorer.js
 (original)
+++ 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/explorer.js
 Sat Mar 26 19:12:29 2011
@@ -19,23 +19,31 @@
  
 /** replace the default get and post jQuery utility functions */
 (function($) {
+Sling.contextPath = ;
+if (Sling.baseurl.lastIndexOf('/')  window.location.protocol.length + 3) {
+   Sling.contextPath = 
Sling.baseurl.substring(Sling.baseurl.lastIndexOf('/')); 
+};
+
 $.ajaxSetup({
timeout: 5 * 60 * 1000 // in ms, 5 minutes
 });
-$.getRaw = $.get;
-$.getJSONRaw = $.getJSON;
 $.postRaw = $.post;
-$.get = function(url, parameters, callback) {
-   return $.getRaw(Sling.baseurl + url, parameters, callback)
-};
-$.getJson = function(url, parameters, callback) {
-   return $.getJSONRaw(Sling.baseurl + url, parameters, callback)
-};
+$.ajaxRaw = $.ajax;
 $.post = function(url, parameters, callback) {
   var params = { _charset_:utf-8 };
   $.extend(params, parameters);
-  return $.postRaw(Sling.baseurl + url, parameters, callback)
+  return $.postRaw(Sling.baseurl + url, parameters, callback);
 };
+$.ajax = function(settings) {
+   var url = settings.url;
+   if (url.charAt(0) == '/'  url.indexOf(Sling.contextPath) == -1) {
+   settings.url = Sling.baseurl + url;
+   }
+   if (settings.url  settings.url.charAt(0) == '/') {
+   }
+return $.ajaxRaw(settings);
+ };
+ 
 })(jQuery);
 
 /** load the initial tree on editor startup */
@@ -164,7 +172,7 @@ load_branch = function( path, callback, 
 },
 complete: function( xmlHttpRequest, textStatus) {
 loadingbranch = false;
-if ( textStatus.equals(timeout) )
+if ( textStatus == timeout )
 {
 show_error(Timeout!);
 }

Modified: 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit.esp?rev=1085787r1=1085786r2=1085787view=diff
==
--- 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit.esp
 (original)
+++ 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit.esp
 Sat Mar 26 19:12:29 2011
@@ -80,7 +80,7 @@
 if ( mixinTypes || canModifyProperties ) { %
 h3mixin types/h3
 div id=property_element_%= mixinTypesId % class=multivalued 
property_element
-form id=properties_form_%= mixinTypesId % action=%= path 
% method=post
+form id=properties_form_%= mixinTypesId % action=%= 
request.getContextPath() %%= path % method=post
 fieldset
 label for=%= mixinTypesId %%= mixinTypesId 
%/label
 %  
@@ -131,7 +131,7 @@
 } 
 if ( !id.equals( primaryNodeTypeId )  !id.equals( mixinTypesId ) 
) { %
 div id=property_element_%= id % class=% if ( 
isMultivalueProperty ) {% multivalued % } % property_element
-form id=properties_form_%= id % action=%=path% 
method=post
+form id=properties_form_%= id % action=%= 
request.getContextPath() %%=path% method=post
 fieldset
 label for=%= id %%= id % 
 % if (isProperty) { %

Modified: 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/explorer.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/explorer.esp?rev=1085787r1=1085786r2=1085787view=diff

svn commit: r1085250 [1/2] - in /sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling: explorer/css/ explorer/js/ servlet/default/explorer/ servlet/default/explorer/edit/

2011-03-24 Thread enorman
Author: enorman
Date: Fri Mar 25 04:18:18 2011
New Revision: 1085250

URL: http://svn.apache.org/viewvc?rev=1085250view=rev
Log:
SLING-1756 [explorer] should use spaces instead of tabs

Modified:

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/css/explorer.css

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/css/jquery-ui.css

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/explorer.js

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/js/ui.datetimebox.js

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/edit/sling_redirect.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/explorer.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/item.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/node.esp

sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/servlet/default/explorer/search.esp

Modified: 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/css/explorer.css
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/css/explorer.css?rev=1085250r1=1085249r2=1085250view=diff
==
--- 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/css/explorer.css
 (original)
+++ 
sling/trunk/bundles/extensions/explorer/src/main/resources/libs/sling/explorer/css/explorer.css
 Fri Mar 25 04:18:18 2011
@@ -22,7 +22,7 @@
 /* # */
 /* --- Main-Seperator ---  */
 /* # */
-   
+
 /* : */
 /* --- Sub-Seperator  ---*/
 /* : */
@@ -31,9 +31,9 @@
  
 *
 {
-   margin: 0;
-   padding: 0;
-   border: none;
+margin: 0;
+padding: 0;
+border: none;
 }
 
 html, body 
@@ -42,18 +42,18 @@ html, body 
 
 html /* shows always scrollbar in Firefox*/
 {
-   overflow: visible;
-}  
-   
+overflow: visible;
+}   
+
 body
 {
-   font-size: 13px;
-   color: #545D66;
-   margin: 0;
-   padding: 0;
-   text-align: center;
-   font-family: Verdana, Arial, Helvetica, sans-serif;
-   overflow: hidden;
+font-size: 13px;
+color: #545D66;
+margin: 0;
+padding: 0;
+text-align: center;
+font-family: Verdana, Arial, Helvetica, sans-serif;
+overflow: hidden;
 }
 
 /* : */
@@ -62,60 +62,60 @@ body
 
 h1, h2, h3, h4, h5, h6
 {
-   font-family: Arial, Helvetica, sans-serif;
-   color: #485573;
-   margin: 0 0 20px 0;
-   padding: 0px;
+font-family: Arial, Helvetica, sans-serif;
+color: #485573;
+margin: 0 0 20px 0;
+padding: 0px;
 }
-   
+
 h1
 {
-   font-size: 22px;
-   line-height: /**/;
+font-size: 22px;
+line-height: /**/;
 }
 
 h2
 {
-   font-size: 18px;
-   line-height: /**/;
+font-size: 18px;
+line-height: /**/;
 }
 
 h3
 {
-   font-size: 14px;
-   background-color: #527EA3;
-   color: #F6FBFE;
-   padding: 5px 10px;
-   -moz-border-radius: 5px;
-   border-radius: 5px;
-   margin: 0 0 10px 0;
+font-size: 14px;
+background-color: #527EA3;
+color: #F6FBFE;
+padding: 5px 10px;
+-moz-border-radius: 5px;
+border-radius: 5px;
+margin: 0 0 10px 0;
 }
 
 h4, h5, h6
 {
-   font-size: 12px;
-   background-color: #a4bcd0;
-   color: #FF;
-   padding: 5px 10px;
-   -moz-border-radius: 5px;
-   border-radius: 5px;
-   margin: 0 0 10px 0;
+font-size: 12px;
+background-color: #a4bcd0;
+color: #FF;
+padding: 5px 10px;
+-moz-border-radius: 5px;
+border-radius: 5px;
+margin: 0 0 10px 0;
 }
 
 b, strong, b *, strong *
 {
-   font-weight: bold;
+font-weight: bold;
 }
 
 i, em, i *, em *
 {
-   font-style: italic;
+font-style: italic;
 }
 
 ul, ol
 {
-   clear: both;
-/* margin: 10px 0 10px 35px; */
+clear: both;
+/*  margin: 10px 0 10px 35px; */
 }
 
 ul
@@ -128,101 +128,101 @@ ol
 
 li
 {
-   margin: 5px 0;
+margin: 5px 0;
 }
 
 p
 {
-   line-height: 18px;
-   margin: 0 0 10px 0;
+line-height: 18px;
+margin: 0 0 10px 0;
 }
 
 div.hr
 {
-   clear: both;
-   height: 1px;
+clear: both;
+height: 1px;
 }
 
 hr
 {
-   height: 1px

svn commit: r1040015 - /sling/trunk/bundles/extensions/explorer/

2010-11-28 Thread enorman
Author: enorman
Date: Mon Nov 29 05:34:12 2010
New Revision: 1040015

URL: http://svn.apache.org/viewvc?rev=1040015view=rev
Log:
ignore eclipse project files

Modified:
sling/trunk/bundles/extensions/explorer/   (props changed)

Propchange: sling/trunk/bundles/extensions/explorer/
--
--- svn:ignore (original)
+++ svn:ignore Mon Nov 29 05:34:12 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project




svn commit: r995316 - /sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java

2010-09-08 Thread enorman
Author: enorman
Date: Thu Sep  9 05:34:32 2010
New Revision: 995316

URL: http://svn.apache.org/viewvc?rev=995316view=rev
Log:
SLING-1733 - fix potential ClassCastException

Modified:

sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java

Modified: 
sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java?rev=995316r1=995315r2=995316view=diff
==
--- 
sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java
 (original)
+++ 
sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java
 Thu Sep  9 05:34:32 2010
@@ -114,7 +114,7 @@ public class BundleResourceProvider impl
 public IteratorResource listChildren(final Resource parent)
 throws SlingException {
 
-   if (((BundleResource)parent).getBundle() == this.bundle) { 
+   if (parent instanceof BundleResource  
((BundleResource)parent).getBundle() == this.bundle) { 
 // bundle resources can handle this request directly when the 
parent
//  resource is in the same bundle as this provider.
 return ((BundleResource) parent).listChildren(); 




svn commit: r993606 - in /sling/trunk: bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/ launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp

2010-09-07 Thread enorman
Author: enorman
Date: Wed Sep  8 05:10:48 2010
New Revision: 993606

URL: http://svn.apache.org/viewvc?rev=993606view=rev
Log:
SLING-1733 - BundleResourceProvider would fail to find resources when multiple 
bundles had the same Sling-Bundle-Resources path

Added:

sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/res/sling-test/sling/SLING-1733/

sling/trunk/launchpad/test-services/src/main/resources/SLING-INF/res/sling-test/sling/SLING-1733/sling-1733.txt
   (with props)
Modified:

sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/BundleContentTest.java
sling/trunk/launchpad/test-services/pom.xml

Modified: 
sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java?rev=993606r1=993605r2=993606view=diff
==
--- 
sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java
 (original)
+++ 
sling/trunk/bundles/extensions/bundleresource/src/main/java/org/apache/sling/bundleresource/impl/BundleResourceProvider.java
 Wed Sep  8 05:10:48 2010
@@ -114,10 +114,11 @@ public class BundleResourceProvider impl
 public IteratorResource listChildren(final Resource parent)
 throws SlingException {
 
-// bundle resources can handle this request directly
-if (parent instanceof BundleResource) {
-return ((BundleResource) parent).listChildren();
-}
+   if (((BundleResource)parent).getBundle() == this.bundle) { 
+// bundle resources can handle this request directly when the 
parent
+   //  resource is in the same bundle as this provider.
+return ((BundleResource) parent).listChildren(); 
+   }
 
 // ensure this provider may have children of the parent
 String parentPath = parent.getPath();

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/BundleContentTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/BundleContentTest.java?rev=993606r1=993605r2=993606view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/BundleContentTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/BundleContentTest.java
 Wed Sep  8 05:10:48 2010
@@ -18,6 +18,8 @@ package org.apache.sling.launchpad.webap
 
 import java.io.IOException;
 
+import org.apache.sling.commons.json.JSONException;
+import org.apache.sling.commons.json.JSONObject;
 import org.apache.sling.commons.testing.integration.HttpTestBase;
 
 public class BundleContentTest extends HttpTestBase {
@@ -39,4 +41,18 @@ public class BundleContentTest extends H
 final String content = getContent(HTTP_BASE_URL + 
/sling-test/sling.2.json, CONTENT_TYPE_JSON);
 assertTrue(Content contains  + expected +  ( + content + ), 
content.contains(expected));
 }
+
+/**
+ * Test fix for SLING-1733 - BundleResourceProvider fails to find 
resources when multiple bundles have the same Sling-Bundle-Resources path
+ */
+public void testBundleContentParentFromMultipleBundles() throws 
IOException, JSONException {
+final String content = getContent(HTTP_BASE_URL + /system.1.json, 
CONTENT_TYPE_JSON);
+JSONObject jsonObj = new JSONObject(content);
+
+//provided by the servlets.post bundle
+assertTrue(Expected sling.js in the /system folder, 
jsonObj.has(sling.js));
+
+//provided by the launchpad.test-services bundle
+assertTrue(Expected sling-1733.txt in the /system folder, 
jsonObj.has(sling-1733.txt));
+}
 }

Modified: sling/trunk/launchpad/test-services/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/test-services/pom.xml?rev=993606r1=993605r2=993606view=diff
==
--- sling/trunk/launchpad/test-services/pom.xml (original)
+++ sling/trunk/launchpad/test-services/pom.xml Wed Sep  8 05:10:48 2010
@@ -64,7 +64,10 @@
 SLING-INF/nodetypes/test.cnd
 /Sling-Nodetypes
 
Sling-Initial-ContentSLING-INF/content;path:=/sling-test/Sling-Initial-Content
-
Sling-Bundle-Resources/sling-test/sling

svn commit: r988381 - in /sling/trunk: bundles/jcr/jackrabbit-usermanager/ bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ launchpad/integration-tes

2010-08-23 Thread enorman
Author: enorman
Date: Tue Aug 24 04:36:06 2010
New Revision: 988381

URL: http://svn.apache.org/viewvc?rev=988381view=rev
Log:
SLING-1676 Let UserManager POST servlets return JSON

Modified:
sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/AbstractAuthenticatedTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateGroupTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/UpdateGroupTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/UpdateUserTest.java

Modified: sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml?rev=988381r1=988380r2=988381view=diff
==
--- sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml Tue Aug 24 04:36:06 
2010
@@ -68,7 +68,8 @@
 /Private-Package
 Embed-Dependency
 
org.apache.sling.servlets.post;inline=org/apache/sling/servlets/post/impl/helper/RequestProperty*
-
|org/apache/sling/servlets/post/impl/helper/DateParser*
+
|org/apache/sling/servlets/post/impl/helper/DateParser*
+
|org/apache/sling/servlets/post/impl/helper/JSONResponse*
 /Embed-Dependency
 /instructions
 /configuration
@@ -89,7 +90,7 @@
 dependency
 groupIdorg.apache.sling/groupId
 artifactIdorg.apache.sling.servlets.post/artifactId
-version2.0.4-incubator/version
+version2.0.5-SNAPSHOT/version
 /dependency
 dependency
 groupIdorg.apache.jackrabbit/groupId
@@ -109,5 +110,20 @@
 groupIdorg.osgi/groupId
 artifactIdorg.osgi.compendium/artifactId
 /dependency
+dependency
+groupIdorg.apache.sling/groupId
+artifactIdorg.apache.sling.jcr.resource/artifactId
+version2.0.6/version
+/dependency
+dependency
+groupIdorg.apache.sling/groupId
+artifactIdorg.apache.sling.commons.osgi/artifactId
+version2.0.6/version
+scopeprovided/scope
+/dependency
+   dependency
+groupIdorg.slf4j/groupId
+artifactIdslf4j-api/artifactId
+/dependency
 /dependencies
 /project
\ No newline at end of file

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java?rev=988381r1=988380r2=988381view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
 Tue Aug 24 04:36:06 2010
@@ -44,11 +44,12 @@ import org.apache.sling.api.servlets.Htm
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 import org.apache.sling.api.wrappers.SlingRequestPaths;
 import org.apache.sling.commons.osgi.OsgiUtil;
-import org.apache.sling.servlets.post.impl.helper.DateParser;
-import org.apache.sling.servlets.post.impl.helper.RequestProperty;
 import 
org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider;
 import org.apache.sling.servlets.post.Modification;
 import org.apache.sling.servlets.post.SlingPostConstants;
+import org.apache.sling.servlets.post.impl.helper.DateParser;
+import org.apache.sling.servlets.post.impl.helper.JSONResponse;
+import org.apache.sling.servlets.post.impl.helper.RequestProperty;
 import org.osgi.service.component.ComponentContext;
 import org.slf4j.Logger;
 import

svn commit: r988382 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/ bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ launchpad/integratio

2010-08-23 Thread enorman
Author: enorman
Date: Tue Aug 24 04:36:33 2010
New Revision: 988382

URL: http://svn.apache.org/viewvc?rev=988382view=rev
Log:
SLING-1677 Let AccessManager POST servlets return JSON

Modified:
sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/PrivilegesInfoTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/RemoveAcesTest.java

Modified: sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml?rev=988382r1=988381r2=988382view=diff
==
--- sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-accessmanager/pom.xml Tue Aug 24 
04:36:33 2010
@@ -61,6 +61,9 @@
instructions
Private-Package
/Private-Package
+Embed-Dependency
+
org.apache.sling.servlets.post;inline=org/apache/sling/servlets/post/impl/helper/JSONResponse*
+/Embed-Dependency
Export-Package
  
org.apache.sling.jcr.jackrabbit.accessmanager;version=${project.version},
  
org.apache.sling.jcr.jackrabbit.accessmanager.post;version=${project.version}
@@ -114,7 +117,7 @@
dependency
groupIdorg.apache.sling/groupId
artifactIdorg.apache.sling.servlets.post/artifactId
-   version2.0.4-incubator/version
+   version2.0.5-SNAPSHOT/version
 scopeprovided/scope
/dependency
dependency
@@ -137,5 +140,9 @@
groupIdorg.osgi/groupId
artifactIdorg.osgi.compendium/artifactId
/dependency
+   dependency
+groupIdorg.slf4j/groupId
+artifactIdslf4j-api/artifactId
+/dependency
/dependencies
 /project

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java?rev=988382r1=988381r2=988382view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/AbstractAccessPostServlet.java
 Tue Aug 24 04:36:33 2010
@@ -39,6 +39,7 @@ import org.apache.sling.api.servlets.Sli
 import org.apache.sling.api.wrappers.SlingRequestPaths;
 import org.apache.sling.servlets.post.Modification;
 import org.apache.sling.servlets.post.SlingPostConstants;
+import org.apache.sling.servlets.post.impl.helper.JSONResponse;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,7 +62,7 @@ public abstract class AbstractAccessPost
SlingHttpServletResponse httpResponse) throws 
ServletException,
IOException {
 // prepare the response
-HtmlResponse htmlResponse = new HtmlResponse();
+HtmlResponse htmlResponse = createHtmlResponse(request);
 htmlResponse.setReferer(request.getHeader(referer));
 
 // calculate the paths
@@ -133,6 +134,23 @@ public abstract class AbstractAccessPost
 htmlResponse.send(httpResponse, isSetStatus(request));
}
 
+/**
+ * Creates an instance of a HtmlResponse.
+ * @param req The request being serviced
+ * @return a {...@link 
org.apache.sling.servlets.post.impl.helper.JSONResponse} if any of these 
conditions are true:
+ * ul
+ *   lithe response content type is application/json
+ * /ul
+ * or a {...@link org.apache.sling.api.servlets.HtmlResponse} otherwise
+ */
+protected HtmlResponse createHtmlResponse(SlingHttpServletRequest req

svn commit: r988387 - /sling/trunk/samples/custom-login-form/

2010-08-23 Thread enorman
Author: enorman
Date: Tue Aug 24 04:59:38 2010
New Revision: 988387

URL: http://svn.apache.org/viewvc?rev=988387view=rev
Log:
svn:ignore eclipse project files

Modified:
sling/trunk/samples/custom-login-form/   (props changed)

Propchange: sling/trunk/samples/custom-login-form/
--
--- svn:ignore (added)
+++ svn:ignore Tue Aug 24 04:59:38 2010
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project




svn commit: r984646 - in /sling/trunk: bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/ launchpad/integration-tests/src/main/java/org/apache/sling/la

2010-08-11 Thread enorman
Author: enorman
Date: Thu Aug 12 05:42:49 2010
New Revision: 984646

URL: http://svn.apache.org/viewvc?rev=984646view=rev
Log:
SLING-1642 User self-registration should be disabled by default

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/AbstractAuthenticatedTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java?rev=984646r1=984645r2=984646view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
 Thu Aug 12 05:42:49 2010
@@ -100,7 +100,7 @@ public class CreateUserServlet extends A
  */
 private static final String PROP_SELF_REGISTRATION_ENABLED = 
self.registration.enabled;
 
-private static final Boolean DEFAULT_SELF_REGISTRATION_ENABLED = 
Boolean.TRUE;
+private static final Boolean DEFAULT_SELF_REGISTRATION_ENABLED = 
Boolean.FALSE;
 
 private Boolean selfRegistrationEnabled = 
DEFAULT_SELF_REGISTRATION_ENABLED;
 

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/AbstractAuthenticatedTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/AbstractAuthenticatedTest.java?rev=984646r1=984645r2=984646view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/AbstractAuthenticatedTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/AbstractAuthenticatedTest.java
 Thu Aug 12 05:42:49 2010
@@ -164,7 +164,8 @@ public abstract class AbstractAuthentica
 postParams.add(new NameValuePair(:name, testUserId));
 postParams.add(new NameValuePair(pwd, testPwd));
 postParams.add(new NameValuePair(pwdConfirm, testPwd));
-assertPostStatus(postUrl, HttpServletResponse.SC_OK, postParams, null);
+   Credentials creds = new UsernamePasswordCredentials(admin, 
admin);
+assertAuthenticatedPostStatus(creds, postUrl, 
HttpServletResponse.SC_OK, postParams, null);
 
 return testUserId;
 }

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java?rev=984646r1=984645r2=984646view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java
 Thu Aug 12 05:42:49 2010
@@ -162,7 +162,8 @@ public abstract class AbstractAccessMana
postParams.add(new NameValuePair(:name, testUserId));
postParams.add(new NameValuePair(pwd, testPwd));
postParams.add(new NameValuePair(pwdConfirm, testPwd));
-   assertPostStatus(postUrl, HttpServletResponse.SC_OK, 
postParams, null);
+   Credentials creds = new UsernamePasswordCredentials(admin, 
admin);
+   assertAuthenticatedPostStatus(creds, postUrl, 
HttpServletResponse.SC_OK, postParams, null);

return testUserId;
}

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/CreateUserTest.java?rev

svn commit: r983863 - /sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/NamespaceMappingTest.java

2010-08-10 Thread enorman
Author: enorman
Date: Tue Aug 10 05:59:30 2010
New Revision: 983863

URL: http://svn.apache.org/viewvc?rev=983863view=rev
Log:
SLING-1635 fix integration test failure caused by old sudo cookie in the 
httpClient state

Modified:

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/NamespaceMappingTest.java

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/NamespaceMappingTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/NamespaceMappingTest.java?rev=983863r1=983862r2=983863view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/NamespaceMappingTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/NamespaceMappingTest.java
 Tue Aug 10 05:59:30 2010
@@ -79,6 +79,8 @@ public class NamespaceMappingTest extend
 //remove the test user if it exists.
 String postUrl = HTTP_BASE_URL + /system/userManager/user/ + 
testUserId + .delete.html;
 ListNameValuePair postParams = new ArrayListNameValuePair();
+   //SLING-1635 the sudo cookie messes up the user delete, so 
clear it out before deleting the test user
+postParams.add(new NameValuePair(sudo, -));
 assertAuthenticatedAdminPostStatus(postUrl, 
HttpServletResponse.SC_OK, postParams, null);
 }
 super.tearDown();




svn commit: r984276 - /sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

2010-08-10 Thread enorman
Author: enorman
Date: Wed Aug 11 00:56:53 2010
New Revision: 984276

URL: http://svn.apache.org/viewvc?rev=984276view=rev
Log:
SLING-1639 Disabling user self-registration is not working

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java?rev=984276r1=984275r2=984276view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java
 Wed Aug 11 00:56:53 2010
@@ -148,7 +148,9 @@ public class CreateUserServlet extends A
 super.activate(componentContext);
 Dictionary?, ? props = componentContext.getProperties();
 Object propValue = props.get(PROP_SELF_REGISTRATION_ENABLED);
-if (propValue instanceof String) {
+if (propValue instanceof Boolean) {
+   selfRegistrationEnabled = (Boolean)propValue;
+} else if (propValue instanceof String) {
 selfRegistrationEnabled = Boolean.parseBoolean((String) propValue);
 } else {
 selfRegistrationEnabled = DEFAULT_SELF_REGISTRATION_ENABLED;




svn commit: r983425 - in /sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest: JsonQueryServletTest.java JsonRenderingTest.java

2010-08-08 Thread enorman
Author: enorman
Date: Sun Aug  8 15:30:14 2010
New Revision: 983425

URL: http://svn.apache.org/viewvc?rev=983425view=rev
Log:
SLING-1632 fix broken integration test

Modified:

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonRenderingTest.java

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java?rev=983425r1=983424r2=983425view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java
 Sun Aug  8 15:30:14 2010
@@ -173,36 +173,22 @@ public class JsonQueryServletTest extend
 //tidy json text should have whitespace that makes it not be 
equivalent to the untidy version
 assertNotSame(json, tidyJson);
 
-//compare expected with actual
-String expectedTidyJson = 
-   [{\n +
-   \name\: \node0\,\n +
-   \jcr:score\: 1000,\n +
-   \jcr:primaryType\: \nt:unstructured\,\n +
-   \jcr:path\: \ + testPath + /folderA/node0\\n +
- },{\n +
-   \name\: \node1\,\n +
-   \jcr:score\: 1000,\n +
-   \jcr:primaryType\: \nt:unstructured\,\n +
-   \jcr:path\: \ + testPath + /folderA/node1\\n +
- },{\n +
-   \name\: \node2\,\n +
-   \jcr:score\: 1000,\n +
-   \jcr:primaryType\: \nt:unstructured\,\n +
-   \jcr:path\: \ + testPath + /folderA/node2\\n +
- },{\n +
-   \name\: \node3\,\n +
-   \jcr:score\: 1000,\n +
-   \jcr:primaryType\: \nt:unstructured\,\n +
-   \jcr:path\: \ + testPath + /folderA/node3\\n +
- },{\n +
-   \name\: \node4\,\n +
-   \jcr:score\: 1000,\n +
-   \jcr:primaryType\: \nt:unstructured\,\n +
-   \jcr:path\: \ + testPath + /folderA/node4\\n +
- }\n +
-   ];
-   assertEquals(expectedTidyJson.length(), tidyJson.length());
-assertEquals(expectedTidyJson, tidyJson);
+   int noTidyCount = countOccurences(json, '\n');
+   int tidyCount = countOccurences(tidyJson, '\n');
+   int delta = tidyCount - noTidyCount;
+
+   // tidy output contains at least 25 additional EOL chars
+   int min = 25;
+   assertTrue(The .tidy selector should add at least 25 EOL chars to json 
output (delta= + delta + ), delta  min);
 }
+
+protected static int countOccurences(String str, char toCount) {
+   int result = 0;
+   for(char c : str.toCharArray()) {
+   if(c == toCount) {
+   result++;
+   }
+   }
+   return result;
+}
 }

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonRenderingTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonRenderingTest.java?rev=983425r1=983424r2=983425view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonRenderingTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonRenderingTest.java
 Sun Aug  8 15:30:14 2010
@@ -234,7 +234,7 @@ public class JsonRenderingTest extends H
// Output contains 3 properties and a subnode with one, so at least 5 
EOL chars
int min = 5;

-   assertTrue(The .tidy selector should add at least 2 EOL chars to json 
output (delta= + delta + ), delta  min);
+   assertTrue(The .tidy selector should add at least 5 EOL chars to json 
output (delta= + delta + ), delta  min);
 }
 
 public void testRootNoRecursion() throws IOException {




svn commit: r983427 - in /sling/trunk/bundles/jcr/jackrabbit-usermanager: ./ src/main/java/org/apache/sling/jackrabbit/usermanager/impl/helper/ src/main/java/org/apache/sling/jackrabbit/usermanager/im

2010-08-08 Thread enorman
Author: enorman
Date: Sun Aug  8 15:31:36 2010
New Revision: 983427

URL: http://svn.apache.org/viewvc?rev=983427view=rev
Log:
SLING-1578 reduce code duplication between post servlet and usermanager

Removed:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/helper/
Modified:
sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateUserServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateGroupServlet.java

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/UpdateUserServlet.java

Modified: sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml?rev=983427r1=983426r2=983427view=diff
==
--- sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml (original)
+++ sling/trunk/bundles/jcr/jackrabbit-usermanager/pom.xml Sun Aug  8 15:31:36 
2010
@@ -66,6 +66,10 @@
 Private-Package
 org.apache.sling.jackrabbit.usermanager.impl.*
 /Private-Package
+Embed-Dependency
+
org.apache.sling.servlets.post;inline=org/apache/sling/servlets/post/impl/helper/RequestProperty*
+
|org/apache/sling/servlets/post/impl/helper/DateParser*
+/Embed-Dependency
 /instructions
 /configuration
 /plugin

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java?rev=983427r1=983426r2=983427view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/AbstractAuthorizablePostServlet.java
 Sun Aug  8 15:31:36 2010
@@ -44,8 +44,8 @@ import org.apache.sling.api.servlets.Htm
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
 import org.apache.sling.api.wrappers.SlingRequestPaths;
 import org.apache.sling.commons.osgi.OsgiUtil;
-import org.apache.sling.jackrabbit.usermanager.impl.helper.DateParser;
-import org.apache.sling.jackrabbit.usermanager.impl.helper.RequestProperty;
+import org.apache.sling.servlets.post.impl.helper.DateParser;
+import org.apache.sling.servlets.post.impl.helper.RequestProperty;
 import 
org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider;
 import org.apache.sling.servlets.post.Modification;
 import org.apache.sling.servlets.post.SlingPostConstants;

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java?rev=983427r1=983426r2=983427view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/impl/post/CreateGroupServlet.java
 Sun Aug  8 15:31:36 2010
@@ -28,7 +28,7 @@ import org.apache.jackrabbit.api.securit
 import org.apache.jackrabbit.api.security.user.UserManager;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.servlets.HtmlResponse;
-import org.apache.sling.jackrabbit.usermanager.impl.helper.RequestProperty;
+import org.apache.sling.servlets.post.impl.helper.RequestProperty;
 import 
org.apache.sling.jackrabbit.usermanager.impl.resource.AuthorizableResourceProvider;
 import org.apache.sling.jcr.base.util.AccessControlUtil;
 import org.apache.sling.servlets.post.Modification;

Modified: 
sling/trunk/bundles/jcr/jackrabbit

svn commit: r983310 - in /sling/trunk: bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/

2010-08-07 Thread enorman
Author: enorman
Date: Sat Aug  7 21:15:37 2010
New Revision: 983310

URL: http://svn.apache.org/viewvc?rev=983310view=rev
Log:
SLING-1632 The JsonQueryServlet should support the tidy selector to provided 
pretty printed results

Modified:

sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java

Modified: 
sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java?rev=983310r1=983309r2=983310view=diff
==
--- 
sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java
 (original)
+++ 
sling/trunk/bundles/servlets/get/src/main/java/org/apache/sling/servlets/get/impl/JsonQueryServlet.java
 Sat Aug  7 21:15:37 2010
@@ -82,11 +82,23 @@ public class JsonQueryServlet extends Sl
 /** rep:exerpt */
 private static final String REP_EXCERPT = rep:excerpt();
 
+public static final String TIDY = tidy;
+
 private final JsonResourceWriter itemWriter;
 
 public JsonQueryServlet() {
 itemWriter = new JsonResourceWriter(null);
 }
+
+/** True if our request wants the tidy pretty-printed format */
+protected boolean isTidy(SlingHttpServletRequest req) {
+for(String selector : req.getRequestPathInfo().getSelectors()) {
+if(TIDY.equals(selector)) {
+return true;
+}
+}
+return false;
+}
 
 @Override
 protected void doGet(SlingHttpServletRequest req,
@@ -151,6 +163,8 @@ public class JsonQueryServlet extends Sl
 resp.setCharacterEncoding(UTF-8);
 
 final JSONWriter w = new JSONWriter(resp.getWriter());
+w.setTidy(isTidy(req));
+
 w.array();
 
 long count = -1;

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java?rev=983310r1=983309r2=983310view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/JsonQueryServletTest.java
 Sat Aug  7 21:15:37 2010
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.httpclient.NameValuePair;
+import org.apache.sling.commons.json.JSONException;
 import org.apache.sling.commons.testing.integration.HttpTestBase;
 
 
@@ -66,9 +67,13 @@ public class JsonQueryServletTest extend
 testClient.delete(WEBDAV_BASE_URL + testPath);
 }
 }
-
 private void assertCount(int expectedCount, String statement, String 
queryType, int offset, int rows) 
 throws IOException {
+   assertCount(expectedCount, statement, queryType, offset, rows, false);
+}
+private void assertCount(int expectedCount, String statement, String 
queryType, int offset, int rows,
+   boolean tidy) 
+throws IOException {
 final ListNameValuePair params = new ArrayListNameValuePair();
 params.add(new NameValuePair(statement, statement));
 if(queryType != null) {
@@ -80,7 +85,7 @@ public class JsonQueryServletTest extend
 if(rows  0) {
 params.add(new NameValuePair(rows, String.valueOf(rows)));
 }
-final String json = getContent(testFolderUrl + .query.json, 
CONTENT_TYPE_JSON, params);
+final String json = getContent(testFolderUrl + .query + (tidy ? 
.tidy : ) + .json, CONTENT_TYPE_JSON, params);
 assertJavascript(
 expectedCount + .0, 
 json, 
@@ -148,4 +153,56 @@ public class JsonQueryServletTest extend
 
 
 }
+
+/**
+ * Test for SLING-1632: tidy rendering of query results
+ */
+public void testTidyResultFormat() throws IOException, JSONException {
+   boolean tidy = true;
+   //query should function the same when the output is tidy'ed.
+String statement = / + testPath + /folderA/*;
+   String queryType = xpath;
+   assertCount(5, statement, queryType, 0, 0, tidy);
+   
+final ListNameValuePair params = new ArrayListNameValuePair();
+params.add(new NameValuePair(statement, statement));
+params.add(new NameValuePair(queryType

svn commit: r983135 - in /sling/trunk: bundles/jcr/contentloader/ bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ bundles/jcr/contentloader/src/main/java/org/apache/sling/j

2010-08-06 Thread enorman
Author: enorman
Date: Fri Aug  6 22:23:05 2010
New Revision: 983135

URL: http://svn.apache.org/viewvc?rev=983135view=rev
Log:
SLING-1627 import operation support for overwrite of properties

Added:

sling/trunk/bundles/jcr/contentloader/src/test/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreatorTest.java
   (with props)

sling/trunk/launchpad/integration-tests/src/main/resources/integration-test/servlets/post/testimport_replaceProps.json
Modified:
sling/trunk/bundles/jcr/contentloader/pom.xml

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/SlingPostConstants.java

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java

Modified: sling/trunk/bundles/jcr/contentloader/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/pom.xml?rev=983135r1=983134r2=983135view=diff
==
--- sling/trunk/bundles/jcr/contentloader/pom.xml (original)
+++ sling/trunk/bundles/jcr/contentloader/pom.xml Fri Aug  6 22:23:05 2010
@@ -161,6 +161,12 @@
 groupIdorg.jmock/groupId
 artifactIdjmock-junit4/artifactId
 /dependency
+dependency
+groupIdorg.slf4j/groupId
+artifactIdslf4j-nop/artifactId
+version1.5.2/version
+scopetest/scope
+/dependency
 
 !-- for security content loader (users/groups/acls) --
 dependency

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java?rev=983135r1=983134r2=983135view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/ImportOptions.java
 Fri Aug  6 22:23:05 2010
@@ -24,10 +24,34 @@ package org.apache.sling.jcr.contentload
  */
 public abstract class ImportOptions {
 
+   /**
+* Specifies whether imported nodes should overwrite existing nodes.
+* NOTE: this means the existing node will be deleted and a new node 
+* will be created in the same location.
+* @return true to overwrite nodes, false otherwise
+*/
public abstract boolean isOverwrite();
 
+   /**
+* Specifies whether imported properties should overwrite existing 
properties.
+* @return true to overwrite node properties, false otherwise
+*/
+   public abstract boolean isPropertyOverwrite();
+
+   /**
+* Specifies whether versionable nodes is automatically checked in at 
the
+* end of the import operation.
+* @return true to checkin the versionable nodes, false otherwise
+*/
public abstract boolean isCheckin();
 
+   /**
+* Check if the import provider for the given file extension should
+* be ignored.
+* 
+* @param extension the extension to check
+* @return true to ignore the provider, false otherwise
+*/
public abstract boolean isIgnoredImportProvider(String extension);
 
 }
\ No newline at end of file

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java?rev=983135r1=983134r2=983135view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
 Fri Aug  6 22:23:05 2010
@@ -307,9 +307,10 @@ public class DefaultContentCreator imple
 public void createProperty(String name, int propertyType, String value)
 throws RepositoryException {
 final Node node = this.parentNodeStack.peek();
-// check if the property already exists, don't overwrite

svn commit: r983138 - /sling/trunk/bundles/jcr/davex/

2010-08-06 Thread enorman
Author: enorman
Date: Fri Aug  6 22:46:26 2010
New Revision: 983138

URL: http://svn.apache.org/viewvc?rev=983138view=rev
Log:
ignore eclipse project files

Modified:
sling/trunk/bundles/jcr/davex/   (props changed)

Propchange: sling/trunk/bundles/jcr/davex/
--
--- svn:ignore (original)
+++ svn:ignore Fri Aug  6 22:46:26 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project




svn commit: r982453 - /sling/trunk/bundles/api/src/main/java/org/apache/sling/api/servlets/HtmlResponse.java

2010-08-04 Thread enorman
Author: enorman
Date: Thu Aug  5 02:21:23 2010
New Revision: 982453

URL: http://svn.apache.org/viewvc?rev=982453view=rev
Log:
SLING-1628 Default status code for a post that results in an error should be 
500 instead of 200

Modified:

sling/trunk/bundles/api/src/main/java/org/apache/sling/api/servlets/HtmlResponse.java

Modified: 
sling/trunk/bundles/api/src/main/java/org/apache/sling/api/servlets/HtmlResponse.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/api/src/main/java/org/apache/sling/api/servlets/HtmlResponse.java?rev=982453r1=982452r2=982453view=diff
==
--- 
sling/trunk/bundles/api/src/main/java/org/apache/sling/api/servlets/HtmlResponse.java
 (original)
+++ 
sling/trunk/bundles/api/src/main/java/org/apache/sling/api/servlets/HtmlResponse.java
 Thu Aug  5 02:21:23 2010
@@ -214,11 +214,21 @@ public class HtmlResponse {
 /**
  * Returns the status code of this instance. If the status code has never
  * been set by calling the {...@link #setStatus(int, String)} method, the
- * response is assumed to be successful and 200 is returned.
+ * status code is determined by checking if there was an error.  If there
+ * was an error, the response is assumed to be unsuccessful and 500 is 
returned.
+ * If there is no error, the response is assumed to be successful and 200 
is returned.
  */
 public int getStatusCode() {
 Integer status = getProperty(PN_STATUS_CODE, Integer.class);
-return (status == null) ? HttpServletResponse.SC_OK : status;
+if (status == null) {
+   if (getError() != null) {
+   //if there was an error
+   status = HttpServletResponse.SC_INTERNAL_SERVER_ERROR;
+   } else {
+   status = HttpServletResponse.SC_OK;
+   }
+}
+return status;
 }
 
 public String getStatusMessage() {




svn commit: r958411 [2/2] - in /sling/trunk: bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/ bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloa

2010-06-27 Thread enorman
Added: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java?rev=958411view=auto
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java
 (added)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java
 Sun Jun 27 19:36:49 2010
@@ -0,0 +1,544 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.sling.launchpad.webapp.integrationtest.servlets.post;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Random;
+import java.util.Set;
+
+import org.apache.sling.commons.json.JSONArray;
+import org.apache.sling.commons.json.JSONException;
+import org.apache.sling.commons.json.JSONObject;
+import org.apache.sling.commons.testing.integration.HttpTestBase;
+import org.apache.sling.commons.testing.integration.NameValuePairList;
+import org.apache.sling.servlets.post.SlingPostConstants;
+
+/** Test content import via the MicrojaxPostServlet */
+public class PostServletImportTest extends HttpTestBase {
+
+public static final String TEST_BASE_PATH = /sling-import-tests;
+static Random random = new Random();
+
+File testFile;
+
+/* (non-Javadoc)
+* @see 
org.apache.sling.commons.testing.integration.HttpTestBase#tearDown()
+*/
+   @Override
+   protected void tearDown() throws Exception {
+   if (testFile != null) {
+   //cleanup temp file
+   testFile.delete();
+   }
+   super.tearDown();
+   }
+
+   static String getStreamAsString(InputStream is) throws IOException {
+final StringBuilder content = new StringBuilder();
+final byte [] buffer = new byte[16384];
+int n = 0;
+while( (n = is.read(buffer, 0, buffer.length))  0) {
+content.append(new String(buffer, 0, n));
+}
+return content.toString();
+}
+
+private File getTestFile(InputStream inputStream) throws IOException {
+   File tempFile = File.createTempFile(file-to-upload, null, new 
File(target));
+   FileOutputStream outputStream = new FileOutputStream(tempFile);
+   byte[] bbuf = new byte[16384]; //16k
+   int len;
+   while ((len = inputStream.read(bbuf)) != -1) {
+   outputStream.write(bbuf, 0, len);
+   }
+   outputStream.flush();
+   outputStream.close();
+   return tempFile;
+}
+
+protected void assertExpectedJSON(JSONObject expectedJson, JSONObject 
actualJson) throws JSONException {
+   IteratorString keys = expectedJson.keys();
+   while (keys.hasNext()) {
+   String key = keys.next();
+   
+   Object object = expectedJson.get(key);
+   Object object2 = actualJson.get(key);
+   if (object instanceof JSONObject) {
+   assertTrue(object instanceof JSONObject);
+   assertExpectedJSON((JSONObject)object, 
(JSONObject)object2);
+   } else if (object instanceof JSONArray) {
+   //compare the array
+   assertTrue(object2 instanceof JSONArray);
+   JSONArray actualArray = (JSONArray)object2;
+   SetObject actualValuesSet = new 
HashSetObject();
+   for (int i=0; i  actualArray.length(); i++) {
+   actualValuesSet.add(actualArray.get(i));
+   }
+   
+  

svn commit: r958417 - /sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java

2010-06-27 Thread enorman
Author: enorman
Date: Sun Jun 27 20:27:55 2010
New Revision: 958417

URL: http://svn.apache.org/viewvc?rev=958417view=rev
Log:
SLING-1172 fixed response code for missing required request parameters

Modified:

sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java

Modified: 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java?rev=958417r1=958416r2=958417view=diff
==
--- 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java
 (original)
+++ 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/operations/ImportOperation.java
 Sun Jun 27 20:27:55 2010
@@ -95,7 +95,7 @@ public class ImportOperation extends Abs
 
 String contentType = 
request.getParameter(SlingPostConstants.RP_CONTENT_TYPE);
 if (contentType == null) {
-response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+response.setStatus(HttpServletResponse.SC_PRECONDITION_FAILED,
 Required :contentType parameter is missing);
 return;
 }
@@ -126,7 +126,7 @@ public class ImportOperation extends Abs
 }
 
 if (contentStream == null) {
-
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
+response.setStatus(HttpServletResponse.SC_PRECONDITION_FAILED,
 Missing content for import);
 return;
 } else {




svn commit: r958427 - /sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java

2010-06-27 Thread enorman
Author: enorman
Date: Sun Jun 27 21:48:03 2010
New Revision: 958427

URL: http://svn.apache.org/viewvc?rev=958427view=rev
Log:
SLING-1172 fixed unit test

Modified:

sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java

Modified: 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java?rev=958427r1=958426r2=958427view=diff
==
--- 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java
 (original)
+++ 
sling/trunk/launchpad/integration-tests/src/main/java/org/apache/sling/launchpad/webapp/integrationtest/servlets/post/PostServletImportTest.java
 Sun Jun 27 21:48:03 2010
@@ -117,17 +117,15 @@ public class PostServletImportTest exten
 urlsToDelete.add(testNode);
 
 //add node that will get replaced
-String testNodeName = testNode_ + String.valueOf(random.nextInt());
 props.put(propTest, propTestValue);
-String importedNodeUrl = testClient.createNode(HTTP_BASE_URL + 
testPath + / + testNodeName, props);
+String importedNodeUrl = testClient.createNode(HTTP_BASE_URL + 
testPath + /nodeName, props);
 
 //import with the replace option to replace the existing node.
 props.clear();
 props.put(SlingPostConstants.RP_OPERATION,
SlingPostConstants.OPERATION_IMPORT);
 
-props.put(SlingPostConstants.RP_NODE_NAME, testNodeName);
-testFile = 
getTestFile(getClass().getResourceAsStream(/integration-test/servlets/post/testimport.json));
+testFile = 
getTestFile(getClass().getResourceAsStream(/integration-test/servlets/post/testimport2.json));
 props.put(SlingPostConstants.RP_CONTENT_TYPE, json);
 props.put(SlingPostConstants.RP_REDIRECT_TO, testPath + /*);
 props.put(SlingPostConstants.RP_REPLACE, true);




svn commit: r952077 - /sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java

2010-06-06 Thread enorman
Author: enorman
Date: Mon Jun  7 03:35:32 2010
New Revision: 952077

URL: http://svn.apache.org/viewvc?rev=952077view=rev
Log:
SLING-1526 Extra property names of security:principals lost when loaded via 
contentloader.   Applied patch from Mike Moulton.

Modified:

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java

Modified: 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java?rev=952077r1=952076r2=952077view=diff
==
--- 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
 (original)
+++ 
sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
 Mon Jun  7 03:35:32 2010
@@ -739,7 +739,7 @@ public class DefaultContentCreator imple
SetEntryString, Object entrySet = 
extraProperties.entrySet();
for (EntryString, Object entry : entrySet) {
Value value = createValue(valueFactory, 
entry.getValue());
-   authorizable.setProperty(name, value);
+   authorizable.setProperty(entry.getKey(), value);
}
 }
}
@@ -780,7 +780,7 @@ public class DefaultContentCreator imple
SetEntryString, Object entrySet = 
extraProperties.entrySet();
for (EntryString, Object entry : entrySet) {
Value value = createValue(valueFactory, 
entry.getValue());
-   authorizable.setProperty(name, value);
+   authorizable.setProperty(entry.getKey(), value);
}
 }
}




svn commit: r937907 - in /sling/trunk: parent/pom.xml samples/inplace-integration-test/pom.xml samples/simple-launchpad/pom.xml

2010-04-25 Thread enorman
Author: enorman
Date: Mon Apr 26 01:00:16 2010
New Revision: 937907

URL: http://svn.apache.org/viewvc?rev=937907view=rev
Log:
Update maven-launchpad-plugin references to version 2.0.7-SNAPSHOT

Modified:
sling/trunk/parent/pom.xml
sling/trunk/samples/inplace-integration-test/pom.xml
sling/trunk/samples/simple-launchpad/pom.xml

Modified: sling/trunk/parent/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/parent/pom.xml?rev=937907r1=937906r2=937907view=diff
==
--- sling/trunk/parent/pom.xml (original)
+++ sling/trunk/parent/pom.xml Mon Apr 26 01:00:16 2010
@@ -196,7 +196,7 @@ MAVEN_OPTS=-Xmx256M -XX:MaxPermSize=128
 plugin
 groupIdorg.apache.sling/groupId
 artifactIdmaven-launchpad-plugin/artifactId
-version2.0.5-SNAPSHOT/version
+version2.0.7-SNAPSHOT/version
 /plugin
 plugin
 groupIdorg.apache.sling/groupId

Modified: sling/trunk/samples/inplace-integration-test/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/inplace-integration-test/pom.xml?rev=937907r1=937906r2=937907view=diff
==
--- sling/trunk/samples/inplace-integration-test/pom.xml (original)
+++ sling/trunk/samples/inplace-integration-test/pom.xml Mon Apr 26 01:00:16 
2010
@@ -84,7 +84,7 @@
 plugin
 groupIdorg.apache.sling/groupId
 artifactIdmaven-launchpad-plugin/artifactId
-version2.0.5-SNAPSHOT/version
+version2.0.7-SNAPSHOT/version
 executions
 execution
 idprepare-test-webapp/id

Modified: sling/trunk/samples/simple-launchpad/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/simple-launchpad/pom.xml?rev=937907r1=937906r2=937907view=diff
==
--- sling/trunk/samples/simple-launchpad/pom.xml (original)
+++ sling/trunk/samples/simple-launchpad/pom.xml Mon Apr 26 01:00:16 2010
@@ -36,7 +36,7 @@
 plugin
 groupIdorg.apache.sling/groupId
 artifactIdmaven-launchpad-plugin/artifactId
-version2.0.5-SNAPSHOT/version
+version2.0.7-SNAPSHOT/version
 executions
 execution
 idprepare-package/id




svn commit: r930612 - /sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java

2010-04-03 Thread enorman
Author: enorman
Date: Sun Apr  4 02:53:19 2010
New Revision: 930612

URL: http://svn.apache.org/viewvc?rev=930612view=rev
Log:
fixing broken launchpad.testing integration tests.  The GET request from 
mkdir(url) that was checking if the folder already exists was failing because 
the node did not allow displaying an index for the folder.

Modified:

sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java

Modified: 
sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java?rev=930612r1=930611r2=930612view=diff
==
--- 
sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java
 (original)
+++ 
sling/trunk/bundles/commons/testing/src/main/java/org/apache/sling/commons/testing/integration/SlingIntegrationTestClient.java
 Sun Apr  4 02:53:19 2010
@@ -62,7 +62,7 @@ public class SlingIntegrationTestClient 
 /** Create the given directory via WebDAV, if needed, under given URL */
 public void mkdir(String url) throws IOException {
 int status = 0;
-status = httpClient.executeMethod(new GetMethod(url));
+status = httpClient.executeMethod(new GetMethod(url + .txt));
 if(status != 200) {
 status = httpClient.executeMethod(new HttpAnyMethod(MKCOL,url));
 if(status!=201) {




svn commit: r925398 - in /sling/trunk: bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/ launchpad/testing/src/test/resources/integration-test/accessmanager/ la

2010-03-19 Thread enorman
Author: enorman
Date: Fri Mar 19 19:56:10 2010
New Revision: 925398

URL: http://svn.apache.org/viewvc?rev=925398view=rev
Log:
added missing license headers

Modified:

sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/AuthorizablePrivilegesInfo.java

sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/privileges-info.json.esp

sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp

Modified: 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/AuthorizablePrivilegesInfo.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/AuthorizablePrivilegesInfo.java?rev=925398r1=925397r2=925398view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/AuthorizablePrivilegesInfo.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-usermanager/src/main/java/org/apache/sling/jackrabbit/usermanager/AuthorizablePrivilegesInfo.java
 Fri Mar 19 19:56:10 2010
@@ -1,3 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the License); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.apache.sling.jackrabbit.usermanager;
 
 import javax.jcr.Session;

Modified: 
sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/privileges-info.json.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/privileges-info.json.esp?rev=925398r1=925397r2=925398view=diff
==
--- 
sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/privileges-info.json.esp
 (original)
+++ 
sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/privileges-info.json.esp
 Fri Mar 19 19:56:10 2010
@@ -1,7 +1,26 @@
-{
 % 
-   var privilegesInfo = new 
Packages.org.apache.sling.jcr.jackrabbit.accessmanager.PrivilegesInfo();
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * License); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ var privilegesInfo = new 
Packages.org.apache.sling.jcr.jackrabbit.accessmanager.PrivilegesInfo();
 %
+{
canAddChildren : %=privilegesInfo.canAddChildren(currentNode)%,
canDeleteChildren : 
%=privilegesInfo.canDeleteChildren(currentNode)%,
canDelete : %=privilegesInfo.canDelete(currentNode)%,

Modified: 
sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp?rev=925398r1=925397r2=925398view=diff
==
--- 
sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp
 (original)
+++ 
sling/trunk/launchpad/testing/src/test/resources/integration-test/usermanager/privileges-info.json.esp
 Fri Mar 19 19:56:10 2010
@@ -1,8 +1,27 @@
-{
 % 
-   var privilegesInfo = 
sling.getService(Packages.org.apache.sling.jackrabbit.usermanager.AuthorizablePrivilegesInfo);
-   var authorizable = 
resource.adaptTo(Packages.org.apache.jackrabbit.api.security.user.Authorizable);
+/*
+ * Licensed to the Apache Software

svn commit: r924617 - /sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java

2010-03-17 Thread enorman
Author: enorman
Date: Thu Mar 18 02:57:31 2010
New Revision: 924617

URL: http://svn.apache.org/viewvc?rev=924617view=rev
Log:
SLING-1237 regression test to ensure a group with members can be removed

Modified:

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java

Modified: 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java?rev=924617r1=924616r2=924617view=diff
==
--- 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java
 (original)
+++ 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/userManager/RemoveAuthorizablesTest.java
 Thu Mar 18 02:57:31 2010
@@ -87,4 +87,29 @@ public class RemoveAuthorizablesTest ext
getUrl = HTTP_BASE_URL + /system/userManager/group/ + groupId 
+ .json;
assertAuthenticatedHttpStatus(creds, getUrl, 
HttpServletResponse.SC_NOT_FOUND, null); //make sure the profile request 
returns some data
}
+   
+   /**
+* Test the problem reported as SLING-1237
+*/
+   public void testRemoveGroupWithMembers() throws IOException {
+   String groupId = createTestGroup();
+   String userId = createTestUser();
+   
+Credentials creds = new UsernamePasswordCredentials(admin, admin);
+String addMemberPostUrl = HTTP_BASE_URL + /system/userManager/group/ 
+ groupId + .update.html;
+   ListNameValuePair addMemberPostParams = new 
ArrayListNameValuePair();
+   addMemberPostParams.add(new NameValuePair(:member, userId));
+   assertAuthenticatedPostStatus(creds, addMemberPostUrl, 
HttpServletResponse.SC_OK, addMemberPostParams, null);
+
+   String getUrl = HTTP_BASE_URL + /system/userManager/group/ + 
groupId + .json;
+   assertAuthenticatedHttpStatus(creds, getUrl, 
HttpServletResponse.SC_OK, null); //make sure the profile request returns some 
data
+
+   String postUrl = HTTP_BASE_URL + /system/userManager/group/ + 
groupId + .delete.html;
+   ListNameValuePair postParams = new ArrayListNameValuePair();
+   assertAuthenticatedPostStatus(creds, postUrl, 
HttpServletResponse.SC_OK, postParams, null);
+   
+   getUrl = HTTP_BASE_URL + /system/userManager/group/ + groupId 
+ .json;
+   assertAuthenticatedHttpStatus(creds, getUrl, 
HttpServletResponse.SC_NOT_FOUND, null); //make sure the profile request 
returns some data
+   }
+   
 }




svn commit: r924618 - /sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

2010-03-17 Thread enorman
Author: enorman
Date: Thu Mar 18 02:59:13 2010
New Revision: 924618

URL: http://svn.apache.org/viewvc?rev=924618view=rev
Log:
added a unit test to verify that merge of a denied privilege with an ACE that 
already contains a grant privilege works correctly

Modified:

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

Modified: 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java?rev=924618r1=924617r2=924618view=diff
==
--- 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
 (original)
+++ 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
 Thu Mar 18 02:59:13 2010
@@ -352,7 +352,7 @@ public class ModifyAceTest extends Abstr
 * Test for SLING-997, preserve privileges that were not posted with 
the modifyAce 
 * request.
 */
-   public void testMergeAceForUserCombineAggregatePrincipal() throws 
IOException, JSONException {
+   public void testMergeAceForUserCombineAggregatePrivilege() throws 
IOException, JSONException {
testUserId = createTestUser();
testFolderUrl = createTestFolder();

@@ -440,5 +440,90 @@ public class ModifyAceTest extends Abstr
}
assertTrue(deniedPrivilegeNames2.contains(jcr:write));
}
+
+   
+   /**
+* Test ACE update with a deny privilege for an ACE that already 
contains
+* a grant privilege 
+*/
+   public void testMergeAceForUserDenyPrivilegeAfterGrantPrivilege() 
throws IOException, JSONException {
+   testUserId = createTestUser();
+   testFolderUrl = createTestFolder();
+   
+String postUrl = testFolderUrl + .modifyAce.html;
+
+//1. create an initial set of privileges
+   ListNameValuePair postParams = new ArrayListNameValuePair();
+   postParams.add(new NameValuePair(principalId, testUserId));
+   postParams.add(new NameValuePair(privil...@jcr:write, 
granted));
+   
+   Credentials creds = new UsernamePasswordCredentials(admin, 
admin);
+   assertAuthenticatedPostStatus(creds, postUrl, 
HttpServletResponse.SC_OK, postParams, null);
+   
+   //fetch the JSON for the acl to verify the settings.
+   String getUrl = testFolderUrl + .acl.json;
+
+   String json = getAuthenticatedContent(creds, getUrl, 
CONTENT_TYPE_JSON, null, HttpServletResponse.SC_OK);
+   assertNotNull(json);
+   JSONObject jsonObj = new JSONObject(json);
+   String aceString = jsonObj.getString(testUserId);
+   assertNotNull(aceString);
+   
+   JSONObject aceObject = new JSONObject(aceString); 
+   assertNotNull(aceObject);
+   
+   JSONArray grantedArray = aceObject.getJSONArray(granted);
+   assertNotNull(grantedArray);
+   assertEquals(1, grantedArray.length());
+   SetString grantedPrivilegeNames = new HashSetString();
+   for (int i=0; i  grantedArray.length(); i++) {
+   grantedPrivilegeNames.add(grantedArray.getString(i));
+   }
+   assertTrue(grantedPrivilegeNames.contains(jcr:write));
+
+   assertFalse(aceObject.has(denied));
+   
+   
+//2. post a new set of privileges to merge with the existing privileges
+   ListNameValuePair postParams2 = new 
ArrayListNameValuePair();
+   postParams2.add(new NameValuePair(principalId, testUserId));
+   //jcr:write is not posted, so it should remain in the granted 
ACE
+   
+   //deny the jcr:nodeTypeManagement privilege, which should merge 
with the
+   //existing ACE.
+   postParams2.add(new 
NameValuePair(privil...@jcr:nodeTypeManagement, denied)); //add a new 
privilege
+   
+   assertAuthenticatedPostStatus(creds, postUrl, 
HttpServletResponse.SC_OK, postParams2, null);
+   
+   
+   //fetch the JSON for the acl to verify the settings.
+   String json2 = getAuthenticatedContent(creds, getUrl, 
CONTENT_TYPE_JSON, null, HttpServletResponse.SC_OK);
+   
+   assertNotNull(json2);
+   JSONObject jsonObj2 = new JSONObject(json2);
+   String aceString2 = jsonObj2

svn commit: r919665 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/ launchpad/testing/src/test/java/org/apache/sling/launchpad/weba

2010-03-05 Thread enorman
Author: enorman
Date: Fri Mar  5 23:21:58 2010
New Revision: 919665

URL: http://svn.apache.org/viewvc?rev=919665view=rev
Log:
SLING-1090 fixed return value of PrivilegesInfo.canDelete(..) for children of 
the root node + added some unit tests

Added:

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/PrivilegesInfoTest.java
   (with props)

sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/

sling/trunk/launchpad/testing/src/test/resources/integration-test/accessmanager/privileges-info.json.esp
Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java?rev=919665r1=919664r2=919665view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/PrivilegesInfo.java
 Fri Mar  5 23:21:58 2010
@@ -444,7 +444,15 @@
try {
AccessControlManager accessControlManager = 
AccessControlUtil.getAccessControlManager(session);

-   String parentPath = absPath.substring(0, 
absPath.lastIndexOf('/'));
+   String parentPath;
+   int lastSlash = absPath.lastIndexOf('/');
+   if (lastSlash == 0) {
+   //the parent is the root folder.
+   parentPath = /;
+   } else {
+   //strip the last segment
+   parentPath = absPath.substring(0, lastSlash);
+   }
boolean canDelete = 
accessControlManager.hasPrivileges(absPath, new Privilege[] {

accessControlManager.privilegeFromName(Privilege.JCR_REMOVE_NODE)
})  
canDeleteChildren(session, parentPath);

Modified: 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java?rev=919665r1=919664r2=919665view=diff
==
--- 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java
 (original)
+++ 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/AbstractAccessManagerTest.java
 Fri Mar  5 23:21:58 2010
@@ -21,6 +21,7 @@
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -151,12 +152,12 @@
 }
 
 
-protected static int counter = 1;
+protected static Random random = new Random(System.currentTimeMillis());
 
protected String createTestUser() throws IOException {
 String postUrl = HTTP_BASE_URL + 
/system/userManager/user.create.html;
 
-   String testUserId = testUser + (counter++);
+   String testUserId = testUser + random.nextInt();
ListNameValuePair postParams = new ArrayListNameValuePair();
postParams.add(new NameValuePair(:name, testUserId));
postParams.add(new NameValuePair(pwd, testPwd));
@@ -169,7 +170,7 @@
protected String createTestGroup() throws IOException {
 String postUrl = HTTP_BASE_URL + 
/system/userManager/group.create.html;
 
-   String testGroupId = testGroup + (counter++);
+   String testGroupId = testGroup + random.nextInt();
ListNameValuePair postParams = new ArrayListNameValuePair();
postParams.add(new NameValuePair(:name, testGroupId));

@@ -181,7 +182,7 @@
}

protected String createTestFolder() throws IOException {
-String postUrl = HTTP_BASE_URL + TEST_BASE_PATH + / + testFolder + 
(counter++);
+String postUrl = HTTP_BASE_URL + TEST_BASE_PATH

svn commit: r917006 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ launchpad/content/src/main/resources/content/apps/sling/se

2010-02-27 Thread enorman
Author: enorman
Date: Sat Feb 27 18:32:52 2010
New Revision: 917006

URL: http://svn.apache.org/viewvc?rev=917006view=rev
Log:
SLING-1411 Clarify how to un-set a privilege and fix the sample ACE edit script 
from the launchpad.content bundle

Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java

sling/trunk/launchpad/content/src/main/resources/content/apps/sling/servlet/default/ace.html.esp

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java?rev=917006r1=917005r2=917006view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
 Sat Feb 27 18:32:52 2010
@@ -132,7 +132,7 @@

grantedPrivilegeNames.add(privilegeName);
} else if 
(denied.equals(parameterValue)) {

deniedPrivilegeNames.add(privilegeName);
-   } else {
+   } else if 
(none.equals(parameterValue)){

removedPrivilegeNames.add(privilegeName);
}
}

Modified: 
sling/trunk/launchpad/content/src/main/resources/content/apps/sling/servlet/default/ace.html.esp
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/content/src/main/resources/content/apps/sling/servlet/default/ace.html.esp?rev=917006r1=917005r2=917006view=diff
==
--- 
sling/trunk/launchpad/content/src/main/resources/content/apps/sling/servlet/default/ace.html.esp
 (original)
+++ 
sling/trunk/launchpad/content/src/main/resources/content/apps/sling/servlet/default/ace.html.esp
 Sat Feb 27 18:32:52 2010
@@ -87,7 +87,7 @@
 %
 tr
td align=left width=%=isUser ? '70%' : 
'55%'%%=p.getName()%/td
-   td align=center width=15%input type=radio 
name=privilege@%=p.getName()% value= %=granted.contains(p) || 
denied.contains(p) ?  : checked% //td
+   td align=center width=15%input type=radio 
name=privilege@%=p.getName()% value=none %=granted.contains(p) || 
denied.contains(p) ?  : checked% //td
td align=center width=15%input type=radio 
name=privilege@%=p.getName()% value=granted %=granted.contains(p) ? 
checked : % //td
% if (isUser) { %
td align=center width=15%input type=radio 
name=privilege@%=p.getName()% value=denied %=denied.contains(p) ? 
checked : % //td

Modified: 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java?rev=917006r1=917005r2=917006view=diff
==
--- 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
 (original)
+++ 
sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java
 Sat Feb 27 18:32:52 2010
@@ -78,6 +78,7 @@
postParams.add(new NameValuePair(principalId, testUserId));
postParams.add(new NameValuePair(privil...@jcr:read, 
granted));
postParams.add(new NameValuePair(privil...@jcr:write, 
denied));
+   postParams.add(new 
NameValuePair(privil...@jcr:modifyAccessControl, bogus)); //invalid value 
should be ignored.

Credentials creds = new UsernamePasswordCredentials(admin, 
admin);
assertAuthenticatedPostStatus(creds, postUrl, 
HttpServletResponse.SC_OK, postParams, null);
@@ -97,10 +98,12 @@

JSONArray grantedArray = aceObject.getJSONArray(granted);
assertNotNull(grantedArray);
+   assertEquals(1, grantedArray.length());
assertEquals(jcr:read, grantedArray.getString(0

svn commit: r916893 - in /sling/trunk: bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/ bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/ bundles/jcr/j

2010-02-26 Thread enorman
Author: enorman
Date: Sat Feb 27 02:02:09 2010
New Revision: 916893

URL: http://svn.apache.org/viewvc?rev=916893view=rev
Log:
SLING-1411 Add replaceAccessControlEntry method to AccessControlUtil
Thanks to Ray Davis for the contribution.

Modified:

sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java

sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

Modified: 
sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java?rev=916893r1=916892r2=916893view=diff
==
--- 
sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java
 (original)
+++ 
sling/trunk/bundles/jcr/base/src/main/java/org/apache/sling/jcr/base/util/AccessControlUtil.java
 Sat Feb 27 02:02:09 2010
@@ -18,10 +18,22 @@
  */
 package org.apache.sling.jcr.base.util;
 
+import org.apache.jackrabbit.api.JackrabbitSession;
+import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.api.security.user.Authorizable;
+import org.apache.jackrabbit.api.security.user.UserManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.jcr.AccessDeniedException;
 import javax.jcr.RepositoryException;
@@ -31,12 +43,10 @@
 import javax.jcr.security.AccessControlException;
 import javax.jcr.security.AccessControlList;
 import javax.jcr.security.AccessControlManager;
+import javax.jcr.security.AccessControlPolicy;
+import javax.jcr.security.AccessControlPolicyIterator;
 import javax.jcr.security.Privilege;
 
-import org.apache.jackrabbit.api.JackrabbitSession;
-import org.apache.jackrabbit.api.security.principal.PrincipalManager;
-import org.apache.jackrabbit.api.security.user.UserManager;
-
 /**
  * A simple utility class providing utilities with respect to
  * access control over repositories.
@@ -60,7 +70,7 @@
 // the name of the JackrabbitAccessControlEntry method
 private static final String METHOD_JACKRABBIT_ACE_IS_ALLOW = isAllow;
 
-
+private static final Logger log = 
LoggerFactory.getLogger(AccessControlUtil.class);
 
 // -- SessionImpl methods 
-
 
@@ -201,6 +211,141 @@
Class[] types = new Class[] {Principal.class, Privilege[].class, 
boolean.class, Map.class};
return safeInvokeRepoMethod(acl, 
METHOD_JACKRABBIT_ACL_ADD_ENTRY, Boolean.class, args, types);
 }
+
+/**
+ * Replaces existing access control entries in the ACL for the specified
+ * codeprincipal/code and coderesourcePath/code. Any existing 
granted
+ * or denied privileges which do not conflict with the specified privileges
+ * are maintained. Where conflicts exist, existing privileges are dropped.
+ * The end result will be at most two ACEs for the principal: one for 
grants
+ * and one for denies. Aggregate privileges are disaggregated before 
checking
+ * for conflicts.
+ * @param session
+ * @param resourcePath
+ * @param principal
+ * @param grantedPrivilegeNames
+ * @param deniedPrivilegeNames
+ * @param removedPrivilegeNames privileges which, if they exist, should be
+ * removed for this principal and resource
+ * @throws RepositoryException
+ */
+public static void replaceAccessControlEntry(Session session, String 
resourcePath, Principal principal, 
+   String[] grantedPrivilegeNames, String[] 
deniedPrivilegeNames, String[] removedPrivilegeNames)
+   throws RepositoryException {
+   AccessControlManager accessControlManager = 
getAccessControlManager(session);
+   SetString specifiedPrivilegeNames = new HashSetString();
+   SetString newGrantedPrivilegeNames = 
disaggregateToPrivilegeNames(accessControlManager, grantedPrivilegeNames, 
specifiedPrivilegeNames);
+   SetString newDeniedPrivilegeNames = 
disaggregateToPrivilegeNames(accessControlManager, deniedPrivilegeNames, 
specifiedPrivilegeNames);
+   disaggregateToPrivilegeNames(accessControlManager, 
removedPrivilegeNames, specifiedPrivilegeNames);
+
+   // Get or create the ACL for the node

svn commit: r915670 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ launchpad/testing/src/test/java/org/apache/sling/launchpad

2010-02-23 Thread enorman
Author: enorman
Date: Wed Feb 24 04:44:43 2010
New Revision: 915670

URL: http://svn.apache.org/viewvc?rev=915670view=rev
Log:
SLING-997 handle merges involving aggregate privileges properly

Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java?rev=915670r1=915669r2=915670view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
 Wed Feb 24 04:44:43 2010
@@ -100,7 +100,6 @@
/* (non-Javadoc)
 * @see 
org.apache.sling.jackrabbit.accessmanager.post.AbstractAccessPostServlet#handleOperation(org.apache.sling.api.SlingHttpServletRequest,
 org.apache.sling.api.servlets.HtmlResponse, java.util.List)
 */
-   @SuppressWarnings(unchecked)
@Override
protected void handleOperation(SlingHttpServletRequest request,
HtmlResponse htmlResponse, ListModification changes)
@@ -133,12 +132,70 @@
}
}
 
+   try {
+   AccessControlManager accessControlManager = 
AccessControlUtil.getAccessControlManager(session);
 
-   ListString grantedPrivilegeNames = new ArrayListString();
-   ListString deniedPrivilegeNames = new ArrayListString();
-   //SLING-997: keep track of the privilege names that were 
posted, so the others can be preserved
-   SetString postedPrivilegeNames = new HashSetString();
-   Enumeration parameterNames = request.getParameterNames();
+   //SLING-997: keep track of the privilege names that 
were posted, so the others can be preserved
+   PrivilegesState privilegesInfo = new 
PrivilegesState(log.isDebugEnabled());
+   
+   //calculate which privileges were POSTed.
+   collectPostedPrivilegeNames(request, 
+   accessControlManager,
+   privilegesInfo);
+
+   //find the existing ACL
+   AccessControlList updatedAcl = 
getAccessControlList(accessControlManager, resourcePath, true);
+
+   //keep track of the existing ACEs for the target 
principal
+   ListAccessControlEntry oldAces = 
processExistingAccessControlEntries(resourcePath, 
+   authorizable, 
+   accessControlManager, 
+   updatedAcl, 
+   privilegesInfo); 
+   
+   //remove the old ACEs.  Re-created below.
+   if (!oldAces.isEmpty()) {
+   for (AccessControlEntry ace : oldAces) {
+   
updatedAcl.removeAccessControlEntry(ace);
+   }
+   }
+   
+   //re-aggregate the granted/denied privileges into the 
best matched aggregate privilege
+   reaggregatePrivileges(resourcePath,
+   accessControlManager,
+   privilegesInfo);
+   
+   //add fresh ACEs with the granted privileges
+   buildFreshAccessControlEntries(authorizable, 
+   accessControlManager, 
+   updatedAcl, 
+   privilegesInfo);
+   
+   //store the updated ACL
+   accessControlManager.setPolicy(resourcePath, 
updatedAcl);
+   if (session.hasPendingChanges()) {
+   session.save();
+   }
+
+   if (log.isDebugEnabled()) {
+   log.debug(Updated ACE for principalId {0} for 
resource {1) from {2} to {3}, new Object [] {
+   authorizable.getID(), 
resourcePath

svn commit: r915677 - in /sling/trunk/bundles/extensions/formauth/src/main: java/org/apache/sling/formauth/AuthenticationFormServlet.java resources/org/apache/sling/formauth/login.html

2010-02-23 Thread enorman
Author: enorman
Date: Wed Feb 24 05:22:04 2010
New Revision: 915677

URL: http://svn.apache.org/viewvc?rev=915677view=rev
Log:
SLING-1116 make sure the login form action is an absolute path

Modified:

sling/trunk/bundles/extensions/formauth/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java

sling/trunk/bundles/extensions/formauth/src/main/resources/org/apache/sling/formauth/login.html

Modified: 
sling/trunk/bundles/extensions/formauth/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/formauth/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java?rev=915677r1=915676r2=915677view=diff
==
--- 
sling/trunk/bundles/extensions/formauth/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java
 (original)
+++ 
sling/trunk/bundles/extensions/formauth/src/main/java/org/apache/sling/formauth/AuthenticationFormServlet.java
 Wed Feb 24 05:22:04 2010
@@ -112,6 +112,7 @@
 
 form = form.replace(${resource}, getResource(request));
 form = form.replace(${j_reason}, getReason(request));
+form = form.replace(${requestContextPath}, request.getContextPath());
 
 return form;
 }

Modified: 
sling/trunk/bundles/extensions/formauth/src/main/resources/org/apache/sling/formauth/login.html
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/formauth/src/main/resources/org/apache/sling/formauth/login.html?rev=915677r1=915676r2=915677view=diff
==
--- 
sling/trunk/bundles/extensions/formauth/src/main/resources/org/apache/sling/formauth/login.html
 (original)
+++ 
sling/trunk/bundles/extensions/formauth/src/main/resources/org/apache/sling/formauth/login.html
 Wed Feb 24 05:22:04 2010
@@ -58,7 +58,7 @@
 
 div id=main!-- Login Form --
 h3Login:/h3
-form id=loginform method=POST action=j_security_check
+form id=loginform method=POST 
action=${requestContextPath}/j_security_check
 enctype=multipart/form-data accept-charset=UTF-8
 
input type=hidden name=_charset_ value=UTF-8 /




svn commit: r912387 - in /sling/trunk: bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ launchpad/testing/src/test/java/org/apache/sling/launchpad

2010-02-21 Thread enorman
Author: enorman
Date: Sun Feb 21 18:37:45 2010
New Revision: 912387

URL: http://svn.apache.org/viewvc?rev=912387view=rev
Log:
SLING-997 ModifyAceServlet replaces rather than merges privileges

Modified:

sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java

sling/trunk/launchpad/testing/src/test/java/org/apache/sling/launchpad/webapp/integrationtest/accessManager/ModifyAceTest.java

Modified: 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java?rev=912387r1=912386r2=912387view=diff
==
--- 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
 (original)
+++ 
sling/trunk/bundles/jcr/jackrabbit-accessmanager/src/main/java/org/apache/sling/jcr/jackrabbit/accessmanager/post/ModifyAceServlet.java
 Sun Feb 21 18:37:45 2010
@@ -19,7 +19,9 @@
 import java.security.Principal;
 import java.util.ArrayList;
 import java.util.Enumeration;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 import javax.jcr.Item;
 import javax.jcr.RepositoryException;
@@ -134,19 +136,23 @@
 
ListString grantedPrivilegeNames = new ArrayListString();
ListString deniedPrivilegeNames = new ArrayListString();
+   //SLING-997: keep track of the privilege names that were 
posted, so the others can be preserved
+   SetString postedPrivilegeNames = new HashSetString();
Enumeration parameterNames = request.getParameterNames();
while (parameterNames.hasMoreElements()) {
Object nextElement = parameterNames.nextElement();
if (nextElement instanceof String) {
String paramName = (String)nextElement;
if (paramName.startsWith(privilege@)) {
+   String privilegeName = 
paramName.substring(10);
+   //keep track of which privileges should 
be changed
+   
postedPrivilegeNames.add(privilegeName); 
+   
String parameterValue = 
request.getParameter(paramName);
if (parameterValue != null  
parameterValue.length()  0) {
if 
(granted.equals(parameterValue)) {
-   String privilegeName = 
paramName.substring(10);

grantedPrivilegeNames.add(privilegeName);
} else if 
(denied.equals(parameterValue)) {
-   String privilegeName = 
paramName.substring(10);

deniedPrivilegeNames.add(privilegeName);
}
}
@@ -165,6 +171,9 @@
newPrivileges = new StringBuilder();
}
 
+   ListPrivilege preserveGrantedPrivileges = new 
ArrayListPrivilege();
+   ListPrivilege preserveDeniedPrivileges = new 
ArrayListPrivilege();
+   
//keep track of the existing Aces for the target 
principal
AccessControlEntry[] accessControlEntries = 
updatedAcl.getAccessControlEntries();
ListAccessControlEntry oldAces = new 
ArrayListAccessControlEntry();
@@ -175,20 +184,25 @@
}
oldAces.add(ace);
 
-   if (log.isDebugEnabled()) {
-   //collect the information for 
debug logging
-   boolean isAllow = 
AccessControlUtil.isAllow(ace);
-   Privilege[] privileges = 
ace.getPrivileges();
-   for (Privilege privilege : 
privileges) {
-   if 
(oldPrivileges.length()  0) {
-   
oldPrivileges.append(, ); //separate entries by commas
-   }
+   boolean isAllow = 
AccessControlUtil.isAllow(ace

svn commit: r912388 - in /sling/trunk: bundles/extensions/groovy/ bundles/jcr/webconsole/ contrib/commons/fsclassloader/ contrib/commons/html/ contrib/jcr/prefs/ contrib/scripting/scala/script/

2010-02-21 Thread enorman
Author: enorman
Date: Sun Feb 21 18:45:05 2010
New Revision: 912388

URL: http://svn.apache.org/viewvc?rev=912388view=rev
Log:
added some eclipse project files to svn:ignore

Modified:
sling/trunk/bundles/extensions/groovy/   (props changed)
sling/trunk/bundles/jcr/webconsole/   (props changed)
sling/trunk/contrib/commons/fsclassloader/   (props changed)
sling/trunk/contrib/commons/html/   (props changed)
sling/trunk/contrib/jcr/prefs/   (props changed)
sling/trunk/contrib/scripting/scala/script/   (props changed)

Propchange: sling/trunk/bundles/extensions/groovy/
--
--- svn:ignore (original)
+++ svn:ignore Sun Feb 21 18:45:05 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project

Propchange: sling/trunk/bundles/jcr/webconsole/
--
--- svn:ignore (original)
+++ svn:ignore Sun Feb 21 18:45:05 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project

Propchange: sling/trunk/contrib/commons/fsclassloader/
--
--- svn:ignore (original)
+++ svn:ignore Sun Feb 21 18:45:05 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project

Propchange: sling/trunk/contrib/commons/html/
--
--- svn:ignore (original)
+++ svn:ignore Sun Feb 21 18:45:05 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project

Propchange: sling/trunk/contrib/jcr/prefs/
--
--- svn:ignore (original)
+++ svn:ignore Sun Feb 21 18:45:05 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project

Propchange: sling/trunk/contrib/scripting/scala/script/
--
--- svn:ignore (original)
+++ svn:ignore Sun Feb 21 18:45:05 2010
@@ -1 +1,4 @@
 target
+.settings
+.classpath
+.project