Example #1
0
	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;
		}
	}
Example #2
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;
	}
Example #3
0
	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;
	}
Example #4
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;
	}
Example #5
0
	json WebUserUtils::serializeItem(const WebUserPtr& aItem, int aPropertyName) noexcept {
		json j;

		switch (aPropertyName) {
		case PROP_PERMISSIONS:
		{
			return aItem->getPermissions();
		}
		}


		return j;
	}
Example #6
0
	std::string WebUserUtils::getStringInfo(const WebUserPtr& aItem, int aPropertyName) noexcept {
		switch (aPropertyName) {
		case PROP_NAME: return aItem->getUserName();
		default: dcassert(0); return 0;
		}
	}