Author: buildbot Date: Thu Mar 30 10:34:17 2017 New Revision: 1009371 Log: Staging update by buildbot for sling
Modified: websites/staging/sling/trunk/content/ (props changed) websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html Propchange: websites/staging/sling/trunk/content/ ------------------------------------------------------------------------------ --- cms:source-revision (original) +++ cms:source-revision Thu Mar 30 10:34:17 2017 @@ -1 +1 @@ -1789477 +1789492 Modified: websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html ============================================================================== --- websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html (original) +++ websites/staging/sling/trunk/content/documentation/bundles/managing-users-and-groups-jackrabbit-usermanager.html Thu Mar 30 10:34:17 2017 @@ -114,7 +114,7 @@ h2:hover > .headerlink, h3:hover > .head visibility: hidden; } h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style> -<p>The <code>jackrabbit-usermanager</code> bundle delivers a REST interface to create, update and delete users and groups in the JCR. After installing the <code>jackrabbit-usermanager</code> bundle all REST services are exposed under the path /system/userManager.</p> +<p>The <code>jackrabbit-usermanager</code> bundle delivers a REST interface to create, update and delete users and groups in the JCR. After installing the <code>jackrabbit-usermanager</code> bundle all REST services are exposed under the path /system/userManager. Its interface is similar to the <a href="/documentation/bundles/manipulating-content-the-slingpostservlet-servlets-post.html">SlingPostServlet</a>.</p> <div class="toc"> <ul> <li><a href="#list-users">List users</a></li> @@ -134,7 +134,8 @@ h2:hover > .headerlink, h3:hover > .head </ul> </div> <h2 id="list-users">List users<a class="headerlink" href="#list-users" title="Permanent link">¶</a></h2> -<p>To list existing users a GET request to the <code>/system/userManager/user</code> resource can be posted. Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/users</code> resource type, a result may be delivered.</p> +<p>To list existing users a GET request to the <code>/system/userManager/user</code> resource can be issued. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> + and/or the availability of a Servlet or Script handling the <code>sling/users</code> resource type, a result may be delivered/</p> <p>Example with curl and the default JSON rendering:</p> <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span> <span class="p">{</span> @@ -152,7 +153,7 @@ h2:hover > .headerlink, h3:hover > .head <h2 id="get-user">Get user<a class="headerlink" href="#get-user" title="Permanent link">¶</a></h2> <p><em>since version 2.0.8</em> -The properties of a single user can be retrieved by sending a GET request to the user's resource at <code>/system/userManager/user/username</code> where <em>username</em> would be replaced with the name of the user. Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/user</code> resource type, a result may be delivered.</p> +The properties of a single user can be retrieved by sending a GET request to the user's resource at <code>/system/userManager/user/<username></code> where <code><username></code> would be replaced with the name of the user. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/user</code> resource type, a result may be delivered.</p> <p>Example with curl and the default JSON rendering:</p> <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">admin</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span> <span class="p">{</span> @@ -162,11 +163,59 @@ The properties of a single user can be r </pre></div> -<p>If a non-existing user is requested a 404/NOT FOUND status is sent back.</p> +<p>If a non-existing user is requested a <code>404/NOT FOUND</code> status is sent back.</p> <h2 id="create-user">Create user<a class="headerlink" href="#create-user" title="Permanent link">¶</a></h2> <p>To create a new user POST a request to <code>/system/userManager/user.create.<html or json></code>. The following parameters are available:</p> -<p>Responses: -| 200 | Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>:name</code></td> +<td>yes</td> +<td>The name of the new user</td> +</tr> +<tr> +<td><code>pwd</code></td> +<td>yes</td> +<td>The password of the new user</td> +</tr> +<tr> +<td><code>pwdConfirm</code></td> +<td>yes</td> +<td>The password of the new user (must be equal to the value of <code>pwd</code>)</td> +</tr> +<tr> +<td><code><anyproperty></code></td> +<td>no</td> +<td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.</td> +</tr> +<tr> +<td>500</td> +<td>Failure, including user already exists. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example with curl:</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">F</span><span class="p">:</span><span class="n">name</span><span class="p">=</span><span class="n">myuser</span> <span class="o">-</span><span class="n">Fpwd</span><span class="p">=</span><span class="n">password</span> <span class="o">-</span><span class="n">FpwdConfirm</span><span class="p">=</span><span class="n">password</span> <span class="o">-</span><span class="n">Fanyproperty1</span><span class="p">=</span><span class="n">value1</span> <span class="o">\</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="p">.</span><span class="n">create</span><span class="p">.</span><span class="n">html</span> @@ -175,8 +224,60 @@ The properties of a single user can be r <h2 id="update-user">Update user<a class="headerlink" href="#update-user" title="Permanent link">¶</a></h2> <p>To update an existing user POST a request to <code>/system/userManager/user/username.update.<html or json></code>. You can NOT update the username or the password (see Change Password below) only the additional properties are updateable through this URL. The following parameters are available:</p> -<p>Responses: -| 200 | Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>:disabled</code></td> +<td>no</td> +<td>(since version 2.1.1) If <code>true</code> disables the user to block further login attempts. If <code>false</code> enables a disabled user.</td> +</tr> +<tr> +<td><code>:disabledReason</code></td> +<td>no</td> +<td>Specifies the reason why a user has been disabled.</td> +</tr> +<tr> +<td><code><anyproperty></code></td> +<td>no</td> +<td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td> +</tr> +<tr> +<td><code><anyproperty>@Delete</code></td> +<td>no</td> +<td>Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, a redirect is sent to the users resource locator with HTML (or JSON) describing status.</td> +</tr> +<tr> +<td>404</td> +<td>User was not found.</td> +</tr> +<tr> +<td>500</td> +<td>Any other failure. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">Fanyproperty1</span><span class="p">@</span><span class="n">Delete</span> <span class="o">-</span><span class="n">Fproperty2</span><span class="p">=</span><span class="n">value2</span> <span class="o">\</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">myuser</span><span class="p">.</span><span class="n">update</span><span class="p">.</span><span class="n">html</span> @@ -185,8 +286,55 @@ The properties of a single user can be r <h2 id="change-password">Change password<a class="headerlink" href="#change-password" title="Permanent link">¶</a></h2> <p>To change a password of an existing user POST a request to <code>/system/userManager/user/username.changePassword.<html or json></code>. NOTE: since version 2.1.1, the oldPwd is optional if the current user is a user administrator. The following parameters are available:</p> -<p>Responses: -| 200 | Success, sent with no body. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>oldPwd</code></td> +<td>yes</td> +<td>Old password.</td> +</tr> +<tr> +<td><code>newPwd</code></td> +<td>yes</td> +<td>New password.</td> +</tr> +<tr> +<td><code>newPwdConfirm</code></td> +<td>yes</td> +<td>New password (must be equal to the value of <code>newPwd</code>).</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, no body.</td> +</tr> +<tr> +<td>404</td> +<td>User was not found.</td> +</tr> +<tr> +<td>500</td> +<td>Any other failure. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">FoldPwd</span><span class="p">=</span><span class="n">oldpassword</span> <span class="o">-</span><span class="n">FnewPwd</span><span class="p">=</span><span class="n">newpassword</span> <span class="o">-</span><span class="n">FnewPwdConfirm</span><span class="p">=</span><span class="n">newpassword</span> <span class="o">\</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">myuser</span><span class="p">.</span><span class="n">changePassword</span><span class="p">.</span><span class="n">html</span> @@ -195,15 +343,52 @@ The properties of a single user can be r <h2 id="delete-user">Delete user<a class="headerlink" href="#delete-user" title="Permanent link">¶</a></h2> <p>To delete an existing user POST a request to <code>/system/userManager/user/username.delete.<html or json></code>. The following parameters are available:</p> -<p>Responses: -| 200 | Success, sent with no body. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>:applyTo</code></td> +<td>no</td> +<td>An array of relative resource references to users to be deleted. If this parameter is present, the username from the URL is ignored and all listed users are removed.</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, no body.</td> +</tr> +<tr> +<td>404</td> +<td>User(s) was/were not found.</td> +</tr> +<tr> +<td>500</td> +<td>Any other failure. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">Fgo</span><span class="p">=</span>1 <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">myuser</span><span class="p">.</span><span class="n">delete</span><span class="p">.</span><span class="n">html</span> </pre></div> <h2 id="list-groups">List groups<a class="headerlink" href="#list-groups" title="Permanent link">¶</a></h2> -<p>To list existing groups a GET request to the <code>/system/userManager/group</code> resource can be sent. Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/groups</code> resource type, a result may be delivered.</p> +<p>To list existing groups a GET request to the <code>/system/userManager/group</code> resource can be sent. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/groups</code> resource type, a result may be delivered.</p> <p>Example with curl and the default JSON rendering:</p> <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span> <span class="p">{</span> @@ -230,7 +415,7 @@ The properties of a single user can be r <h2 id="get-group">Get group<a class="headerlink" href="#get-group" title="Permanent link">¶</a></h2> -<p>The properties of a single group can be retrieved by sending a GET request to the group's resource at <code>/system/userManager/group/groupname</code> where <em>groupname</em> would be replaced with the name of the group. Depending on the configuration of the Default GET Servlet and/or the availability of a Servlet or Script handling the <code>sling/group</code> resource type, a result may be delivered.</p> +<p>The properties of a single group can be retrieved by sending a GET request to the group's resource at <code>/system/userManager/group/groupname</code> where <em>groupname</em> would be replaced with the name of the group. Depending on the configuration of the <a href="/documentation/bundles/rendering-content-default-get-servlets.html">Default GET Servlet</a> and/or the availability of a Servlet or Script handling the <code>sling/group</code> resource type, a result may be delivered.</p> <p>Example with curl and the default JSON rendering:</p> <div class="codehilite"><pre>$ <span class="n">curl</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="o">/</span><span class="n">administrators</span><span class="p">.</span><span class="n">tidy</span><span class="p">.</span>1<span class="p">.</span><span class="n">json</span> <span class="p">{</span> @@ -245,8 +430,46 @@ The properties of a single user can be r <p>If a non-existing group is requested a 404/NOT FOUND status is sent back.</p> <h2 id="create-group">Create group<a class="headerlink" href="#create-group" title="Permanent link">¶</a></h2> <p>To create a new group POST a request to <code>/system/userManager/group.create.<html or json></code>. The following parameters are available:</p> -<p>Responses: -| 200 | Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>:name</code></td> +<td>yes</td> +<td>The name of the new group</td> +</tr> +<tr> +<td><code><anyproperty></code></td> +<td>no</td> +<td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status</td> +</tr> +<tr> +<td>500</td> +<td>Failure including group already exists. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example with curl:</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">F</span><span class="p">:</span><span class="n">name</span><span class="p">=</span><span class="n">mygroup</span> <span class="o">-</span><span class="n">Fanyproperty1</span><span class="p">=</span><span class="n">value1</span> <span class="o">\</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="p">.</span><span class="n">create</span><span class="p">.</span><span class="n">html</span> @@ -255,8 +478,60 @@ The properties of a single user can be r <h2 id="update-group">Update group<a class="headerlink" href="#update-group" title="Permanent link">¶</a></h2> <p>To update an existing group POST a request to <code>/system/userManager/group/groupname.update.<html or json></code>. You can NOT update the name of the group only the additional properties are updateable. The following parameters are available:</p> -<p>Responses: -| 200 | Success, a redirect is sent to the groups resource locator with HTML (or JSON) describing status. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>:member</code></td> +<td>no</td> +<td>user(s) (name or URI) to add to the group as a member. Can also be an array of users.</td> +</tr> +<tr> +<td><code>:member@Delete</code></td> +<td>no</td> +<td>user(s) (name or URI) to remove from the group. Can also be an array of users.</td> +</tr> +<tr> +<td><code><anyproperty></code></td> +<td>no</td> +<td>Additional parameters will be stored as node properties in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td> +</tr> +<tr> +<td><code><anyproperty>@Delete</code></td> +<td>no</td> +<td>Properties with @Delete at the end of the name will be deleted in the JCR. Nested properties are supported since 2.2.6 (<a href="https://issues.apache.org/jira/browse/SLING-6747">SLING-6747</a>).</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, a redirect is sent to the group resource locator with HTML (or JSON) describing status.</td> +</tr> +<tr> +<td>404</td> +<td>Group was not found.</td> +</tr> +<tr> +<td>500</td> +<td>Any other failure. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">Fanyproperty1</span><span class="p">@</span><span class="n">Delete</span> <span class="o">-</span><span class="n">Fproperty2</span><span class="p">=</span><span class="n">value2</span> <span class="o">-</span><span class="n">F</span> "<span class="p">:</span><span class="n">member</span><span class="p">=</span><span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">user</span><span class="o">/</span><span class="n">myuser</span>" <span class="o">\</span> <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="o">/</span><span class="n">mygroup</span><span class="p">.</span><span class="n">update</span><span class="p">.</span><span class="n">html</span> @@ -265,8 +540,45 @@ The properties of a single user can be r <h2 id="delete-group">Delete group<a class="headerlink" href="#delete-group" title="Permanent link">¶</a></h2> <p>To delete an existing group POST a request to <code>/system/userManager/group/groupname.delete.<html or json></code>. The following parameters are available:</p> -<p>Responses: -| 200 | Success, sent with no body. |</p> +<table class="table"> +<thead> +<tr> +<th>Parameter Name</th> +<th>Required</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>:applyTo</code></td> +<td>no</td> +<td>An array of relative resource references to groups to be deleted. If this parameter is present, the name of the group from the URL is ignored and all listed groups are removed.</td> +</tr> +</tbody> +</table> +<p>Responses:</p> +<table class="table"> +<thead> +<tr> +<th>Status Code</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td>200</td> +<td>Success, sent with no body.</td> +</tr> +<tr> +<td>404</td> +<td>Group(s) was/were not found.</td> +</tr> +<tr> +<td>500</td> +<td>Any other failure. HTML (or JSON) explains failure.</td> +</tr> +</tbody> +</table> <p>Example</p> <div class="codehilite"><pre><span class="n">curl</span> <span class="o">-</span><span class="n">Fgo</span><span class="p">=</span>1 <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">localhost</span><span class="p">:</span>8080<span class="o">/</span><span class="n">system</span><span class="o">/</span><span class="n">userManager</span><span class="o">/</span><span class="n">group</span><span class="o">/</span><span class="n">mygroup</span><span class="p">.</span><span class="n">delete</span><span class="p">.</span><span class="n">html</span> </pre></div> @@ -278,14 +590,37 @@ The properties of a single user can be r <p><em>Since Version 2.0.6</em></p> <p>When developing scripts that will perform user or group updates, you may want to know what actions the current user is provisioned to do. This information can be used to conditionally render parts of your page differently based on the user rights.</p> <p>The jackrabbit.usermanager bundle provides a service (AuthorizablePrivilegesInfo) you can utilize to do help with this permission checking.</p> -<p>The AuthorizablePrivilegesInfo provides methods for checking the following actions -| Method | Description | -|--|--| -| canAddUser(jcrSession) | Checks if the current user may add new users | -| canAddGroup(jcrSession) | Checks if the current user may add new groups | -| canUpdateProperties(jcrSession, principalId) | Checks if the current user may update the properties of the specified principal | -| canRemove(jcrSession, principalId) | Checks if the current user may remove the specified user or group | -| canUpdateGroupMembers(jcrSession, groupId) | Checks if the current user may modify the membership of the specified group |</p> +<p>The AuthorizablePrivilegesInfo provides methods for checking the following actions</p> +<table class="table"> +<thead> +<tr> +<th>Method</th> +<th>Description</th> +</tr> +</thead> +<tbody> +<tr> +<td><code>canAddUser(jcrSession)</code></td> +<td>Checks if the current user may add new users</td> +</tr> +<tr> +<td><code>canAddGroup(jcrSession)</code></td> +<td>Checks if the current user may add new groups</td> +</tr> +<tr> +<td><code>canUpdateProperties(jcrSession, principalId)</code></td> +<td>Checks if the current user may update the properties of the specified principal</td> +</tr> +<tr> +<td><code>canRemove(jcrSession, principalId)</code></td> +<td>Checks if the current user may remove the specified user or group</td> +</tr> +<tr> +<td><code>canUpdateGroupMembers(jcrSession, groupId)</code></td> +<td>Checks if the current user may modify the membership of the specified group</td> +</tr> +</tbody> +</table> <p>Example:</p> <div class="codehilite"><pre><span class="cp"><%</span> <span class="sr">//</span> <span class="n">lookup</span> <span class="n">the</span> <span class="n">service</span> @@ -316,9 +651,9 @@ The properties of a single user can be r <h2 id="sample-user-interface-implementation">Sample User Interface Implementation<a class="headerlink" href="#sample-user-interface-implementation" title="Permanent link">¶</a></h2> <p><em>Since Version 2.1.1</em></p> -<p>A sample implementation of ui pages for user/group management is provided @ http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/</p> +<p>A sample implementation of ui pages for user/group management is provided @ <a href="http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/">http://svn.apache.org/viewvc/sling/trunk/samples/usermanager-ui/</a>.</p> <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;"> - Rev. 1607543 by olli on Thu, 3 Jul 2014 06:33:01 +0000 + Rev. 1789492 by kwin on Thu, 30 Mar 2017 10:33:59 +0000 </div> <div class="trademarkFooter"> Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project