ControlByWeb.Cloud API Docs
API
Support
API
Support
    • Introduction
    • Authentication
    • Accounts
    • Users
    • Devices
    • Certificate Request Tokens

Users

Multiple users may belong to an account. Users in parent accounts can view child accounts. User's have differing permissions depending on their role. Some users might only be able to view and access devices, but not add and delete child accounts and other users, etc.

get users

GET /v1/accounts/{AccountId}/users

Gets a list of all users in the account with AccountId and all users in the child accounts. Must have "Edit Users" permission.

Parameters

NameTypeDescription
AccountIdintid of account from which to get users

Example

curl -X GET "https://api.controlbyweb.cloud/api/v1/accounts/{AccountId}/users" \
-H "Authorization: Bearer {authToken}"

Response

[{
    "id": 27,
    "account_id": 7852,
    "username": "fooBar",
    "first_name": "Foo",
    "last_name": "Bar",
    "email": "fooBar@controlbyweb.com",
    "email_verified_at": "2020-12-19T19:29:18.000000Z",
    "account_name": "fooBar",
    "account_admin": 1,
    "terms_agreed": 1
},
{
    "id": 27,
    "account_id": 5827,
    "username": "fooBarbaz",
    "first_name": "Foo",
    "last_name": "Bar",
    "email": "fooBarbaz@controlbyweb.com",
    "email_verified_at": "2020-12-19T19:29:18.000000Z",
    "account_name": "fooBarBaz",
    "account_admin": 0,
    "terms_agreed": 1
}]

get user

GET /v1/accounts/{AccountId}/users/{UserId}

Gets a specifec user with the given UserId, must belong to the account with AccountId. Must have "Edit Users" permission.

Parameters

NameTypeDescription
AccountIdintid of account associated with the user
UserIdintid of the user to be requested

Example

curl -X GET "https://api.controlbyweb.cloud/api/v1/accounts/{AccountId}/users/{UserId}" \
-H "Authorization: Bearer {authToken}"

Response

[{
    "id": 27,
    "account_id": 7852,
    "username": "fooBar",
    "first_name": "Foo",
    "last_name": "Bar",
    "email": "fooBar@controlbyweb.com",
    "email_verified_at": "2020-12-19T19:29:18.000000Z",
    "account_admin": 1,
    "terms_agreed": 1
}]

new user

POST /v1/accounts/{AccountId}/users

Creates a new user under the account with the AccountId. Must have "Add Users" permission.

Parameters

NameTypeDescription
AccountIdintid of account where new user will be created
emailstringemail of new user, must be unique
first_namestringfirst name of new user
last_namestringlast name of new user
passwordstringpassword of new user, can be changed by the new user later
roles_permissionsarrayroles and permissions for new user
usernamestringusername of new user

Example

curl -X POST "https://api.controlbyweb.cloud/api/v1/accounts/{AccountId}/users" \
-H "Authorization: Bearer {authToken}" \
-d "email={email}" \
-d "first_name={first_name}" \
-d "last_name={last_name}" \
-d "password={password}" \
-d "roles_permissions={roles_permissions}" \
-d "username={username}" \

Response

{
    "message": "success"
}

update user

POST /v1/accounts/{AccountId}/users/{UserId}

Updates a user with UserId. User must belong to the account with AccountId, or to a descendant account. The "Edit Users" permission is required.

Parameters

NameTypeDescription
authTokenstringBearer auth Token recieved from call to get Token
AccountIdintid of account associated with the user
UserIdintid of the user to be requested, appended to the URL
emailstringemail to be set to the user
first_namestringfirst name to be set to the user
last_namestringlast name to be set to the user
passwordstringpassword to be set to the user
roles_permissionsarrayroles and permissions to be set to the user
usernamestringusername to be set to the user

Example

curl -X POST "https://api.controlbyweb.cloud/api/v1/accounts/{AccountId}/users/{UserId}" \
-H "Authorization: Bearer {authToken}" \
-d "email={email}" \
-d "first_name={first_name}" \
-d "last_name={last_name}" \
-d "password={password}" \
-d "roles_permissions={roles_permissions}" \
-d "username={username}" \

Response

{
    "message": "success"
}

update user password

