team = api.team.get_info_id(TEAM_ID)
members = api.user.get_team_members(team.id)
print(f"All members in team: '{team.name}'")
print(members)
Output:
All members in team 'my_team'
[
UserInfo(
id=4,
login='max',
name='max_k',
email=None,
logins=7,
disabled=False,
last_login='2019-08-02T09:18:09.155Z',
created_at='2019-04-11T10:59:50.472Z',
updated_at='2019-08-05T08:42:20.463Z'
),
...
UserInfo(
id=31,
login='labeler_03',
name='',
email=None,
logins=0,
disabled=False,
last_login=None,
created_at='2019-07-20T15:12:52.779Z',
updated_at='2019-07-20T15:12:52.779Z'
)
]
Methods that require admin permisssion
List all registered users
Print all registered users on Supervisely instance.
users = api.user.get_list()
print('Total number of users: ', len(users))
for user in users:
print("Id: {:<5} Login: {:<25s} logins_count: {:<5}".format(user.id, user.login, user.logins))
Output:
Total number of users: 100
Id: 1 Login: admin logins_count: 88
Id: 2 Login: supervisely logins_count: 55
...
Id: 99 Login: alex logins_count: 0
Id: 100 Login: my_username logins_count: 3
def print_user_teams(login):
user = api.user.get_info_by_login(login)
user_teams = api.user.get_teams(user.id)
print("\nTeams of user {!r}:".format(login))
for team in user_teams:
print("[team_id={}] {:<25s} [role_id={}] {}".format(team.id, team.name, team.role_id, team.role))
print_user_teams(USER_LOGIN)
Output:
Teams of user 'my_username':
[team_id=7] team_x [role_id=1] admin
[team_id=5] my_team [role_id=1] admin
[team_id=3] jupyter_tutorials [role_id=1] admin
Create new user
new_user = api.user.get_info_by_login('demo_user_451')
if new_user is None:
new_user = api.user.create(login='demo_user_451', password='123abc', is_restricted=False)
print(new_user)
user = api.user.get_info_by_login('demo_user_451')
team = api.team.get_info_by_id(TEAM_ID)
if api.user.get_team_role(user.id, team.id) is None:
api.user.add_to_team(user.id, team.id, api.role.DefaultRole.ANNOTATOR)
Output:
Teams of user 'demo_user451':
[team_id=22] demo_user451 [role_id=1] admin
[team_id=4] my_team [role_id=3] annotator
Change user role in team
user = api.user.get_info_by_login('demo_user_451')
team = api.team.get_info_by_id(TEAM_ID)
api.user.change_team_role(user.id, team.id, api.role.DefaultRole.VIEWER)
print_user_teams('demo_user_451')
Output:
Teams of user 'demo_user451':
[team_id=22] demo_user451 [role_id=4] viewer
[team_id=4] max [role_id=1] admin
Remove user from team
team = api.team.get_info_by_id(TEAM_ID)
user = api.user.get_info_by_login('demo_user_451')
api.user.remove_from_team(user.id, team.id)
print_user_teams('demo_user_451')
Output:
Teams of user 'demo_user451':
[team_id=22] demo_user451 [role_id=4] viewer