mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-07 13:41:15 -07:00
Allow "All Users" in graphs for guests
This commit is contained in:
parent
68d124ff04
commit
3da8cc1e7f
5 changed files with 27 additions and 18 deletions
|
@ -12,7 +12,6 @@
|
||||||
<span><i class="fa fa-bar-chart"></i> Graphs</span>
|
<span><i class="fa fa-bar-chart"></i> Graphs</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="button-bar hidden-xs">
|
<div class="button-bar hidden-xs">
|
||||||
% if _session['user_group'] == 'admin':
|
|
||||||
<div class="btn-group" id="user-selection">
|
<div class="btn-group" id="user-selection">
|
||||||
<label>
|
<label>
|
||||||
<select name="graph-user" id="graph-user" class="btn" style="color: inherit;">
|
<select name="graph-user" id="graph-user" class="btn" style="color: inherit;">
|
||||||
|
@ -21,7 +20,6 @@
|
||||||
</select>
|
</select>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
% endif
|
|
||||||
<div class="btn-group" data-toggle="buttons" id="yaxis-selection">
|
<div class="btn-group" data-toggle="buttons" id="yaxis-selection">
|
||||||
% if config['graph_type'] == 'duration':
|
% if config['graph_type'] == 'duration':
|
||||||
<label class="btn btn-dark">
|
<label class="btn btn-dark">
|
||||||
|
@ -258,7 +256,7 @@
|
||||||
<script src="${http_root}js/dataTables.bootstrap.pagination.js"></script>
|
<script src="${http_root}js/dataTables.bootstrap.pagination.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
var selected_user_id = "${_session['user_id']}" == "None" ? null : "${_session['user_id']}"
|
var selected_user_id = null
|
||||||
|
|
||||||
// Modal popup dialog
|
// Modal popup dialog
|
||||||
function selectHandler(selectedDate, selectedSeries) {
|
function selectHandler(selectedDate, selectedSeries) {
|
||||||
|
|
|
@ -29,6 +29,9 @@ class DataFactory(object):
|
||||||
def get_datatables_history(self, kwargs=None, custom_where=None, grouping=0, watched_percent=85):
|
def get_datatables_history(self, kwargs=None, custom_where=None, grouping=0, watched_percent=85):
|
||||||
data_tables = datatables.DataTables()
|
data_tables = datatables.DataTables()
|
||||||
|
|
||||||
|
if custom_where is None:
|
||||||
|
custon_where = []
|
||||||
|
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id():
|
||||||
session_user_id = str(session.get_session_user_id())
|
session_user_id = str(session.get_session_user_id())
|
||||||
added = False
|
added = False
|
||||||
|
@ -44,7 +47,7 @@ class DataFactory(object):
|
||||||
added = True
|
added = True
|
||||||
|
|
||||||
if not added:
|
if not added:
|
||||||
custom_where = [['session_history.user_id', session.get_session_user_id()]]
|
custom_where.append(['session_history.user_id', session.get_session_user_id()])
|
||||||
|
|
||||||
group_by = ['session_history.reference_id'] if grouping else ['session_history.id']
|
group_by = ['session_history.reference_id'] if grouping else ['session_history.id']
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -115,7 +115,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -212,7 +212,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -294,7 +294,7 @@ class Graphs(object):
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -382,7 +382,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -451,7 +451,9 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if user_id and user_id.isdigit() and not session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
@ -529,7 +531,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -627,7 +629,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -708,7 +710,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -809,7 +811,7 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
elif user_id and user_id.isdigit():
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
@ -890,7 +892,9 @@ class Graphs(object):
|
||||||
time_range = '30'
|
time_range = '30'
|
||||||
|
|
||||||
user_cond = ''
|
user_cond = ''
|
||||||
if user_id and user_id.isdigit() and not session.get_session_user_id():
|
if session.get_session_user_id() and user_id and user_id != str(session.get_session_user_id()):
|
||||||
|
user_cond = 'AND session_history.user_id = %s ' % session.get_session_user_id()
|
||||||
|
elif user_id and user_id.isdigit():
|
||||||
user_cond = 'AND session_history.user_id = %s ' % user_id
|
user_cond = 'AND session_history.user_id = %s ' % user_id
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -599,19 +599,23 @@ class Users(object):
|
||||||
def get_user_names(self, kwargs=None):
|
def get_user_names(self, kwargs=None):
|
||||||
monitor_db = database.MonitorDatabase()
|
monitor_db = database.MonitorDatabase()
|
||||||
|
|
||||||
|
user_cond = ''
|
||||||
|
if 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'
|
'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:
|
||||||
logger.warn(u"PlexPy Users :: Unable to execute database query for get_user_names: %s." % e)
|
logger.warn(u"PlexPy Users :: Unable to execute database query for get_user_names: %s." % e)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return result
|
return session.friendly_name_to_username(result)
|
||||||
|
|
||||||
def get_tokens(self, user_id=None):
|
def get_tokens(self, user_id=None):
|
||||||
if user_id:
|
if user_id:
|
||||||
|
|
|
@ -942,7 +942,7 @@ class WebInterface(object):
|
||||||
return "Updated graphs config values."
|
return "Updated graphs config values."
|
||||||
|
|
||||||
@cherrypy.expose
|
@cherrypy.expose
|
||||||
@requireAuth(member_of("admin"))
|
@requireAuth()
|
||||||
@addtoapi()
|
@addtoapi()
|
||||||
def get_user_names(self, **kwargs):
|
def get_user_names(self, **kwargs):
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue