summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon')
-rw-r--r--indra/llcommon/llavatarname.cpp34
-rw-r--r--indra/llcommon/llavatarname.h21
2 files changed, 46 insertions, 9 deletions
diff --git a/indra/llcommon/llavatarname.cpp b/indra/llcommon/llavatarname.cpp
index 7415acadd4..e30f353a6c 100644
--- a/indra/llcommon/llavatarname.cpp
+++ b/indra/llcommon/llavatarname.cpp
@@ -42,12 +42,16 @@
// LLSD map lookups
static const std::string SL_ID("sl_id");
static const std::string DISPLAY_NAME("display_name");
+static const std::string LEGACY_FIRST_NAME("legacy_first_name");
+static const std::string LEGACY_LAST_NAME("legacy_last_name");
static const std::string IS_DISPLAY_NAME_DEFAULT("is_display_name_default");
static const std::string DISPLAY_NAME_EXPIRES("display_name_expires");
LLAvatarName::LLAvatarName()
-: mSLID(),
+: mUsername(),
mDisplayName(),
+ mLegacyFirstName(),
+ mLegacyLastName(),
mIsDisplayNameDefault(false),
mIsDummy(false),
mExpires(F64_MAX)
@@ -55,17 +59,21 @@ LLAvatarName::LLAvatarName()
bool LLAvatarName::operator<(const LLAvatarName& rhs) const
{
- if (mSLID == rhs.mSLID)
+ if (mUsername == rhs.mUsername)
return mDisplayName < rhs.mDisplayName;
else
- return mSLID < rhs.mSLID;
+ return mUsername < rhs.mUsername;
}
LLSD LLAvatarName::asLLSD() const
{
LLSD sd;
- sd[SL_ID] = mSLID;
+ // Due to a late-breaking change request from Product, we renamed
+ // "SLID" to "Username", but it was too late to change the wire format.
+ sd[SL_ID] = mUsername;
sd[DISPLAY_NAME] = mDisplayName;
+ sd[LEGACY_FIRST_NAME] = mLegacyFirstName;
+ sd[LEGACY_LAST_NAME] = mLegacyLastName;
sd[IS_DISPLAY_NAME_DEFAULT] = mIsDisplayNameDefault;
sd[DISPLAY_NAME_EXPIRES] = LLDate(mExpires);
return sd;
@@ -73,8 +81,10 @@ LLSD LLAvatarName::asLLSD() const
void LLAvatarName::fromLLSD(const LLSD& sd)
{
- mSLID = sd[SL_ID].asString();
+ mUsername = sd[SL_ID].asString(); // see asLLSD() above
mDisplayName = sd[DISPLAY_NAME].asString();
+ mLegacyFirstName = sd[LEGACY_FIRST_NAME].asString();
+ mLegacyLastName = sd[LEGACY_LAST_NAME].asString();
mIsDisplayNameDefault = sd[IS_DISPLAY_NAME_DEFAULT].asBoolean();
LLDate expires = sd[DISPLAY_NAME_EXPIRES];
mExpires = expires.secondsSinceEpoch();
@@ -83,9 +93,9 @@ void LLAvatarName::fromLLSD(const LLSD& sd)
std::string LLAvatarName::getNameAndSLID() const
{
std::string name;
- if (!mSLID.empty())
+ if (!mUsername.empty())
{
- name = mDisplayName + " (" + mSLID + ")";
+ name = mDisplayName + " (" + mUsername + ")";
}
else
{
@@ -94,3 +104,13 @@ std::string LLAvatarName::getNameAndSLID() const
}
return name;
}
+
+std::string LLAvatarName::getLegacyName() const
+{
+ std::string name;
+ name.reserve( mLegacyFirstName.size() + 1 + mLegacyLastName.size() );
+ name = mLegacyFirstName;
+ name += " ";
+ name += mLegacyLastName;
+ return name;
+}
diff --git a/indra/llcommon/llavatarname.h b/indra/llcommon/llavatarname.h
index 87750210c6..fb5cb277a2 100644
--- a/indra/llcommon/llavatarname.h
+++ b/indra/llcommon/llavatarname.h
@@ -53,14 +53,31 @@ public:
// When display names are disabled returns just "James Linden"
std::string getNameAndSLID() const;
+ // Returns "James Linden" or "bobsmith123 Resident" for backwards
+ // compatibility with systems like voice and muting
+ // *TODO: Eliminate this in favor of username only
+ std::string getLegacyName() const;
+
// "bobsmith123" or "james.linden", US-ASCII only
- std::string mSLID;
+ std::string mUsername;
// "Jose' Sanchez" or "James Linden", UTF-8 encoded Unicode
// Contains data whether or not user has explicitly set
- // a display name; may duplicate their SLID.
+ // a display name; may duplicate their username.
std::string mDisplayName;
+ // For "James Linden", "James"
+ // For "bobsmith123", "bobsmith123"
+ // Used to communicate with legacy systems like voice and muting which
+ // rely on old-style names.
+ // *TODO: Eliminate this in favor of username only
+ std::string mLegacyFirstName;
+
+ // For "James Linden", "Linden"
+ // For "bobsmith123", "Resident"
+ // see above for rationale
+ std::string mLegacyLastName;
+
// If true, both display name and SLID were generated from
// a legacy first and last name, like "James Linden (james.linden)"
bool mIsDisplayNameDefault;