public static parseUniquefiedIdentityName()

in legacy/src/Calendar/EventSources/VSOCapacityEventSource.ts [602:661]


    public static parseUniquefiedIdentityName(name: string): string {
        if (!name) {
            return null;
        }

        let i = name.lastIndexOf(IdentityHelper.AAD_IDENTITY_UNIQUEFIEDNAME_SEPERATOR_START);
        let j = name.lastIndexOf(IdentityHelper.AAD_IDENTITY_UNIQUEFIEDNAME_SEPERATOR_END);
        let isContainer: boolean = false;
        let isAad: boolean = false;
        if (i >= 0 && j > i) {
            isAad = true;
        }

        // replace "<<" with "<" and ">>" with ">" in case of an AAD identity string representation to make further processing easier
        name = name
            .replace(
                IdentityHelper.AAD_IDENTITY_UNIQUEFIEDNAME_SEPERATOR_START,
                IdentityHelper.IDENTITY_UNIQUEFIEDNAME_SEPERATOR_START,
            )
            .replace(
                IdentityHelper.AAD_IDENTITY_UNIQUEFIEDNAME_SEPERATOR_END,
                IdentityHelper.IDENTITY_UNIQUEFIEDNAME_SEPERATOR_END,
            );

        i = name.lastIndexOf(IdentityHelper.IDENTITY_UNIQUEFIEDNAME_SEPERATOR_START);
        j = name.lastIndexOf(IdentityHelper.IDENTITY_UNIQUEFIEDNAME_SEPERATOR_END);
        let displayName = name;
        let alias = "";
        let id = "";
        let localScopeId = "";
        if (i >= 0 && j > i) {
            displayName = name.substr(0, i).trim();
            if (isAad) {
                // if its an AAD identity, the string would be in format - name <<object id>>
                id = name.substr(i + 1, j - i - 1).trim(); // this would be in format objectid\email

                if (id.indexOf(IdentityHelper.AAD_IDENTITY_USER_PREFIX) === 0) {
                    id = id.substr(IdentityHelper.AAD_IDENTITY_USER_PREFIX.length);
                } else if (id.indexOf(IdentityHelper.AAD_IDENTITY_GROUP_PREFIX) === 0) {
                    isContainer = true;
                    id = id.substr(IdentityHelper.AAD_IDENTITY_GROUP_PREFIX.length);
                }

                const ii = id.lastIndexOf("\\");
                if (ii > 0) {
                    alias = id.substr(ii + 1).trim();
                    id = id.substr(0, ii).trim();
                }
            } else {
                alias = name.substr(i + 1, j - i - 1).trim();
                // If the alias component is just a guid then this is not a uniqueName
                // but the localScopeId which is used only for TFS/AAD groups
                if (Utils_String.isGuid(alias)) {
                    localScopeId = alias;
                    alias = "";
                }
            }
        }
        return displayName;
    }