diff --git a/data/interfaces/default/history.html b/data/interfaces/default/history.html
index 3dd92650..c34cf652 100644
--- a/data/interfaces/default/history.html
+++ b/data/interfaces/default/history.html
@@ -163,7 +163,7 @@
}
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);
% if _session['user_group'] == 'admin':
diff --git a/data/interfaces/default/info.html b/data/interfaces/default/info.html
index ef653a47..93632bcc 100644
--- a/data/interfaces/default/info.html
+++ b/data/interfaces/default/info.html
@@ -552,7 +552,7 @@ DOCUMENTATION :: END
return {
json_data: JSON.stringify( d ),
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 {
json_data: JSON.stringify( d ),
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 {
json_data: JSON.stringify( d ),
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']}"
};
}
}
diff --git a/data/interfaces/default/library.html b/data/interfaces/default/library.html
index 97c5ea14..7d2b6481 100644
--- a/data/interfaces/default/library.html
+++ b/data/interfaces/default/library.html
@@ -379,7 +379,7 @@ DOCUMENTATION :: END
return {
json_data: JSON.stringify( d ),
section_id: section_id,
- user_id: "${_session['user_id']}" == "None" ? null : "${_session['user_id']}"
+ user_id: "${_session['user_group']}" == "admin" ? null : "${_session['user_id']}"
};
}
};
diff --git a/data/interfaces/default/sync.html b/data/interfaces/default/sync.html
index 952e4ca6..3197b01b 100644
--- a/data/interfaces/default/sync.html
+++ b/data/interfaces/default/sync.html
@@ -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);
% if _session['user_group'] == 'admin':
diff --git a/plexpy/session.py b/plexpy/session.py
index 4fe0d014..a3c150f1 100644
--- a/plexpy/session.py
+++ b/plexpy/session.py
@@ -38,14 +38,14 @@ def get_session_user():
Returns the user_id for the current logged in session
"""
_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():
"""
Returns the user_id for the current logged in session
"""
_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():
"""
diff --git a/plexpy/webauth.py b/plexpy/webauth.py
index 4d3bb5c8..adaef3d7 100644
--- a/plexpy/webauth.py
+++ b/plexpy/webauth.py
@@ -106,10 +106,10 @@ def check_credentials(username, password, admin_login='0'):
if plexpy.CONFIG.HTTP_PASSWORD:
if plexpy.CONFIG.HTTP_HASHED_PASSWORD and \
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 \
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):
plex_login = user_login(username, password)
@@ -220,7 +220,12 @@ class AuthController(object):
# Save login to the database
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')
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)
if valid_login:
- if user_group == 'guest':
+ if user_group == 'tautulli admin':
+ user_group = 'admin'
+ user_id = None
+ else:
if re.match(r"[^@]+@[^@]+\.[^@]+", username):
user_details = Users().get_details(email=username)
else:
user_details = Users().get_details(user=username)
user_id = user_details['user_id']
- else:
- user_id = None
time_delta = timedelta(days=30) if remember_me == '1' else timedelta(minutes=60)
expiry = datetime.utcnow() + time_delta