From cd415325729fddea26c816291bb33171b9cc4879 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Wed, 8 Feb 2023 11:58:46 +0100 Subject: [PATCH] Slight improvements to admin view --- admin.go | 20 ++++++++++++++------ templates/admin_ldap.html | 18 ++++++++++++++++-- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/admin.go b/admin.go index 16c3b85..832a815 100644 --- a/admin.go +++ b/admin.go @@ -121,7 +121,8 @@ type AdminLDAPTplData struct { DN string Path []PathItem - Children []Child + ChildrenOU []Child + ChildrenOther []Child CanAddChild bool Props map[string]*PropValues CanDelete bool @@ -499,17 +500,23 @@ func handleAdminLDAP(w http.ResponseWriter, r *http.Request) { sort.Sort(EntryList(sr.Entries)) - children := []Child{} + childrenOU := []Child{} + childrenOther := []Child{} for _, item := range sr.Entries { name := item.GetAttributeValue("displayname") if name == "" { name = item.GetAttributeValue("description") } - children = append(children, Child{ + child := Child{ DN: item.DN, Identifier: strings.Split(item.DN, ",")[0], Name: name, - }) + } + if strings.HasPrefix(item.DN, "ou=") { + childrenOU = append(childrenOU, child) + } else { + childrenOther = append(childrenOther, child) + } } // Run template, finally! @@ -517,10 +524,11 @@ func handleAdminLDAP(w http.ResponseWriter, r *http.Request) { DN: dn, Path: path, - Children: children, + ChildrenOU: childrenOU, + ChildrenOther: childrenOther, Props: props, CanAddChild: dn_last_attr == "ou" || isOrganization, - CanDelete: dn != config.BaseDN && len(children) == 0, + CanDelete: dn != config.BaseDN && len(childrenOU) == 0 && len(childrenOther) == 0, HasMembers: len(members) > 0 || hasMembers, Members: members, diff --git a/templates/admin_ldap.html b/templates/admin_ldap.html index 5867209..57ef0f4 100644 --- a/templates/admin_ldap.html +++ b/templates/admin_ldap.html @@ -23,7 +23,17 @@ - {{range .Children}} + {{range .ChildrenOU}} + + + + + {{end}} + {{range .ChildrenOther}}
+ + 🗀 {{.Identifier}} + + {{.Name}}
@@ -94,7 +104,11 @@
{{$key}}