users.md 5.0 KB
Newer Older
N
Nihad Abbasov 已提交
1 2 3 4 5 6 7 8 9 10 11 12
## List users

Get a list of users.

```
GET /users
```

```json
[
  {
    "id": 1,
13
    "username": "john_smith",
N
Nihad Abbasov 已提交
14 15 16 17 18 19 20 21 22
    "email": "john@example.com",
    "name": "John Smith",
    "blocked": false,
    "created_at": "2012-05-23T08:00:58Z",
    "bio": null,
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "dark_scheme": false,
23 24
    "extern_uid": "john.smith",
    "provider": "provider_name",
N
Nihad Abbasov 已提交
25 26 27 28
    "theme_id": 1
  },
  {
    "id": 2,
29
    "username": "jack_smith",
N
Nihad Abbasov 已提交
30 31 32 33 34 35 36 37 38
    "email": "jack@example.com",
    "name": "Jack Smith",
    "blocked": false,
    "created_at": "2012-05-23T08:01:01Z",
    "bio": null,
    "skype": "",
    "linkedin": "",
    "twitter": "",
    "dark_scheme": true,
39 40
    "extern_uid": "jack.smith",
    "provider": "provider_name",
N
Nihad Abbasov 已提交
41 42 43 44 45
    "theme_id": 1
  }
]
```

46

N
Nihad Abbasov 已提交
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
## Single user

Get a single user.

```
GET /users/:id
```

Parameters:

+ `id` (required) - The ID of a user

```json
{
  "id": 1,
62
  "username": "john_smith",
N
Nihad Abbasov 已提交
63 64 65 66 67 68 69 70 71
  "email": "john@example.com",
  "name": "John Smith",
  "blocked": false,
  "created_at": "2012-05-23T08:00:58Z",
  "bio": null,
  "skype": "",
  "linkedin": "",
  "twitter": "",
  "dark_scheme": false,
72 73
  "extern_uid": "john.smith",
  "provider": "provider_name",
N
Nihad Abbasov 已提交
74 75 76 77
  "theme_id": 1
}
```

78

79
## User creation
80 81

Creates a new user. Note only administrators can create new users.
82 83 84 85 86 87 88

```
POST /users
```

Parameters:

89 90 91 92 93 94 95 96 97 98 99 100
+ `email` (required)          - Email
+ `password` (required)       - Password
+ `username` (required)       - Username
+ `name` (required)           - Name
+ `skype` (optional)          - Skype ID
+ `linkedin` (optional)       - Linkedin
+ `twitter` (optional)        - Twitter account
+ `projects_limit` (optional) - Number of projects user can create
+ `extern_uid` (optional)     - External UID
+ `provider` (optional)       - External provider name
+ `bio` (optional)            - User's bio

101

102
## User modification
103 104

Modifies an existing user. Only administrators can change attributes of a user.
105 106 107 108 109 110

```
PUT /users/:id
```

Parameters:
111

112 113 114 115 116 117 118 119 120 121 122 123
+ `email`                             - Email
+ `username`                          - Username
+ `name`                              - Name
+ `password`                          - Password
+ `skype`                             - Skype ID
+ `linkedin`                          - Linkedin
+ `twitter`                           - Twitter account
+ `projects_limit`                    - Limit projects wich user can create
+ `extern_uid`                        - External UID
+ `provider`                          - External provider name
+ `bio`                               - User's bio

124 125
Note, at the moment this method does only return a 404 error, even in cases where a 409 (Conflict) would
be more appropriate, e.g. when renaming the email address to some exsisting one.
126 127 128


## User deletion
129 130 131 132

Deletes a user. Available only for administrators. This is an idempotent function, calling this function
for a non-existent user id still returns a status code `200 Ok`. The JSON response differs if the user
was actually deleted or not. In the former the user is returned and in the latter not.
133 134 135 136 137

```
DELETE /users/:id
```

138 139 140 141
Parameters:

+ `id` (required) - The ID of the user

142

N
Nihad Abbasov 已提交
143 144
## Current user

145
Gets currently authenticated user.
N
Nihad Abbasov 已提交
146 147 148 149 150 151 152 153

```
GET /user
```

```json
{
  "id": 1,
154
  "username": "john_smith",
N
Nihad Abbasov 已提交
155 156 157 158 159 160 161 162 163 164 165 166
  "email": "john@example.com",
  "name": "John Smith",
  "blocked": false,
  "created_at": "2012-05-23T08:00:58Z",
  "bio": null,
  "skype": "",
  "linkedin": "",
  "twitter": "",
  "dark_scheme": false,
  "theme_id": 1
}
```
167

168

169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195
## List SSH keys

Get a list of currently authenticated user's SSH keys.

```
GET /user/keys
```

```json
[
  {
    "id": 1,
    "title" : "Public key"
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
      596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
      soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0=",
  },
  {
    "id": 3,
    "title" : "Another Public key"
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
      596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
      soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
  }
]
```

196 197 198 199 200
Parameters:

+ **none**


201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
## Single SSH key

Get a single key.

```
GET /user/keys/:id
```

Parameters:

+ `id` (required) - The ID of an SSH key

```json
{
  "id": 1,
  "title" : "Public key"
  "key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt4
      596k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4
      soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0="
}
```
222 223


224 225
## Add SSH key

226
Creates a new key owned by the currently authenticated user.
227 228 229 230 231 232 233 234 235 236 237 238 239

```
POST /user/keys
```

Parameters:

+ `title` (required) - new SSH Key's title
+ `key` (required) - new SSH key


## Delete SSH key

240 241
Deletes key owned by currently authenticated user. This is an idempotent function and calling it on a key that is already
deleted or not available results in `200 Ok`.
242 243 244 245 246 247 248 249 250

```
DELETE /user/keys/:id
```

Parameters:

+ `id` (required) - SSH key ID