Updates a user's password to the new password given. Requires AccountId and UserId to be set to "self". Currently users can only change their own passwords.

POST /v1/accounts/{AccountId}/users/{UserId}/password

Parameters

NameTypeDescription
AccountIdint'self'
UserIdint'self'
old_passwordstringcurrent password for account
new_passwordstringnew password to be set for the user

Example

curl -X POST "https://api.controlbyweb.cloud/api/v1/accounts/{AccountId}/users/{UserId}/password" \
-H "Authorization: Bearer {authToken}" \
-d "old_password={old_password}" \
-d "new_password={new_password}" \

Response

{
    "message": "success"
}

delete user

POST /v1/accounts/{AccountId}/users/{UserId}/delete

Deletes a user with UserId from the account with AccountId. The "Delete Users" permission is required.

Parameters

NameTypeDescription
AccountIdintid of account associated with the user
UserIdintid of the user to be deleted

Example

curl -X DELETE "https://api.controlbyweb.cloud/api/v1/accounts/{AccountId}/users/{UserId}" \
-H "Authorization: Bearer {authToken}"

Response

{
    "message": "success"
}

get permissions

GET v1/permissions/

Returns a list of all possible permissions that can be given to a user. Permissions are broken up into roles all of which are encompassed by the "Admin" role. Roles are only used to orginize permissions. Users that have permission to "Edit Users" can edit the user's permissions. Users cannot edit their own permissions. The inital user for new cloud accounts will have all permissions.

Parameters

NameTypeDescription
authTokenstringBearer auth Token recieved from call to get Token

Example

curl -X GET "https://api.controlbyweb.cloud/api/v1/permissions" \
-H "Authorization: Bearer {authToken}"

Response

[{
    "id": "Admin",
    "label": "Admin",
    "children": [{
        "id": "Device Operator",
        "label": "Device Operator",
        "children": [{
            "id": "Setup Devices",
            "label": "Setup Devices"
        }, {
            "id": "Control Devices",
            "label": "Control Devices"
        }, {
            "id": "View Logged Data",
            "label": "View Logged Data"
        }]
    }, {
        "id": "Device Manager",
        "label": "Device Manager",
        "children": [{
            "id": "Add Devices",
            "label": "Add Devices"
        }, {
            "id": "Edit Devices",
            "label": "Edit Devices"
        }, {
            "id": "Delete Devices",
            "label": "Delete Devices"
        }]
    }, {
        "id": "Device Tag Manager",
        "label": "Device Tag Manager",
        "children": [{
            "id": "Add Device Tags",
            "label": "Add Device Tags"
        }, {
            "id": "Edit Device Tags",
            "label": "Edit Device Tags"
        }, {
            "id": "Delete Device Tags",
            "label": "Delete Device Tags"
        }]
    }, {
        "id": "DAT Urls Manager",
        "label": "DAT Urls Manager",
        "children": [{
            "id": "Add DAT Urls",
            "label": "Add DAT Urls"
        }, {
            "id": "Edit DAT Urls",
            "label": "Edit DAT Urls"
        }, {
            "id": "Delete DAT Urls",
            "label": "Delete DAT Urls"
        }]
    }, {
        "id": "User Manager",
        "label": "User Manager",
        "children": [{
            "id": "Add Users",
            "label": "Add Users"
        }, {
            "id": "Edit Users",
            "label": "Edit Users"
        }, {
            "id": "Delete Users",
            "label": "Delete Users"
        }]
    }, {
        "id": "Account Manager",
        "label": "Account Manager",
        "children": [{
            "id": "Add Accounts",
            "label": "Add Accounts"
        }, {
            "id": "Edit Accounts",
            "label": "Edit Accounts"
        }, {
            "id": "Delete Accounts",
            "label": "Delete Accounts"
        }]
    }, {
        "id": "Remote Log Servers Manager",
        "label": "Remote Log Servers Manager",
        "children": [{
            "id": "Add Remote Log Servers",
            "label": "Add Remote Log Servers"
        }, {
            "id": "Edit Remote Log Servers",
            "label": "Edit Remote Log Servers"
        }, {
            "id": "Delete Remote Log Servers",
            "label": "Delete Remote Log Servers"
        }]
    }]
}]

Contributors: Andrew Dunlap
Prev
Accounts
Next
Devices