mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-08-22 14:13:40 -07:00
Fix users.py
This commit is contained in:
parent
a58d86b385
commit
2d6e9ad08f
1 changed files with 155 additions and 155 deletions
310
plexpy/users.py
310
plexpy/users.py
|
@ -75,8 +75,8 @@ def refresh_users():
|
||||||
|
|
||||||
# Check if we've set a custom avatar if so don't overwrite it.
|
# Check if we've set a custom avatar if so don't overwrite it.
|
||||||
if keys_dict['user_id']:
|
if keys_dict['user_id']:
|
||||||
avatar_urls = monitor_db.select('SELECT thumb, custom_avatar_url '
|
avatar_urls = monitor_db.select("SELECT thumb, custom_avatar_url "
|
||||||
'FROM users WHERE user_id = ?',
|
"FROM users WHERE user_id = ?",
|
||||||
[keys_dict['user_id']])
|
[keys_dict['user_id']])
|
||||||
if avatar_urls:
|
if avatar_urls:
|
||||||
if not avatar_urls[0]['custom_avatar_url'] or \
|
if not avatar_urls[0]['custom_avatar_url'] or \
|
||||||
|
@ -98,7 +98,7 @@ def refresh_users():
|
||||||
if result == 'insert':
|
if result == 'insert':
|
||||||
new_users.append(item['username'])
|
new_users.append(item['username'])
|
||||||
|
|
||||||
query = 'UPDATE users SET is_active = 0 WHERE user_id NOT IN ({})'.format(', '.join(['?'] * len(user_ids)))
|
query = "UPDATE users SET is_active = 0 WHERE user_id NOT IN ({})".format(", ".join(["?"] * len(user_ids)))
|
||||||
monitor_db.action(query=query, args=user_ids)
|
monitor_db.action(query=query, args=user_ids)
|
||||||
|
|
||||||
# Add new users to loger username filter
|
# Add new users to loger username filter
|
||||||
|
@ -137,43 +137,43 @@ class Users(object):
|
||||||
|
|
||||||
group_by = 'session_history.reference_id' if grouping else 'session_history.id'
|
group_by = 'session_history.reference_id' if grouping else 'session_history.id'
|
||||||
|
|
||||||
columns = ['users.id AS row_id',
|
columns = ["users.id AS row_id",
|
||||||
'users.user_id',
|
"users.user_id",
|
||||||
'users.username',
|
"users.username",
|
||||||
'(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = "" \
|
"(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = '' \
|
||||||
THEN users.username ELSE users.friendly_name END) AS friendly_name',
|
THEN users.username ELSE users.friendly_name END) AS friendly_name",
|
||||||
'users.title',
|
"users.title",
|
||||||
'users.email',
|
"users.email",
|
||||||
'users.thumb AS user_thumb',
|
"users.thumb AS user_thumb",
|
||||||
'users.custom_avatar_url AS custom_thumb',
|
"users.custom_avatar_url AS custom_thumb",
|
||||||
'COUNT(DISTINCT %s) AS plays' % group_by,
|
"COUNT(DISTINCT %s) AS plays" % group_by,
|
||||||
'SUM(CASE WHEN session_history.stopped > 0 THEN (session_history.stopped - session_history.started) \
|
"SUM(CASE WHEN session_history.stopped > 0 THEN (session_history.stopped - session_history.started) \
|
||||||
ELSE 0 END) - SUM(CASE WHEN session_history.paused_counter IS NULL THEN 0 ELSE \
|
ELSE 0 END) - SUM(CASE WHEN session_history.paused_counter IS NULL THEN 0 ELSE \
|
||||||
session_history.paused_counter END) AS duration',
|
session_history.paused_counter END) AS duration",
|
||||||
'MAX(session_history.started) AS last_seen',
|
"MAX(session_history.started) AS last_seen",
|
||||||
'MAX(session_history.id) AS history_row_id',
|
"MAX(session_history.id) AS history_row_id",
|
||||||
'session_history_metadata.full_title AS last_played',
|
"session_history_metadata.full_title AS last_played",
|
||||||
'session_history.ip_address',
|
"session_history.ip_address",
|
||||||
'session_history.platform',
|
"session_history.platform",
|
||||||
'session_history.player',
|
"session_history.player",
|
||||||
'session_history.rating_key',
|
"session_history.rating_key",
|
||||||
'session_history_metadata.media_type',
|
"session_history_metadata.media_type",
|
||||||
'session_history_metadata.thumb',
|
"session_history_metadata.thumb",
|
||||||
'session_history_metadata.parent_thumb',
|
"session_history_metadata.parent_thumb",
|
||||||
'session_history_metadata.grandparent_thumb',
|
"session_history_metadata.grandparent_thumb",
|
||||||
'session_history_metadata.parent_title',
|
"session_history_metadata.parent_title",
|
||||||
'session_history_metadata.year',
|
"session_history_metadata.year",
|
||||||
'session_history_metadata.media_index',
|
"session_history_metadata.media_index",
|
||||||
'session_history_metadata.parent_media_index',
|
"session_history_metadata.parent_media_index",
|
||||||
'session_history_metadata.live',
|
"session_history_metadata.live",
|
||||||
'session_history_metadata.added_at',
|
"session_history_metadata.added_at",
|
||||||
'session_history_metadata.originally_available_at',
|
"session_history_metadata.originally_available_at",
|
||||||
'session_history_metadata.guid',
|
"session_history_metadata.guid",
|
||||||
'session_history_media_info.transcode_decision',
|
"session_history_media_info.transcode_decision",
|
||||||
'users.do_notify AS do_notify',
|
"users.do_notify AS do_notify",
|
||||||
'users.keep_history AS keep_history',
|
"users.keep_history AS keep_history",
|
||||||
'users.allow_guest AS allow_guest',
|
"users.allow_guest AS allow_guest",
|
||||||
'users.is_active AS is_active'
|
"users.is_active AS is_active"
|
||||||
]
|
]
|
||||||
try:
|
try:
|
||||||
query = data_tables.ssp_query(table_name='users',
|
query = data_tables.ssp_query(table_name='users',
|
||||||
|
@ -270,32 +270,32 @@ class Users(object):
|
||||||
|
|
||||||
custom_where = ['users.user_id', user_id]
|
custom_where = ['users.user_id', user_id]
|
||||||
|
|
||||||
columns = ['session_history.id AS history_row_id',
|
columns = ["session_history.id AS history_row_id",
|
||||||
'MIN(session_history.started) AS first_seen',
|
"MIN(session_history.started) AS first_seen",
|
||||||
'MAX(session_history.started) AS last_seen',
|
"MAX(session_history.started) AS last_seen",
|
||||||
'session_history.ip_address',
|
"session_history.ip_address",
|
||||||
'COUNT(session_history.id) AS play_count',
|
"COUNT(session_history.id) AS play_count",
|
||||||
'session_history.platform',
|
"session_history.platform",
|
||||||
'session_history.player',
|
"session_history.player",
|
||||||
'session_history.rating_key',
|
"session_history.rating_key",
|
||||||
'session_history_metadata.full_title AS last_played',
|
"session_history_metadata.full_title AS last_played",
|
||||||
'session_history_metadata.thumb',
|
"session_history_metadata.thumb",
|
||||||
'session_history_metadata.parent_thumb',
|
"session_history_metadata.parent_thumb",
|
||||||
'session_history_metadata.grandparent_thumb',
|
"session_history_metadata.grandparent_thumb",
|
||||||
'session_history_metadata.media_type',
|
"session_history_metadata.media_type",
|
||||||
'session_history_metadata.parent_title',
|
"session_history_metadata.parent_title",
|
||||||
'session_history_metadata.year',
|
"session_history_metadata.year",
|
||||||
'session_history_metadata.media_index',
|
"session_history_metadata.media_index",
|
||||||
'session_history_metadata.parent_media_index',
|
"session_history_metadata.parent_media_index",
|
||||||
'session_history_metadata.live',
|
"session_history_metadata.live",
|
||||||
'session_history_metadata.added_at',
|
"session_history_metadata.added_at",
|
||||||
'session_history_metadata.originally_available_at',
|
"session_history_metadata.originally_available_at",
|
||||||
'session_history_metadata.guid',
|
"session_history_metadata.guid",
|
||||||
'session_history_media_info.transcode_decision',
|
"session_history_media_info.transcode_decision",
|
||||||
'session_history.user',
|
"session_history.user",
|
||||||
'session_history.user_id as custom_user_id',
|
"session_history.user_id as custom_user_id",
|
||||||
'(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = "" \
|
"(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = '' \
|
||||||
THEN users.username ELSE users.friendly_name END) AS friendly_name'
|
THEN users.username ELSE users.friendly_name END) AS friendly_name"
|
||||||
]
|
]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -436,31 +436,31 @@ class Users(object):
|
||||||
last_seen = 'NULL'
|
last_seen = 'NULL'
|
||||||
join = ''
|
join = ''
|
||||||
if include_last_seen:
|
if include_last_seen:
|
||||||
last_seen = 'MAX(session_history.started)'
|
last_seen = "MAX(session_history.started)"
|
||||||
join = 'LEFT OUTER JOIN session_history ON users.user_id = session_history.user_id'
|
join = "LEFT OUTER JOIN session_history ON users.user_id = session_history.user_id"
|
||||||
|
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if str(user_id).isdigit():
|
if str(user_id).isdigit():
|
||||||
where = 'users.user_id = ?'
|
where = "users.user_id = ?"
|
||||||
args = [user_id]
|
args = [user_id]
|
||||||
elif user:
|
elif user:
|
||||||
where = 'users.username = ?'
|
where = "users.username = ?"
|
||||||
args = [user]
|
args = [user]
|
||||||
elif email:
|
elif email:
|
||||||
where = 'users.email = ?'
|
where = "users.email = ?"
|
||||||
args = [email]
|
args = [email]
|
||||||
else:
|
else:
|
||||||
raise Exception('Missing user_id, username, or email')
|
raise Exception("Missing user_id, username, or email")
|
||||||
|
|
||||||
query = 'SELECT users.id AS row_id, users.user_id, username, friendly_name, ' \
|
query = "SELECT users.id AS row_id, users.user_id, username, friendly_name, " \
|
||||||
'thumb AS user_thumb, custom_avatar_url AS custom_thumb, ' \
|
"thumb AS user_thumb, custom_avatar_url AS custom_thumb, " \
|
||||||
'email, is_active, is_admin, is_home_user, is_allow_sync, is_restricted, ' \
|
"email, is_active, is_admin, is_home_user, is_allow_sync, is_restricted, " \
|
||||||
'do_notify, keep_history, deleted_user, ' \
|
"do_notify, keep_history, deleted_user, " \
|
||||||
'allow_guest, shared_libraries, %s AS last_seen ' \
|
"allow_guest, shared_libraries, %s AS last_seen " \
|
||||||
'FROM users %s ' \
|
"FROM users %s " \
|
||||||
'WHERE %s COLLATE NOCASE' % (last_seen, join, where)
|
"WHERE %s COLLATE NOCASE" % (last_seen, join, where)
|
||||||
result = monitor_db.select(query, args=args)
|
result = monitor_db.select(query, args=args)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warn("Tautulli Users :: Unable to execute database query for get_user_details: %s." % e)
|
logger.warn("Tautulli Users :: Unable to execute database query for get_user_details: %s." % e)
|
||||||
|
@ -531,22 +531,22 @@ class Users(object):
|
||||||
try:
|
try:
|
||||||
if days > 0:
|
if days > 0:
|
||||||
if str(user_id).isdigit():
|
if str(user_id).isdigit():
|
||||||
query = 'SELECT (SUM(stopped - started) - ' \
|
query = "SELECT (SUM(stopped - started) - " \
|
||||||
' SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END)) AS total_time, ' \
|
" SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END)) AS total_time, " \
|
||||||
'COUNT(DISTINCT %s) AS total_plays ' \
|
"COUNT(DISTINCT %s) AS total_plays " \
|
||||||
'FROM session_history ' \
|
"FROM session_history " \
|
||||||
'WHERE stopped >= %s ' \
|
"WHERE stopped >= %s " \
|
||||||
'AND user_id = ? ' % (group_by, timestamp_query)
|
"AND user_id = ? " % (group_by, timestamp_query)
|
||||||
result = monitor_db.select(query, args=[user_id])
|
result = monitor_db.select(query, args=[user_id])
|
||||||
else:
|
else:
|
||||||
result = []
|
result = []
|
||||||
else:
|
else:
|
||||||
if str(user_id).isdigit():
|
if str(user_id).isdigit():
|
||||||
query = 'SELECT (SUM(stopped - started) - ' \
|
query = "SELECT (SUM(stopped - started) - " \
|
||||||
' SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END)) AS total_time, ' \
|
" SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END)) AS total_time, " \
|
||||||
'COUNT(DISTINCT %s) AS total_plays ' \
|
"COUNT(DISTINCT %s) AS total_plays " \
|
||||||
'FROM session_history ' \
|
"FROM session_history " \
|
||||||
'WHERE user_id = ? ' % group_by
|
"WHERE user_id = ? " % group_by
|
||||||
result = monitor_db.select(query, args=[user_id])
|
result = monitor_db.select(query, args=[user_id])
|
||||||
else:
|
else:
|
||||||
result = []
|
result = []
|
||||||
|
@ -587,13 +587,13 @@ class Users(object):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if str(user_id).isdigit():
|
if str(user_id).isdigit():
|
||||||
query = 'SELECT player, COUNT(DISTINCT %s) as total_plays, (SUM(stopped - started) - ' \
|
query = "SELECT player, COUNT(DISTINCT %s) as total_plays, (SUM(stopped - started) - " \
|
||||||
'SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END)) AS total_time, ' \
|
"SUM(CASE WHEN paused_counter IS NULL THEN 0 ELSE paused_counter END)) AS total_time, " \
|
||||||
'platform ' \
|
"platform " \
|
||||||
'FROM session_history ' \
|
"FROM session_history " \
|
||||||
'WHERE user_id = ? ' \
|
"WHERE user_id = ? " \
|
||||||
'GROUP BY player ' \
|
"GROUP BY player " \
|
||||||
'ORDER BY total_plays DESC, total_time DESC' % group_by
|
"ORDER BY total_plays DESC, total_time DESC" % group_by
|
||||||
result = monitor_db.select(query, args=[user_id])
|
result = monitor_db.select(query, args=[user_id])
|
||||||
else:
|
else:
|
||||||
result = []
|
result = []
|
||||||
|
@ -630,17 +630,17 @@ class Users(object):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if str(user_id).isdigit():
|
if str(user_id).isdigit():
|
||||||
query = 'SELECT session_history.id, session_history.media_type, guid, ' \
|
query = "SELECT session_history.id, session_history.media_type, guid, " \
|
||||||
'session_history.rating_key, session_history.parent_rating_key, session_history.grandparent_rating_key, ' \
|
"session_history.rating_key, session_history.parent_rating_key, session_history.grandparent_rating_key, " \
|
||||||
'title, parent_title, grandparent_title, original_title, ' \
|
"title, parent_title, grandparent_title, original_title, " \
|
||||||
'thumb, parent_thumb, grandparent_thumb, media_index, parent_media_index, ' \
|
"thumb, parent_thumb, grandparent_thumb, media_index, parent_media_index, " \
|
||||||
'year, originally_available_at, added_at, live, started, user ' \
|
"year, originally_available_at, added_at, live, started, user " \
|
||||||
'FROM session_history_metadata ' \
|
"FROM session_history_metadata " \
|
||||||
'JOIN session_history ON session_history_metadata.id = session_history.id ' \
|
"JOIN session_history ON session_history_metadata.id = session_history.id " \
|
||||||
'WHERE user_id = ? ' \
|
"WHERE user_id = ? " \
|
||||||
'GROUP BY (CASE WHEN session_history.media_type = "track" THEN session_history.parent_rating_key ' \
|
"GROUP BY (CASE WHEN session_history.media_type = 'track' THEN session_history.parent_rating_key " \
|
||||||
' ELSE session_history.rating_key END) ' \
|
" ELSE session_history.rating_key END) " \
|
||||||
'ORDER BY MAX(started) DESC LIMIT ?'
|
"ORDER BY MAX(started) DESC LIMIT ?"
|
||||||
result = monitor_db.select(query, args=[user_id, limit])
|
result = monitor_db.select(query, args=[user_id, limit])
|
||||||
else:
|
else:
|
||||||
result = []
|
result = []
|
||||||
|
@ -683,11 +683,11 @@ class Users(object):
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
query = 'SELECT id AS row_id, user_id, username, friendly_name, thumb, custom_avatar_url, email, ' \
|
query = "SELECT id AS row_id, user_id, username, friendly_name, thumb, custom_avatar_url, email, " \
|
||||||
'is_active, is_admin, is_home_user, is_allow_sync, is_restricted, ' \
|
"is_active, is_admin, is_home_user, is_allow_sync, is_restricted, " \
|
||||||
'do_notify, keep_history, allow_guest, shared_libraries, ' \
|
"do_notify, keep_history, allow_guest, shared_libraries, " \
|
||||||
'filter_all, filter_movies, filter_tv, filter_music, filter_photos ' \
|
"filter_all, filter_movies, filter_tv, filter_music, filter_photos " \
|
||||||
'FROM users WHERE deleted_user = 0'
|
"FROM users WHERE deleted_user = 0"
|
||||||
result = monitor_db.select(query=query)
|
result = monitor_db.select(query=query)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warn("Tautulli Users :: Unable to execute database query for get_users: %s." % e)
|
logger.warn("Tautulli Users :: Unable to execute database query for get_users: %s." % e)
|
||||||
|
@ -729,8 +729,8 @@ class Users(object):
|
||||||
row_ids = list(map(helpers.cast_to_int, row_ids.split(',')))
|
row_ids = list(map(helpers.cast_to_int, row_ids.split(',')))
|
||||||
|
|
||||||
# Get the user_ids corresponding to the row_ids
|
# Get the user_ids corresponding to the row_ids
|
||||||
result = monitor_db.select('SELECT user_id FROM users '
|
result = monitor_db.select("SELECT user_id FROM users "
|
||||||
'WHERE id IN ({})'.format(','.join(['?'] * len(row_ids))), row_ids)
|
"WHERE id IN ({})".format(",".join(["?"] * len(row_ids))), row_ids)
|
||||||
|
|
||||||
success = []
|
success = []
|
||||||
for user in result:
|
for user in result:
|
||||||
|
@ -747,9 +747,9 @@ class Users(object):
|
||||||
logger.info("Tautulli Users :: Deleting user with user_id %s from database."
|
logger.info("Tautulli Users :: Deleting user with user_id %s from database."
|
||||||
% user_id)
|
% user_id)
|
||||||
try:
|
try:
|
||||||
monitor_db.action('UPDATE users '
|
monitor_db.action("UPDATE users "
|
||||||
'SET deleted_user = 1, keep_history = 0, do_notify = 0 '
|
"SET deleted_user = 1, keep_history = 0, do_notify = 0 "
|
||||||
'WHERE user_id = ?', [user_id])
|
"WHERE user_id = ?", [user_id])
|
||||||
return delete_success
|
return delete_success
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warn("Tautulli Users :: Unable to execute database query for delete: %s." % e)
|
logger.warn("Tautulli Users :: Unable to execute database query for delete: %s." % e)
|
||||||
|
@ -762,25 +762,25 @@ class Users(object):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if user_id and str(user_id).isdigit():
|
if user_id and str(user_id).isdigit():
|
||||||
query = 'SELECT * FROM users WHERE user_id = ?'
|
query = "SELECT * FROM users WHERE user_id = ?"
|
||||||
result = monitor_db.select(query=query, args=[user_id])
|
result = monitor_db.select(query=query, args=[user_id])
|
||||||
if result:
|
if result:
|
||||||
logger.info("Tautulli Users :: Re-adding user with id %s to database." % user_id)
|
logger.info("Tautulli Users :: Re-adding user with id %s to database." % user_id)
|
||||||
monitor_db.action('UPDATE users '
|
monitor_db.action("UPDATE users "
|
||||||
'SET deleted_user = 0, keep_history = 1, do_notify = 1 '
|
"SET deleted_user = 0, keep_history = 1, do_notify = 1 "
|
||||||
'WHERE user_id = ?', [user_id])
|
"WHERE user_id = ?", [user_id])
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
elif username:
|
elif username:
|
||||||
query = 'SELECT * FROM users WHERE username = ?'
|
query = "SELECT * FROM users WHERE username = ?"
|
||||||
result = monitor_db.select(query=query, args=[username])
|
result = monitor_db.select(query=query, args=[username])
|
||||||
if result:
|
if result:
|
||||||
logger.info("Tautulli Users :: Re-adding user with username %s to database." % username)
|
logger.info("Tautulli Users :: Re-adding user with username %s to database." % username)
|
||||||
monitor_db.action('UPDATE users '
|
monitor_db.action("UPDATE users "
|
||||||
'SET deleted_user = 0, keep_history = 1, do_notify = 1 '
|
"SET deleted_user = 0, keep_history = 1, do_notify = 1 "
|
||||||
'WHERE username = ?', [username])
|
"WHERE username = ?", [username])
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
@ -793,7 +793,7 @@ class Users(object):
|
||||||
if user:
|
if user:
|
||||||
try:
|
try:
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
query = 'SELECT user_id FROM users WHERE username = ?'
|
query = "SELECT user_id FROM users WHERE username = ?"
|
||||||
result = monitor_db.select_single(query, args=[user])
|
result = monitor_db.select_single(query, args=[user])
|
||||||
if result:
|
if result:
|
||||||
return result['user_id']
|
return result['user_id']
|
||||||
|
@ -809,14 +809,14 @@ class Users(object):
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id():
|
||||||
user_cond = 'AND user_id = %s ' % session.get_session_user_id()
|
user_cond = "AND user_id = %s " % session.get_session_user_id()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
query = 'SELECT user_id, ' \
|
query = "SELECT user_id, " \
|
||||||
'(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = "" \
|
"(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = '' \
|
||||||
THEN users.username ELSE users.friendly_name END) AS friendly_name ' \
|
THEN users.username ELSE users.friendly_name END) AS friendly_name " \
|
||||||
'FROM users ' \
|
"FROM users " \
|
||||||
'WHERE deleted_user = 0 %s' % user_cond
|
"WHERE deleted_user = 0 %s" % user_cond
|
||||||
|
|
||||||
result = monitor_db.select(query)
|
result = monitor_db.select(query)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -835,8 +835,8 @@ class Users(object):
|
||||||
if user_id:
|
if user_id:
|
||||||
try:
|
try:
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
query = 'SELECT allow_guest, user_token, server_token FROM users ' \
|
query = "SELECT allow_guest, user_token, server_token FROM users " \
|
||||||
'WHERE user_id = ? AND deleted_user = 0'
|
"WHERE user_id = ? AND deleted_user = 0"
|
||||||
result = monitor_db.select_single(query, args=[user_id])
|
result = monitor_db.select_single(query, args=[user_id])
|
||||||
if result:
|
if result:
|
||||||
tokens = {'allow_guest': result['allow_guest'],
|
tokens = {'allow_guest': result['allow_guest'],
|
||||||
|
@ -857,8 +857,8 @@ class Users(object):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
query = 'SELECT filter_all, filter_movies, filter_tv, filter_music, filter_photos FROM users ' \
|
query = "SELECT filter_all, filter_movies, filter_tv, filter_music, filter_photos FROM users " \
|
||||||
'WHERE user_id = ?'
|
"WHERE user_id = ?"
|
||||||
result = monitor_db.select_single(query, args=[user_id])
|
result = monitor_db.select_single(query, args=[user_id])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.warn("Tautulli Users :: Unable to execute database query for get_filters: %s." % e)
|
logger.warn("Tautulli Users :: Unable to execute database query for get_filters: %s." % e)
|
||||||
|
@ -907,8 +907,8 @@ class Users(object):
|
||||||
|
|
||||||
def get_user_login(self, jwt_token):
|
def get_user_login(self, jwt_token):
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
result = monitor_db.select_single('SELECT * FROM user_login '
|
result = monitor_db.select_single("SELECT * FROM user_login "
|
||||||
'WHERE jwt_token = ?',
|
"WHERE jwt_token = ?",
|
||||||
[jwt_token])
|
[jwt_token])
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -918,8 +918,8 @@ class Users(object):
|
||||||
if jwt_token:
|
if jwt_token:
|
||||||
logger.debug("Tautulli Users :: Clearing user JWT token.")
|
logger.debug("Tautulli Users :: Clearing user JWT token.")
|
||||||
try:
|
try:
|
||||||
monitor_db.action('UPDATE user_login SET jwt_token = NULL '
|
monitor_db.action("UPDATE user_login SET jwt_token = NULL "
|
||||||
'WHERE jwt_token = ?',
|
"WHERE jwt_token = ?",
|
||||||
[jwt_token])
|
[jwt_token])
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Tautulli Users :: Unable to clear user JWT token: %s.", e)
|
logger.error("Tautulli Users :: Unable to clear user JWT token: %s.", e)
|
||||||
|
@ -929,8 +929,8 @@ class Users(object):
|
||||||
row_ids = list(map(helpers.cast_to_int, row_ids.split(',')))
|
row_ids = list(map(helpers.cast_to_int, row_ids.split(',')))
|
||||||
logger.debug("Tautulli Users :: Clearing JWT tokens for row_ids %s.", row_ids)
|
logger.debug("Tautulli Users :: Clearing JWT tokens for row_ids %s.", row_ids)
|
||||||
try:
|
try:
|
||||||
monitor_db.action('UPDATE user_login SET jwt_token = NULL '
|
monitor_db.action("UPDATE user_login SET jwt_token = NULL "
|
||||||
'WHERE id in ({})'.format(','.join(['?'] * len(row_ids))),
|
"WHERE id in ({})".format(",".join(["?"] * len(row_ids))),
|
||||||
row_ids)
|
row_ids)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Tautulli Users :: Unable to clear JWT tokens: %s.", e)
|
logger.error("Tautulli Users :: Unable to clear JWT tokens: %s.", e)
|
||||||
|
@ -954,19 +954,19 @@ class Users(object):
|
||||||
else:
|
else:
|
||||||
custom_where = [['user_login.user_id', user_id]] if user_id else []
|
custom_where = [['user_login.user_id', user_id]] if user_id else []
|
||||||
|
|
||||||
columns = ['user_login.id AS row_id',
|
columns = ["user_login.id AS row_id",
|
||||||
'user_login.timestamp',
|
"user_login.timestamp",
|
||||||
'user_login.user_id',
|
"user_login.user_id",
|
||||||
'user_login.user',
|
"user_login.user",
|
||||||
'user_login.user_group',
|
"user_login.user_group",
|
||||||
'user_login.ip_address',
|
"user_login.ip_address",
|
||||||
'user_login.host',
|
"user_login.host",
|
||||||
'user_login.user_agent',
|
"user_login.user_agent",
|
||||||
'user_login.success',
|
"user_login.success",
|
||||||
'user_login.expiry',
|
"user_login.expiry",
|
||||||
'user_login.jwt_token',
|
"user_login.jwt_token",
|
||||||
'(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = "" \
|
"(CASE WHEN users.friendly_name IS NULL OR TRIM(users.friendly_name) = '' \
|
||||||
THEN users.username ELSE users.friendly_name END) AS friendly_name'
|
THEN users.username ELSE users.friendly_name END) AS friendly_name"
|
||||||
]
|
]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue