double WebUserUtils::getNumericInfo(const WebUserPtr& aItem, int aPropertyName) noexcept { switch (aPropertyName) { case PROP_LAST_LOGIN: return (double)aItem->getLastLogin(); case PROP_ACTIVE_SESSIONS: return (double)aItem->getActiveSessions(); default: dcassert(0); return 0; } }
bool WebUserManager::addUser(const WebUserPtr& aUser) noexcept { auto user = getUser(aUser->getUserName()); if (user) { return false; } { WLock l(cs); users.emplace(aUser->getUserName(), aUser); } fire(WebUserManagerListener::UserAdded(), aUser); return true; }
int WebUserUtils::compareItems(const WebUserPtr& a, const WebUserPtr& b, int aPropertyName) noexcept { switch (aPropertyName) { case PROP_PERMISSIONS: { if (a->isAdmin() != b->isAdmin()) { return a->isAdmin() ? 1 : -1; } return compare(a->countPermissions(), b->countPermissions()); } default: dcassert(0); } return 0; }
bool WebUserUtils::filterItem(const WebUserPtr& aItem, int aPropertyName, const StringMatch& aStringMatch, double aNumericMatcher) noexcept { switch (aPropertyName) { case PROP_PERMISSIONS: { auto i = WebUser::toAccess(aStringMatch.pattern); if (i != Access::LAST) { return aItem->hasPermission(i); } } } return false; }
json WebUserUtils::serializeItem(const WebUserPtr& aItem, int aPropertyName) noexcept { json j; switch (aPropertyName) { case PROP_PERMISSIONS: { return aItem->getPermissions(); } } return j; }
std::string WebUserUtils::getStringInfo(const WebUserPtr& aItem, int aPropertyName) noexcept { switch (aPropertyName) { case PROP_NAME: return aItem->getUserName(); default: dcassert(0); return 0; } }