Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Besides using TWAdmin for administrative tasks, you can also use the Command Line Interface (CLI) to create and manage users, roles, and permissions. All of the CLI supported in TWCloud are properly defined on this page. You can also find them via Swagger where you can find the description of the command-line, and issue it easily. Click this link https://osmc.nomagic.com/#/Administrator to go the TWCloud CLI documentation in Swagger.

Assign a project role to a particular user

Send POST to /osmc/workspaces/{workspaceId}/resources/{resouceId}/roles/{roleId}/users  assign assigns a project role to a specified user.


Code Block
languagetext
titleHTTP request header
Content-Type: text/plain


Code Block
languagetext
titleHTTP request body
user1,user2

HTTP Status

201 with empty body.


List all permissions

The /osmc/admin/permissions lists all permissions in the server.

Code Block
languagetext
titleHTTP request header
Content-Type: application/json; charset=UTF-8

Code Block
languagetext
titleHTTP request body
[{
    "operationAssignableAccessScope": "GLOBAL_ONLY",
    "protectedType": "com.nomagic.esi.resource",
    "name": "com.nomagic.esi.resource_list.all.resources",
    "operationName": "list.all.resources",
    "ID": "d91a7ba9-a017-44ac-9ff8-4b35635cb7b9",
    "operationDisplayName": "List All Projects",
    "protectedTypeDisplayName": "Project"
}, {
    "operationAssignableAccessScope": "GLOBAL_OR_OBJECT",
    "protectedType": "com.nomagic.esi.resource",
    "name": "com.nomagic.esi.resource_read.resource",
    "operationName": "read.resource",
    "ID": "9649cb30-6933-49f1-b309-7aade63340cc",
    "operationDisplayName": "Read Projects",
    "protectedTypeDisplayName": "Project"
}, {
    "operationAssignableAccessScope": "GLOBAL_ONLY",
    "protectedType": "com.nomagic.esi.server",
    "name": "com.nomagic.esi.server_manage.user.permissions",
    "operationName": "manage.user.permissions",
    "ID": "8d7423b8-4e8c-4d32-8d3c-783504bef044",
    "operationDisplayName": "Manage User Permissions",
    "protectedTypeDisplayName": "Server"
}]


Anchor
createrole
createrole
Create a role

POST to /osmc/admin/roles create  creates a row in the server.

Code Block
languagetext
titleHTTP request header
Content-Type: application/json


Code Block
languagetext
titleHTTP request body
{
    "permissions": ["9649cb30-6933-49f1-b309-7aade63340cc"],
    "name": "new role name",
    "description": "new row description",
}


Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
{
    "permissions": [{
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_edit.resource",
        "operationName": "edit.resource",
        "ID": "0b972f77-368c-4511-9285-0069a1a8bf07",
        "operationDisplayName": "Edit Projects",
        "protectedTypeDisplayName": "Project"
    }],
    "name": "Project Contributor",
    "description": "Project-specific role. Users who are assigned to this role can modify content of selected project.",
    "ID": "417494bc-d0e8-449a-a8ac-5476dc2e6537"
}


Edit a role

PATCH to /osmc/admin/roles/{roleId} edit  edits a row in the server. For the format of the request and the response, see Create a role.


Delete a role

DELETE to /osmc/admin/roles/{roleId} delete  deletes a row in the server.

Create a user

POST to /osmc/admin/users create  creates a new user. The user must not be an LDAP user.

Code Block
languagetext
titleHTTP request header
Content-Type: application/json


Code Block
languagetext
titleHTTP request body (note that the otherAttributes map must not contain realmid key)
{
    "userName": "test2",
	"password": "a passward",
    "otherAttributes": {
        "mobile": "456",
        "name": "a full name",
        "department": "department",
        "email": "user1@notset.com"
    },
    "enabled": true
}


Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
{
    "userName": "test2",
    "otherAttributes": {
        "mobile": "456",
        "name": "a full name",
        "department": "department",
        "email": "user1@notset.com"
    },
    "enabled": true
}


Edit a user

PATCH to /osmc/admin/users/{username} edit  edits a user. 

Code Block
languagetext
titleHTTP request header
Content-Type: application/json


The key userName is ignored. By default, new otherAttributes are merged into the server. If a value of a key in otherAttributes is empty, the key will be removed from the server.

Code Block
languagetext
titleHTTP request body
{
    "userName": "test2",
	"password": "a passward",
    "otherAttributes": {
        "mobile": "456",
        "name": "a full name",
        "department": "department",
        "email": "user1@notset.com"
    },
    "enabled": true
}


Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
{
    "userName": "test2",
    "otherAttributes": {
        "mobile": "456",
        "name": "a full name",
        "department": "department",
        "email": "user1@notset.com"
    },
    "enabled": true
}


