in src/PortfolioPlanning/Common/Utilities/Identity.ts [45:93]
export function parseUniquefiedIdentityName(distinctName: string): IdentityRef {
if (isNullOrWhiteSpace(distinctName)) {
return {
id: null,
displayName: null,
uniqueName: null,
imageUrl: null
} as IdentityRef;
}
const i = distinctName.lastIndexOf("<");
const j = distinctName.lastIndexOf(">");
let displayName = distinctName;
let uniqueName: string;
let id: string;
if (i >= 0 && j > i && j === distinctName.length - 1) {
displayName = distinctName.substr(0, i).trim();
const rightPart = distinctName.substr(i + 1, j - i - 1).trim();
const vsIdFromAlias: string = getVsIdFromGroupUniqueName(rightPart); // if it has vsid in unique name (for TFS groups)
if (
rightPart.indexOf("@") !== -1 ||
rightPart.indexOf("\\") !== -1 ||
vsIdFromAlias ||
GUIDUtil.isGuid(rightPart)
) {
// if its a valid alias
uniqueName = rightPart;
// If the alias component is just a guid then this is not a uniqueName but
// vsId which is used only for TFS groups
if (!isNullOrWhiteSpace(vsIdFromAlias)) {
id = vsIdFromAlias;
uniqueName = null;
}
} else {
// if its not a valid alias, treat it as a non-identity string
displayName = distinctName;
}
}
return {
id: id,
displayName: displayName,
uniqueName: uniqueName,
imageUrl: buildAvatarUrl(id, uniqueName)
} as IdentityRef;
}