From 15b4a4601ea30c70ed19be315a68f5bd6964a801 Mon Sep 17 00:00:00 2001 From: emeric Date: Sat, 9 Mar 2024 19:22:06 +0100 Subject: [PATCH] Removed unnecessary write access to the DB --- src/libs/services/auth/impl/AuthServiceBase.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libs/services/auth/impl/AuthServiceBase.cpp b/src/libs/services/auth/impl/AuthServiceBase.cpp index eed258c5..704a80ff 100644 --- a/src/libs/services/auth/impl/AuthServiceBase.cpp +++ b/src/libs/services/auth/impl/AuthServiceBase.cpp @@ -36,11 +36,18 @@ namespace Auth UserId AuthServiceBase::getOrCreateUser(std::string_view loginName) { Session& session{ getDbSession() }; - auto transaction{ session.createWriteTransaction() }; - User::pointer user{ User::find(session, loginName) }; + User::pointer user; + + { + auto transaction{ session.createReadTransaction() }; + user = User::find(session, loginName); + } + if (!user) { + auto transaction{ session.createWriteTransaction() }; + const UserType type{ User::getCount(session) == 0 ? UserType::ADMIN : UserType::REGULAR }; LMS_LOG(AUTH, DEBUG, "Creating user '" << loginName << "', admin = " << (type == UserType::ADMIN));