List all LDAP configurations

The /osmc/admin/ldaps returns a JSON array containing all LDAP configurations in the server.

Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
[{
    "environment": {
        "authentype": "simple",
        "searchbase": "ou=Users,dc=nomagicasia,dc=com",
        "authen_dntype": "template",
        "anoymousbind": "false",
        "ldap_realm_name": "ldap0",
        "java.naming.factory.initial": "com.sun.jndi.ldap.LdapCtxFactory",
        "java.naming.security.protocol": "none",
        "userDNTemplate": "uid={0},ou=Users,dc=nomagicasia,dc=com",
        "com.sun.jndi.ldap.read.timeout": "500",
        "java.naming.provider.url": "ldap://ldap.th.nomagic.com:389",
        "weight": "1073741823",
        "enabled": "true"
    },
    "protocol": "ldap",
    "port": "389",
    "IP": "ldap.th.nomagic.com",
    "ID": "36f8b736-f51c-43a2-a9a6-63905419838a",
    "authen": "simple",
    "userName": "cn=admin,dc=nomagicasia,dc=com",
    "url": "ldap://ldap.th.nomagic.com:389"
}]


Import a user from LDAP

POST to /osmc/admin/ldaps/{ldapId}/import{username} imports an LDAP user into Teamwork Cloud.


Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
{
    "userName": "test2",
    "password": "a passward",
    "otherAttributes": {
        "mobile": "456",
        "realmid": "36f8b736-f56c-43a2-a9a6-54128919838a",
        "name": "a full name",
        "department": "department",
        "email": "user1@notset.com"
    },
    "enabled": true
}


Search a user in an LDAP server

GET to /osmc/admin/ldaps/{ldapId}/search?<query string> searches users from a specified LDAP server.

Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
[{
    "mobile": "0123456789",
    "fullName": "Bat",
    "department": "production",
    "userName": "bat",
    "email": "bat@nma.com",
    "userDN": "uid=bat,ou=Users,dc=nomagicasia,dc=com"
}, {
    "mobile": "",
    "fullName": "abc",
    "department": "",
    "userName": "abc",
    "email": "",
    "userDN": "uid=abc,ou=Users,dc=nomagicasia,dc=com"
}, {
    "mobile": "",
    "fullName": "aaaa",
    "department": "",
    "userName": "aaa",
    "email": "",
    "userDN": "uid=aaa,ou=Users,dc=nomagicasia,dc=com"
}]


List all users

The /osmc/admin/users returns a JSON array containing usernames in the server.


Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
["admin", "observer1", "user1", "user2", "worker1"]


Get user information

The /osmc/admin/users/{username} returns a JSON object containing information of a specified user.

Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
{
    "roleAssignments": [{
        "roleID": "3e4696d5-1937-4741-aacb-062378e0cda2",
        "protectedObjects": [{
            "protectedType": "com.nomagic.esi.resource",
            "ID": "cda926be-58c7-4d3f-acb2-e9cdb57d8aaf"
        }],
        "ID": "3871e058-65e6-40d9-bd23-f80bdc074394"
    }, {
        "roleID": "417494bc-d0e8-449a-a8ac-5476dc2e6537",
        "protectedObjects": [{
            "protectedType": "com.nomagic.esi.resource",
            "ID": "cda926be-58c7-4d3f-acb2-e9cdb57d8aaf"
        }],
        "ID": "54b8ef7f-f60c-410f-8a09-93a15c51bbaa"
    }, {
        "roleID": "a020ca32-22a2-4c90-8513-f6b9c4ea8513",
        "protectedObjects": [{
            "protectedType": "com.nomagic.esi.resource",
            "ID": "cda926be-58c7-4d3f-acb2-e9cdb57d8aaf"
        }],
        "ID": "51ae2287-405e-42a6-807f-ca5e6f2a41d0"
    }, {
        "roleID": "e3cf7416-9cf3-42ff-84e6-e9d4283dfd18",
        "protectedObjects": [{
            "protectedType": "com.nomagic.esi.resource",
            "ID": "cda926be-58c7-4d3f-acb2-e9cdb57d8aaf"
        }],
        "ID": "a147bf72-1a51-49f5-baf9-ac3f2b6faf50"
    }],
    "userName": "user1",
    "otherAttributes": {
        "realmid": "",
        "mobile": "",
        "name": "",
        "department": "",
        "email": ""
    },
    "enabled": true
}


LIst all roles

The /osmc/admin/roles lists all rows in the server.

Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
[{
    "permissions": [{
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_create.resource",
        "operationName": "create.resource",
        "ID": "930c939c-6ec4-4c90-9458-92eefc73b11b",
        "operationDisplayName": "Create Project",
        "protectedTypeDisplayName": "Project"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_categorize.resources",
        "operationName": "categorize.resources",
        "ID": "9a223c45-71eb-4e45-b374-a8dd319afcea",
        "operationDisplayName": "Categorize Projects",
        "protectedTypeDisplayName": "Project"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_list.all.resources",
        "operationName": "list.all.resources",
        "ID": "d91a7ba9-a017-44ac-9ff8-4b35635cb7b9",
        "operationDisplayName": "List All Projects",
        "protectedTypeDisplayName": "Project"
    }],
    "name": "Project Creator",
    "description": "Global or category-specific role. Users who are assigned to this role can add projects to the server including the ability to categorize them: create new categories or manage existing ones.",
    "ID": "15c045d8-44e1-4e14-8175-b209b6ae70a4"
}, {
    "permissions": [{
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_edit.resource",
        "operationName": "edit.resource",
        "ID": "0b972f77-368c-4511-9285-0069a1a8bf07",
        "operationDisplayName": "Edit Projects",
        "protectedTypeDisplayName": "Project"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_read.resource",
        "operationName": "read.resource",
        "ID": "9649cb30-6933-49f1-b309-7aade63340cc",
        "operationDisplayName": "Read Projects",
        "protectedTypeDisplayName": "Project"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.resource",
        "name": "com.nomagic.esi.resource_edit.resource.properties",
        "operationName": "edit.resource.properties",
        "ID": "a93ff74f-baae-4aea-8f79-1a9d423f35fa",
        "operationDisplayName": "Edit Project Properties",
        "protectedTypeDisplayName": "Project"
    }],
    "name": "Project Contributor",
    "description": "Project-specific role. Users who are assigned to this role can modify content of selected project.",
    "ID": "417494bc-d0e8-449a-a8ac-5476dc2e6537"
}, {
    "permissions": [{
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.server",
        "name": "com.nomagic.esi.server_list.all.users",
        "operationName": "list.all.users",
        "ID": "34e47503-ad58-401b-a3d9-fdb0e00ea651",
        "operationDisplayName": "List All Users",
        "protectedTypeDisplayName": "Server"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.server",
        "name": "com.nomagic.esi.server_remove.user",
        "operationName": "remove.user",
        "ID": "3f7a74c4-9a95-40a6-837a-2aaf7f5f91ef",
        "operationDisplayName": "Remove User",
        "protectedTypeDisplayName": "Server"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.server",
        "name": "com.nomagic.esi.server_create.user",
        "operationName": "create.user",
        "ID": "d616eb9e-d1d4-4f2d-ad24-3cfb6e57d08e",
        "operationDisplayName": "Create User",
        "protectedTypeDisplayName": "Server"
    }, {
        "operationAssignableAccessScope": {},
        "protectedType": "com.nomagic.esi.server",
        "name": "com.nomagic.esi.server_edit.user.properties",
        "operationName": "edit.user.properties",
        "ID": "d81818d4-0d98-4464-b05c-e54e4af82877",
        "operationDisplayName": "Edit User Properties",
        "protectedTypeDisplayName": "Server"
    }],
    "name": "User Manager",
    "description": "Global role. Users who are assigned to this role can create and manage users in a server.",
    "ID": "1b3a3af6-887f-4891-a3df-b0e7b9141ff2"
}]


List users assigned to a particular role

The _/osmc/admin/roles/{roleId}/users lists users assigned to a particular role.

Code Block
languagetext
titleHTTP response header
Content-Type: application/json; charset=UTF-8


Code Block
languagetext
titleHTTP response body
["admin","observer1"]


Unassign a role from a particular user

Send HTTP DELETE to /admin/roles/{roleId}/users/{username} unassign  unassigns a particular role from a specified user.


HTTP Response

204 with empty body.


Unassign a project role from a particular user

Send DELETE to _/osmc/workspaces/\{workspaceId\}/resources/\{resourceId\}/roles/\{roleId\}/users/\{username\}_ unassign unassigns a project role from a particular user.

HTTP Status

204 with empty body.


Assign a role to a particular user

Send POST to /osmc/admin/roles/{roleId}/users assign  assigns a role to a user.

Code Block
languagetext
titleHTTP request header
Content-Type: text/plain


Code Block
languagetext
titleHTTP request body
user1,user2


HTTP Status

201 with empty body


Panel
titleThe CLI on this page

Table of Contents
maxLevel4
minLevel4