MCPcopy Create free account
hub / github.com/Macmod/godap / getNodeName

Function getNodeName

tui/tree.go:828–906  ·  view source on GitHub ↗
(entry *ldap.Entry)

Source from the content-addressed store, hash-verified

826}
827
828func getNodeName(entry *ldap.Entry) string {
829 if entry.DN == "" {
830 if Emojis {
831 return ldaputils.EmojiMap["root"] + "RootDSE"
832 }
833 return "RootDSE"
834 }
835
836 dn := getDN(entry)
837 dnParts := strings.Split(dn, ",")
838
839 // Build emoji prefix from objectClass values.
840 var classEmojisBuf bytes.Buffer
841 isDomain := false
842 for _, objectClass := range entry.GetAttributeValues("objectClass") {
843 if objectClass == "domain" || objectClass == "dcObject" {
844 isDomain = true
845 classEmojisBuf.WriteString(ldaputils.EmojiMap["domain"])
846 } else {
847 classEmojisBuf.WriteString(ldaputils.EmojiMap[objectClass])
848 }
849 }
850 emojisPrefix := classEmojisBuf.String()
851
852 // Fall back to DN-based emoji when objectClass wasn't fetched.
853 if emojisPrefix == "" {
854 switch {
855 case strings.HasPrefix(dn, "OU="):
856 emojisPrefix = ldaputils.EmojiMap["organizationalUnit"]
857 case strings.HasPrefix(dn, "DC="):
858 emojisPrefix = ldaputils.EmojiMap["domain"]
859 default:
860 emojisPrefix = ldaputils.EmojiMap["container"]
861 }
862 }
863
864 // Also detect domain root from DN structure when objectClass wasn't fetched.
865 if !isDomain {
866 isDomain = true
867 for _, part := range dnParts {
868 if !strings.HasPrefix(part, "DC=") {
869 isDomain = false
870 break
871 }
872 }
873 }
874
875 // Raw first component: used for the non-emoji return path and NoName fallback.
876 firstDNPart := dnParts[0]
877 if strings.HasPrefix(dnParts[0], "DC=") {
878 firstDNPart = dn
879 }
880
881 resolvedName := entryMarker.ReplaceAllString(getName(entry), "")
882
883 // Priority: NoName(getName returned nothing) > domain name > resolved name.
884 var finalName string
885 switch {

Callers 5

createTreeNodeFromEntryFunction · 0.85
updateEmojisFunction · 0.85
renderPartialTreeFunction · 0.85
reloadSearchNodeFunction · 0.85
executeSearchFunction · 0.85

Calls 4

getDNFunction · 0.85
getNameFunction · 0.85
dnPartToDomainNameFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected