mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-10-14 12:52:04 +00:00
Add user to session non-interactively
Allows to add/remove a user to/from a session through an API call.
This commit is contained in:
parent
198447cb85
commit
fc4f510ab1
1 changed files with 22 additions and 11 deletions
|
@ -132,7 +132,7 @@ class Events(object):
|
||||||
elif mode == 'settings':
|
elif mode == 'settings':
|
||||||
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.jellyfin)')
|
xbmc.executebuiltin('Addon.OpenSettings(plugin.video.jellyfin)')
|
||||||
elif mode == 'adduser':
|
elif mode == 'adduser':
|
||||||
add_user(api_client)
|
add_user(api_client, params)
|
||||||
elif mode == 'updatepassword':
|
elif mode == 'updatepassword':
|
||||||
event('UpdatePassword')
|
event('UpdatePassword')
|
||||||
elif mode == 'thememedia':
|
elif mode == 'thememedia':
|
||||||
|
@ -751,7 +751,7 @@ def create_listitem(item):
|
||||||
return li
|
return li
|
||||||
|
|
||||||
|
|
||||||
def add_user(api_client):
|
def add_user(api_client, params: dict):
|
||||||
|
|
||||||
''' Add or remove users from the default server session.
|
''' Add or remove users from the default server session.
|
||||||
'''
|
'''
|
||||||
|
@ -762,27 +762,38 @@ def add_user(api_client):
|
||||||
users = api_client.get_users()
|
users = api_client.get_users()
|
||||||
current = session[0]['AdditionalUsers']
|
current = session[0]['AdditionalUsers']
|
||||||
|
|
||||||
result = dialog("select", translate(33061), [translate(33062), translate(33063)] if current else [translate(33062)])
|
if params.get('remove'):
|
||||||
|
result = True
|
||||||
|
elif params.get('add'):
|
||||||
|
result = False
|
||||||
|
else:
|
||||||
|
result = dialog("select", translate(33061), [translate(33062), translate(33063)] if current else [translate(33062)])
|
||||||
|
|
||||||
if result < 0:
|
if result < 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
if not result: # Add user
|
if not result: # Add user
|
||||||
eligible = [x for x in users if x['Id'] not in [current_user['UserId'] for current_user in current]]
|
eligible = [x for x in users if x['Id'] not in [current_user['UserId'] for current_user in current]]
|
||||||
resp = dialog("select", translate(33064), [x['Name'] for x in eligible])
|
if params.get('add'):
|
||||||
|
user = [x for x in current if x['UserName'] == params.get('add')][0]
|
||||||
|
else:
|
||||||
|
resp = dialog("select", translate(33064), [x['Name'] for x in eligible])
|
||||||
|
|
||||||
if resp < 0:
|
if resp < 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
user = eligible[resp]
|
user = eligible[resp]
|
||||||
event('AddUser', {'Id': user['Id'], 'Add': True})
|
event('AddUser', {'Id': user['Id'], 'Add': True})
|
||||||
else: # Remove user
|
else: # Remove user
|
||||||
resp = dialog("select", translate(33064), [x['UserName'] for x in current])
|
if params.get('remove'):
|
||||||
|
user = [x for x in current if x['UserName'] == params.get('remove')][0]
|
||||||
|
else:
|
||||||
|
resp = dialog("select", translate(33064), [x['UserName'] for x in current])
|
||||||
|
|
||||||
if resp < 0:
|
if resp < 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
user = current[resp]
|
user = current[resp]
|
||||||
event('AddUser', {'Id': user['UserId'], 'Add': False})
|
event('AddUser', {'Id': user['UserId'], 'Add': False})
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue