Set the members for a group
Name | Type | Description |
groupid | string | either an integer group ID or "=" followed by a double uri-encoded group name |
Name | Type | Description |
authenticate | bool? | Force authentication for request (default: false) |
Name | Value | Description |
OK | 200 | Request completed successfully |
Bad Request | 400 | Invalid input parameter or request body |
Forbidden | 403 | Administrator access is required |
Not Found | 404 | Requested group could not be found |
Input:
<users> <user id="{int}"/> ... </users>
Output:
<group id="{int}" href="{uri}"> <groupname>{text}</groupname> <service.authentication id="{int}" href="{uri}" /> <users count="{int}" href="{uri}" /> <permissions.group> <operations mask="{int}">{text}</operations> <role id="{int}" href="{uri}">{text}</role> </permissions.group> </group>
Note that this feature only updates the group user list. Additionally, the list of users passed does not append to the existing set, but replaces that set completely.
Use PUT:groups/{groupid} to modify the group role.
The following code example updates group with ID 2 to contain users with ID 2 and 3:
Plug p = Plug.New("http://deki-hayes/@api/deki"); p.At("users", "authenticate").WithCredentials("admin", "password").Get(); XDoc usersDoc = new XDoc("users") .Start("user") .Attr("id", 2) .End() .Start("user") .Attr("id", 3) .End(); p.At("groups", "2", "users").Put(usersDoc);
<group id="2" href="http://deki-hayes/@api/deki/groups/2"> <groupname>My Contributors Group</groupname> <service.authentication id="1" href="http://deki-hayes/@api/deki/site/services/1" /> <users count="2" href="http://deki-hayes/@api/deki/groups/2/users" /> <permissions.group> <operations mask="1343">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS</operations> <role id="4" href="http://deki-hayes/@api/deki/site/roles/4">Contributor</role> </permissions.group> </group>
Add notes about requirements or config values
The following command will update a group (group ID = 1) with the users listed in newgroup.xml
curl -u admin:password -H "Content-Type: application/xml" -T newgroup.xml -i http://192.168.168.110/@api/deki/groups/1/users
We want to modify the group (group ID = 2) created here. Two users will be added, IDs 2 and 6, and user, ID 1, will be removed.
Content-Type: application/xml
<users> <user id="5"/> <user id="2"/> <user id="4"/> <user id="3"/> <user id="6"/> </users>
curl -u admin:password -H "Content-Type: application/xml" -T fabfour.xml -i http://192.168.168.110/@api/deki/groups/2/users
HTTP/1.1 200 OK Date: Thu, 14 Jan 2010 19:03:47 GMT Server: Dream-HTTPAPI/1.7.2.17433 X-Deki-Site: id="default" Content-Type: application/xml; charset=utf-8 Content-Length: 495 Via: 1.1 dekiwiki
Content-Type: application/xml
<?xml version="1.0"?> <group id="2" href="http://192.168.168.110/@api/deki/groups/2"> <groupname>the fab four</groupname> <service.authentication id="1" href="http://192.168.168.110/@api/deki/site/services/1"/> <users count="5" href="http://192.168.168.110/@api/deki/groups/2/users"/> <permissions.group> <operations mask="1343">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS</operations> <role id="4" href="http://192.168.168.110/@api/deki/site/roles/4">Contributor</role> </permissions.group> </group>