diff --git a/crow/include/crow/routing.h b/crow/include/crow/routing.h
index c97c874..0be5dbd 100644
--- a/crow/include/crow/routing.h
+++ b/crow/include/crow/routing.h
@@ -1234,7 +1234,9 @@
         if (req.session != nullptr)
         {
             // Get the user role from the session.
-            const std::string& userRole = req.session->userRole;
+            const std::string& userRole =
+                persistent_data::UserRoleMap::getInstance().getUserRole(
+                    req.session->username);
 
             BMCWEB_LOG_DEBUG << "USER ROLE=" << userRole;
 
diff --git a/include/sessions.hpp b/include/sessions.hpp
index c7c92ce..2900cd5 100644
--- a/include/sessions.hpp
+++ b/include/sessions.hpp
@@ -29,8 +29,6 @@
 constexpr char const* userAttrIface = "xyz.openbmc_project.User.Attributes";
 constexpr char const* dbusPropertiesIface = "org.freedesktop.DBus.Properties";
 
-class SessionStore;
-
 struct UserRoleMap
 {
     using GetManagedPropertyType =
@@ -275,7 +273,6 @@
     std::string uniqueId;
     std::string sessionToken;
     std::string username;
-    std::string userRole;
     std::string csrfToken;
     std::chrono::time_point<std::chrono::steady_clock> lastUpdated;
     PersistenceType persistence;
@@ -385,13 +382,8 @@
             uniqueId[i] = alphanum[dist(rd)];
         }
 
-        // Get the User Privilege
-        const std::string& role =
-            UserRoleMap::getInstance().getUserRole(username);
-
-        BMCWEB_LOG_DEBUG << "user name=\"" << username << "\" role = " << role;
         auto session = std::make_shared<UserSession>(UserSession{
-            uniqueId, sessionToken, std::string(username), role, csrfToken,
+            uniqueId, sessionToken, std::string(username), csrfToken,
             std::chrono::steady_clock::now(), persistence});
         auto it = authTokens.emplace(std::make_pair(sessionToken, session));
         // Only need to write to disk if session isn't about to be destroyed.
