Fix login logs for Plex admin user

This commit is contained in:
JonnyWong16 2018-03-13 09:08:09 -07:00
parent ce9f96d3be
commit c9c5989474
6 changed files with 20 additions and 14 deletions

View file

@ -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':

View file

@ -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']}"
}; };
} }
} }

View file

@ -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']}"
}; };
} }
}; };

View file

@ -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':

View file

@ -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():
""" """

View file

@ -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