mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-16 02:02:58 -07:00
Fix login logs for Plex admin user
This commit is contained in:
parent
ce9f96d3be
commit
c9c5989474
6 changed files with 20 additions and 14 deletions
|
@ -163,7 +163,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
var media_type = null;
|
var media_type = null;
|
||||||
var selected_user_id = "${_session['user_id']}" == "None" ? null : "${_session['user_id']}";
|
var selected_user_id = "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}";
|
||||||
loadHistoryTable(media_type, selected_user_id);
|
loadHistoryTable(media_type, selected_user_id);
|
||||||
|
|
||||||
% if _session['user_group'] == 'admin':
|
% if _session['user_group'] == 'admin':
|
||||||
|
|
|
@ -552,7 +552,7 @@ DOCUMENTATION :: END
|
||||||
return {
|
return {
|
||||||
json_data: JSON.stringify( d ),
|
json_data: JSON.stringify( d ),
|
||||||
grandparent_rating_key: "${data['rating_key']}",
|
grandparent_rating_key: "${data['rating_key']}",
|
||||||
user_id: "${_session['user_id']}" == "None" ? null : "${_session['user_id']}"
|
user_id: "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -568,7 +568,7 @@ DOCUMENTATION :: END
|
||||||
return {
|
return {
|
||||||
json_data: JSON.stringify( d ),
|
json_data: JSON.stringify( d ),
|
||||||
parent_rating_key: "${data['rating_key']}",
|
parent_rating_key: "${data['rating_key']}",
|
||||||
user_id: "${_session['user_id']}" == "None" ? null : "${_session['user_id']}"
|
user_id: "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -584,7 +584,7 @@ DOCUMENTATION :: END
|
||||||
return {
|
return {
|
||||||
json_data: JSON.stringify( d ),
|
json_data: JSON.stringify( d ),
|
||||||
rating_key: "${data['rating_key']}",
|
rating_key: "${data['rating_key']}",
|
||||||
user_id: "${_session['user_id']}" == "None" ? null : "${_session['user_id']}"
|
user_id: "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -379,7 +379,7 @@ DOCUMENTATION :: END
|
||||||
return {
|
return {
|
||||||
json_data: JSON.stringify( d ),
|
json_data: JSON.stringify( d ),
|
||||||
section_id: section_id,
|
section_id: section_id,
|
||||||
user_id: "${_session['user_id']}" == "None" ? null : "${_session['user_id']}"
|
user_id: "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -134,7 +134,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
var selected_user_id = "${_session['user_id']}" == "None" ? null : "${_session['user_id']}";
|
var selected_user_id = "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}";
|
||||||
loadSyncTable(selected_user_id);
|
loadSyncTable(selected_user_id);
|
||||||
|
|
||||||
% if _session['user_group'] == 'admin':
|
% if _session['user_group'] == 'admin':
|
||||||
|
|
|
@ -38,14 +38,14 @@ def get_session_user():
|
||||||
Returns the user_id for the current logged in session
|
Returns the user_id for the current logged in session
|
||||||
"""
|
"""
|
||||||
_session = get_session_info()
|
_session = get_session_info()
|
||||||
return _session['user'] if _session and _session['user'] else None
|
return _session['user'] if _session['user_group'] == 'guest' and _session['user'] else None
|
||||||
|
|
||||||
def get_session_user_id():
|
def get_session_user_id():
|
||||||
"""
|
"""
|
||||||
Returns the user_id for the current logged in session
|
Returns the user_id for the current logged in session
|
||||||
"""
|
"""
|
||||||
_session = get_session_info()
|
_session = get_session_info()
|
||||||
return str(_session['user_id']) if _session and _session['user_id'] else None
|
return str(_session['user_id']) if _session['user_group'] == 'guest' and _session['user_id'] else None
|
||||||
|
|
||||||
def get_session_shared_libraries():
|
def get_session_shared_libraries():
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -106,10 +106,10 @@ def check_credentials(username, password, admin_login='0'):
|
||||||
if plexpy.CONFIG.HTTP_PASSWORD:
|
if plexpy.CONFIG.HTTP_PASSWORD:
|
||||||
if plexpy.CONFIG.HTTP_HASHED_PASSWORD and \
|
if plexpy.CONFIG.HTTP_HASHED_PASSWORD and \
|
||||||
username == plexpy.CONFIG.HTTP_USERNAME and check_hash(password, plexpy.CONFIG.HTTP_PASSWORD):
|
username == plexpy.CONFIG.HTTP_USERNAME and check_hash(password, plexpy.CONFIG.HTTP_PASSWORD):
|
||||||
return True, 'admin'
|
return True, 'tautulli admin'
|
||||||
elif not plexpy.CONFIG.HTTP_HASHED_PASSWORD and \
|
elif not plexpy.CONFIG.HTTP_HASHED_PASSWORD and \
|
||||||
username == plexpy.CONFIG.HTTP_USERNAME and password == plexpy.CONFIG.HTTP_PASSWORD:
|
username == plexpy.CONFIG.HTTP_USERNAME and password == plexpy.CONFIG.HTTP_PASSWORD:
|
||||||
return True, 'admin'
|
return True, 'tautulli admin'
|
||||||
|
|
||||||
if plexpy.CONFIG.HTTP_PLEX_ADMIN or (not admin_login == '1' and plexpy.CONFIG.ALLOW_GUEST_ACCESS):
|
if plexpy.CONFIG.HTTP_PLEX_ADMIN or (not admin_login == '1' and plexpy.CONFIG.ALLOW_GUEST_ACCESS):
|
||||||
plex_login = user_login(username, password)
|
plex_login = user_login(username, password)
|
||||||
|
@ -220,7 +220,12 @@ class AuthController(object):
|
||||||
|
|
||||||
# Save login to the database
|
# Save login to the database
|
||||||
ip_address = cherrypy.request.headers.get('X-Forwarded-For', cherrypy.request.headers.get('Remote-Addr'))
|
ip_address = cherrypy.request.headers.get('X-Forwarded-For', cherrypy.request.headers.get('Remote-Addr'))
|
||||||
host = cherrypy.request.headers.get('Host', cherrypy.request.headers.get('Origin'))
|
host = None #cherrypy.request.headers.get('Origin')
|
||||||
|
if not host:
|
||||||
|
scheme = cherrypy.request.headers.get('X-Forwarded-Proto', 'http')
|
||||||
|
address = cherrypy.request.headers.get('X-Forwarded-Host', cherrypy.request.headers.get('Host'))
|
||||||
|
host = "{}://{}".format(scheme, address)
|
||||||
|
|
||||||
user_agent = cherrypy.request.headers.get('User-Agent')
|
user_agent = cherrypy.request.headers.get('User-Agent')
|
||||||
|
|
||||||
Users().set_user_login(user_id=user_id,
|
Users().set_user_login(user_id=user_id,
|
||||||
|
@ -293,15 +298,16 @@ class AuthController(object):
|
||||||
valid_login, user_group = check_credentials(username, password, admin_login)
|
valid_login, user_group = check_credentials(username, password, admin_login)
|
||||||
|
|
||||||
if valid_login:
|
if valid_login:
|
||||||
if user_group == 'guest':
|
if user_group == 'tautulli admin':
|
||||||
|
user_group = 'admin'
|
||||||
|
user_id = None
|
||||||
|
else:
|
||||||
if re.match(r"[^@]+@[^@]+\.[^@]+", username):
|
if re.match(r"[^@]+@[^@]+\.[^@]+", username):
|
||||||
user_details = Users().get_details(email=username)
|
user_details = Users().get_details(email=username)
|
||||||
else:
|
else:
|
||||||
user_details = Users().get_details(user=username)
|
user_details = Users().get_details(user=username)
|
||||||
|
|
||||||
user_id = user_details['user_id']
|
user_id = user_details['user_id']
|
||||||
else:
|
|
||||||
user_id = None
|
|
||||||
|
|
||||||
time_delta = timedelta(days=30) if remember_me == '1' else timedelta(minutes=60)
|
time_delta = timedelta(days=30) if remember_me == '1' else timedelta(minutes=60)
|
||||||
expiry = datetime.utcnow() + time_delta
|
expiry = datetime.utcnow() + time_delta
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue