GET /api/users
List all users

GET /api/auth_source_ldaps/:auth_source_ldap_id/users
List all users for LDAP authentication source

GET /api/auth_source_externals/:auth_source_external_id/users
List all users for external authentication source

GET /api/usergroups/:usergroup_id/users
List all users for user group

GET /api/roles/:role_id/users
List all users for role

GET /api/locations/:location_id/users
List all users for location

GET /api/organizations/:organization_id/users
List all users for organization

Examples

GET /api/users
200
{
  "total": 9,
  "subtotal": 0,
  "page": 1,
  "per_page": 20,
  "search": "login == foreman_admin",
  "sort": {
    "by": null,
    "order": null
  },
  "results": []
}

Params

Param Name Description
auth_source_ldap_id
Optional

ID of LDAP authentication source

Validations:

  • Must be a String

usergroup_id
Optional

ID of user group

Validations:

  • Must be a String

role_id
Optional

ID of role

Validations:

  • Must be a String

location_id
Optional

Scope by locations

Validations:

  • Must be a Integer

organization_id
Optional

Scope by organizations

Validations:

  • Must be a Integer

search
Optional

filter results

Validations:

  • Must be a String

order
Optional

Sort field and order, eg. ‘id DESC’

Validations:

  • Must be a String

page
Optional

Page number, starting at 1

Validations:

  • Must be a number.

per_page
Optional

Number of results per page to return

Validations:

  • Must be a number.

Search fields

Field name Tipo Possible values
admin true, false
description text
firstname string
last_login_on datetime
lastname string
location string
location_id integer
login string
mail string
organization string
organization_id integer
role string
role_id integer
usergroup string

GET /api/users/:id
Show a user

Examples

GET /api/users/980190962
403
{
  "error": {
    "message": "Access denied",
    "details": "Missing one of the required permissions: view_users",
    "missing_permissions": [
      "view_users"
    ]
  }
}

Params

Param Name Description
location_id
Optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
Optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
Required

Validations:

  • Must be a String


GET /api/current_user
Show the currently logged-in user

Examples

GET /api/current_user
200
{
  "firstname": "One",
  "lastname": "User",
  "mail": "userone@someware.com",
  "admin": false,
  "auth_source_id": 980190962,
  "auth_source_name": "ldap-server",
  "timezone": null,
  "locale": null,
  "last_login_on": "2009-10-12 21:50:04 UTC",
  "created_at": "2019-11-07 08:36:55 UTC",
  "updated_at": "2019-11-07 08:36:55 UTC",
  "id": 980190962,
  "login": "one",
  "description": null,
  "ssh_keys": [],
  "default_location": null,
  "locations": [
    {
      "id": 255093256,
      "name": "Location 1",
      "title": "Location 1",
      "description": null
    }
  ],
  "default_organization": null,
  "organizations": [
    {
      "id": 447626438,
      "name": "Organization 1",
      "title": "Organization 1",
      "description": null
    }
  ],
  "effective_admin": false,
  "cached_usergroups": [],
  "auth_source_ldap": {
    "id": 980190962,
    "type": "AuthSourceLdap",
    "name": "ldap-server"
  },
  "mail_notifications": [],
  "roles": [
    {
      "name": "Viewer",
      "id": 5,
      "description": null,
      "origin": "foreman"
    }
  ],
  "usergroups": []
}

Params

Param Name Description
location_id
Optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
Optional

Set the current organization context for the request

Validations:

  • Must be a Integer


POST /api/users
Create a user

Adds role ‘Default role’ to the user by default

Examples

POST /api/users
{
  "user": {
    "login": "odjNgdqKOI",
    "auth_source_id": 200482051,
    "password": "123456"
  }
}
201
{
  "firstname": null,
  "lastname": null,
  "mail": null,
  "admin": false,
  "auth_source_id": 200482051,
  "auth_source_name": "Internal",
  "timezone": null,
  "locale": null,
  "last_login_on": null,
  "created_at": "2019-11-07 08:37:05 UTC",
  "updated_at": "2019-11-07 08:37:05 UTC",
  "id": 988725684,
  "login": "odjNgdqKOI",
  "description": null,
  "ssh_keys": [],
  "default_location": null,
  "locations": [],
  "default_organization": null,
  "organizations": [],
  "effective_admin": false,
  "cached_usergroups": [],
  "auth_source_internal": {
    "id": 200482051,
    "type": "AuthSourceInternal",
    "name": "Internal"
  },
  "mail_notifications": [],
  "roles": [],
  "usergroups": []
}

Params

Param Name Description
location_id
Optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
Optional

Set the current organization context for the request

Validations:

  • Must be a Integer

user
Required

Validations:

  • Must be a Hash

user[login]
Required

Validations:

  • Must be a String

user[firstname]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a String

user[lastname]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a String

user[mail]
Required

Validations:

  • Must be a String

user[description]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a String

user[admin]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

is an admin account

Validations:

  • Must be one of: true, false, 1, 0.

user[password]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Required unless user is in an external authentication source

Validations:

  • Must be a String

user[default_location_id]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a Integer

user[default_organization_id]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a Integer

user[auth_source_id]
Required

Validations:

  • Must be a Integer

user[timezone]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

User’s timezone

Validations:

  • Must be one of: International Date Line West, American Samoa, Midway Island, Hawaii, Alaska, Pacific Time (US & Canada), Tijuana, Arizona, Chihuahua, Mazatlan, Mountain Time (US & Canada), Central America, Central Time (US & Canada), Guadalajara, Mexico City, Monterrey, Saskatchewan, Bogota, Eastern Time (US & Canada), Indiana (East), Lima, Quito, Atlantic Time (Canada), Caracas, Georgetown, La Paz, Puerto Rico, Santiago, Newfoundland, Brasilia, Buenos Aires, Greenland, Montevideo, Mid-Atlantic, Azores, Cape Verde Is., Casablanca, Dublin, Edinburgh, Lisbon, London, Monrovia, UTC, Amsterdam, Belgrade, Berlin, Bern, Bratislava, Brussels, Budapest, Copenhagen, Ljubljana, Madrid, Paris, Prague, Rome, Sarajevo, Skopje, Stockholm, Vienna, Warsaw, West Central Africa, Zagreb, Zurich, Athens, Bucharest, Cairo, Harare, Helsinki, Jerusalem, Kaliningrad, Kyiv, Pretoria, Riga, Sofia, Tallinn, Vilnius, Baghdad, Istanbul, Kuwait, Minsk, Moscow, Nairobi, Riyadh, St. Petersburg, Volgograd, Tehran, Abu Dhabi, Baku, Muscat, Samara, Tbilisi, Yerevan, Kabul, Ekaterinburg, Islamabad, Karachi, Tashkent, Chennai, Kolkata, Mumbai, New Delhi, Sri Jayawardenepura, Kathmandu, Almaty, Astana, Dhaka, Urumqi, Rangoon, Bangkok, Hanoi, Jakarta, Krasnoyarsk, Novosibirsk, Beijing, Chongqing, Hong Kong, Irkutsk, Kuala Lumpur, Perth, Singapore, Taipei, Ulaanbaatar, Osaka, Sapporo, Seoul, Tokyo, Yakutsk, Adelaide, Darwin, Brisbane, Canberra, Guam, Hobart, Melbourne, Port Moresby, Sydney, Vladivostok, Magadan, New Caledonia, Solomon Is., Srednekolymsk, Auckland, Fiji, Kamchatka, Marshall Is., Wellington, Chatham Is., Nuku'alofa, Samoa, Tokelau Is..

user[locale]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

User’s preferred locale

Validations:

  • Must be one of: ca, cs_CZ, de, en, en_GB, es, fr, gl, it, ja, ko, nl_NL, pl, pt_BR, ru, sv_SE, zh_CN, zh_TW.

user[role_ids]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be an array of any type

user[location_ids]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

REPLACE locations with given ids

Validations:

  • Must be an array of any type

user[organization_ids]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type


PUT /api/users/:id
Update a user

Adds role ‘Default role’ to the user if it is not already present. Only another admin can change the admin account attribute.

Examples

PUT /api/users/988725687
{
  "user": {
    "mail": "john@example.com",
    "auth_source_id": {
      "auth_source_internal": {
        "id": 200482051,
        "name": "Internal",
        "host": null,
        "port": null,
        "account": null,
        "account_password": null,
        "base_dn": null,
        "attr_login": null,
        "attr_firstname": null,
        "attr_lastname": null,
        "attr_mail": null,
        "onthefly_register": false,
        "tls": false,
        "created_at": "2019-11-07T08:36:55.274Z",
        "updated_at": "2019-11-07T08:36:55.274Z",
        "ldap_filter": null,
        "attr_photo": null,
        "server_type": "posix",
        "groups_base": null,
        "usergroup_sync": true,
        "use_netgroups": false
      }
    },
    "password": "123456"
  }
}
200
{
  "firstname": null,
  "lastname": null,
  "mail": "john@example.com",
  "admin": false,
  "auth_source_id": 980190962,
  "auth_source_name": "ldap-server",
  "timezone": null,
  "locale": null,
  "last_login_on": null,
  "created_at": "2019-11-07 08:37:05 UTC",
  "updated_at": "2019-11-07 08:37:05 UTC",
  "id": 988725687,
  "login": "foo",
  "description": null,
  "ssh_keys": [],
  "default_location": null,
  "locations": [],
  "default_organization": null,
  "organizations": [],
  "effective_admin": false,
  "cached_usergroups": [],
  "auth_source_ldap": {
    "id": 980190962,
    "type": "AuthSourceLdap",
    "name": "ldap-server"
  },
  "mail_notifications": [],
  "roles": [],
  "usergroups": []
}

Params

Param Name Description
location_id
Optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
Optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
Required

Validations:

  • Must be a String

user
Required

Validations:

  • Must be a Hash

user[login]
Optional

Validations:

  • Must be a String

user[firstname]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a String

user[lastname]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a String

user[mail]
Optional

Validations:

  • Must be a String

user[description]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a String

user[admin]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

is an admin account

Validations:

  • Must be one of: true, false, 1, 0.

user[password]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Required unless user is in an external authentication source

Validations:

  • Must be a String

user[default_location_id]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a Integer

user[default_organization_id]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be a Integer

user[auth_source_id]
Optional

Validations:

  • Must be a Integer

user[timezone]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

User’s timezone

Validations:

  • Must be one of: International Date Line West, American Samoa, Midway Island, Hawaii, Alaska, Pacific Time (US & Canada), Tijuana, Arizona, Chihuahua, Mazatlan, Mountain Time (US & Canada), Central America, Central Time (US & Canada), Guadalajara, Mexico City, Monterrey, Saskatchewan, Bogota, Eastern Time (US & Canada), Indiana (East), Lima, Quito, Atlantic Time (Canada), Caracas, Georgetown, La Paz, Puerto Rico, Santiago, Newfoundland, Brasilia, Buenos Aires, Greenland, Montevideo, Mid-Atlantic, Azores, Cape Verde Is., Casablanca, Dublin, Edinburgh, Lisbon, London, Monrovia, UTC, Amsterdam, Belgrade, Berlin, Bern, Bratislava, Brussels, Budapest, Copenhagen, Ljubljana, Madrid, Paris, Prague, Rome, Sarajevo, Skopje, Stockholm, Vienna, Warsaw, West Central Africa, Zagreb, Zurich, Athens, Bucharest, Cairo, Harare, Helsinki, Jerusalem, Kaliningrad, Kyiv, Pretoria, Riga, Sofia, Tallinn, Vilnius, Baghdad, Istanbul, Kuwait, Minsk, Moscow, Nairobi, Riyadh, St. Petersburg, Volgograd, Tehran, Abu Dhabi, Baku, Muscat, Samara, Tbilisi, Yerevan, Kabul, Ekaterinburg, Islamabad, Karachi, Tashkent, Chennai, Kolkata, Mumbai, New Delhi, Sri Jayawardenepura, Kathmandu, Almaty, Astana, Dhaka, Urumqi, Rangoon, Bangkok, Hanoi, Jakarta, Krasnoyarsk, Novosibirsk, Beijing, Chongqing, Hong Kong, Irkutsk, Kuala Lumpur, Perth, Singapore, Taipei, Ulaanbaatar, Osaka, Sapporo, Seoul, Tokyo, Yakutsk, Adelaide, Darwin, Brisbane, Canberra, Guam, Hobart, Melbourne, Port Moresby, Sydney, Vladivostok, Magadan, New Caledonia, Solomon Is., Srednekolymsk, Auckland, Fiji, Kamchatka, Marshall Is., Wellington, Chatham Is., Nuku'alofa, Samoa, Tokelau Is..

user[locale]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

User’s preferred locale

Validations:

  • Must be one of: ca, cs_CZ, de, en, en_GB, es, fr, gl, it, ja, ko, nl_NL, pl, pt_BR, ru, sv_SE, zh_CN, zh_TW.

user[role_ids]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Validations:

  • Must be an array of any type

user[location_ids]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

REPLACE locations with given ids

Validations:

  • Must be an array of any type

user[organization_ids]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

REPLACE organizations with given ids.

Validations:

  • Must be an array of any type

user[current_password]
Optional , <span class="translation_missing" title="translation missing: gl.apipie.nil_allowed">Nil Allowed</span>

Required when user want to change own password

Validations:

  • Must be a String


DELETE /api/users/:id
Delete a user

Examples

DELETE /api/users/980190962
{
  "user": {}
}
403
{
  "error": {
    "message": "Access denied",
    "details": "You are trying to delete your own account",
    "missing_permissions": null
  }
}

Params

Param Name Description
location_id
Optional

Set the current location context for the request

Validations:

  • Must be a Integer

organization_id
Optional

Set the current organization context for the request

Validations:

  • Must be a Integer

id
Required

Validations:

  • Must be a String