users/{userid} (GET)
Overview
Retrieve information about a user.
- REST Method: GET
- Method Access: public
Uri Parameters
Name | Type | Description |
userid | string | Either an integer user ID, "current", or "=" followed by a double uri-encoded user name |
Query Parameters
Name | Type | Description |
exclude | string? | Elements to exclude from response document (choice of "groups", "properties"; default: exclude nothing) |
authenticate | bool? | Force authentication for request (default: false) |
Return Codes
Name | Value | Description |
OK | 200 | The request completed successfully |
Bad Request | 400 | Invalid input parameter or request body |
Forbidden | 403 | Read access is required |
Not Found | 404 | Requested user could not be found |
Message Format
Output:
<user id="{int}" href="{uri}"> <nick>{text}</nick> <username>{text}</username> <email>{text}</email> <page.home id="{int}" href="{int}"> <title>{text}</title> <path>{text}</path> </page.home> <fullname /> <status>{active|inactive}</status> <date.lastlogin>{date}</date.lastlogin> <service.authentication id="{int}" href="{uri]" /> <permissions.user> <operations mask="{int}">{text}</operations> <role id="{int}" href="{uri}">{text}</role> </permissions.user> <permissions.effective> <operations mask="{int}">{text}</operations> </permissions.effective> <groups count="{int}" href="{uri}"> <group id="{int}" href="{uri}"> <name>{text}</name> <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> ... </groups> </user>
Implementation Notes
User POST:users to add or modify users.
C# Code Sample: Retrieve User Info
The following code example retrieves the current user:
Sample Code
Plug p = Plug.New("http://deki-hayes/@api/deki"); p.At("users", "authenticate").WithCredentials("admin", "password").Get(); p.At("users", "current").Get();
Sample Response from executing Code
Sample response with information about the current user, Admin:
<user id="1" href="http://deki-hayes/@api/deki/users/1"> <nick>Admin</nick> <username>Admin</username> <email>admin@mindtouch.com</email> <page.home id="30" href="http://deki-hayes/@api/deki/pages/30"> <title>User:Admin</title> <path>User:Admin</path> </page.home> <fullname></fullname> <status>active</status> <date.lastlogin>2007-08-30T17:26:32Z</date.lastlogin> <service.authentication id="1" href="http://deki-hayes/@api/deki/site/services/1" /> <permissions.user> <operations mask="9223372036854779903">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS,CONTROLPANEL,ADMIN</operations> <role id="5" href="http://deki-hayes/@api/deki/site/roles/5">Admin</role> </permissions.user> <permissions.effective> <operations mask="9223372036854779903">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS,CONTROLPANEL,ADMIN</operations> </permissions.effective> <groups /> </user>
Curl Code Sample: Retrieve User Info
The following command retrieves information about specific user "foo":
Sample Code
curl -u username:password -i http://mindtouch.address/@api/deki/users/=foo
Sample Response from executing Code
Response from retrieving "Admin" user data:
Content-Type: application/xml
<user id="1" href="http://192.168.59.128/@api/deki/users/1"> <nick>Admin</nick> <username>Admin</username> <email hidden="true"/> <hash.email>64e1b8d34f425d19e1ee2ea7236d3028</hash.email> <uri.gravatar>http://www.gravatar.com/avatar/64e1b8d34f425d19e1ee2ea7236d3028</uri.gravatar> <date.created>0001-01-01T00:00:00Z</date.created> <page.home id="37" href="http://192.168.59.128/@api/deki/pages/37?redirects=0"> <uri.ui>http://192.168.59.128/User:Admin</uri.ui> <title>User:Admin</title> <path>User:Admin</path> <namespace>user</namespace> </page.home> <fullname/> <status>active</status> <date.lastlogin>2010-02-02T19:44:00Z</date.lastlogin> <language/> <timezone/> <service.authentication id="1" href="http://192.168.59.128/@api/deki/site/services/1"/> <permissions.user> <operations mask="9223372036854779903">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS,CONTROLPANEL,ADMIN</operations> <role id="5" href="http://192.168.59.128/@api/deki/site/roles/5">Admin</role> </permissions.user> <permissions.effective> <operations mask="9223372036854779903">LOGIN,BROWSE,READ,SUBSCRIBE,UPDATE,CREATE,DELETE,CHANGEPERMISSIONS,CONTROLPANEL,ADMIN</operations> </permissions.effective> <groups/> <properties href="http://192.168.59.128/@api/deki/users/1/properties"/> </user>
Implementation notes
curl flags
- -u
- Provides external user authentication. Note that if anonymous access is available and authentication is not forced, this flag may be omitted.
- -i
- Outputs the HTTP response headers. Useful for debugging.