show groups in profile
This commit is contained in:
parent
8e8e67666c
commit
2624034fd7
25
ldap.go
25
ldap.go
@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/go-ldap/ldap"
|
||||
)
|
||||
@ -251,7 +252,7 @@ func findLDAPAccountForDisplay(uname string) (User, error) {
|
||||
0,
|
||||
false,
|
||||
fmt.Sprintf("(&(objectClass=organizationalPerson)(%s=%s))", Conf.Ldap.UserAttr, uname),
|
||||
[]string{"cn", "sn", "givenName", "displayName", "mail", "employeeNumber"},
|
||||
[]string{"cn", "sn", "givenName", "displayName", "mail", "employeeNumber", "memberOf"},
|
||||
nil,
|
||||
))
|
||||
if err != nil {
|
||||
@ -262,13 +263,23 @@ func findLDAPAccountForDisplay(uname string) (User, error) {
|
||||
return User{}, errors.New(err_text)
|
||||
}
|
||||
entry := result.Entries[0]
|
||||
groups := entry.GetAttributeValues("memberOf")
|
||||
fg := make([]string, 0)
|
||||
for _, group := range groups {
|
||||
group_s := strings.Split(group, ",")
|
||||
group_cn := group_s[0]
|
||||
fg = append(fg, strings.Trim(group_cn, "cn="))
|
||||
}
|
||||
|
||||
u := User{
|
||||
Username: entry.GetAttributeValue("cn"),
|
||||
FirstName: entry.GetAttributeValue("givenName"),
|
||||
LastName: entry.GetAttributeValue("sn"),
|
||||
DisplayName: entry.GetAttributeValue("displayName"),
|
||||
Email: entry.GetAttributeValue("mail"),
|
||||
ID: entry.GetAttributeValue("employeeNumber"),
|
||||
Username: entry.GetAttributeValue("cn"),
|
||||
FirstName: entry.GetAttributeValue("givenName"),
|
||||
LastName: entry.GetAttributeValue("sn"),
|
||||
DisplayName: entry.GetAttributeValue("displayName"),
|
||||
Email: entry.GetAttributeValue("mail"),
|
||||
ID: entry.GetAttributeValue("employeeNumber"),
|
||||
Groups: groups,
|
||||
FriendlyGroups: fg,
|
||||
}
|
||||
return u, nil
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
{{ define "profile" }}
|
||||
{{ template "header" .}}
|
||||
<h1> Profile </h1>
|
||||
<h1>User Profile </h1>
|
||||
<table>
|
||||
<tr>
|
||||
<th>Username: </th><td>{{ .User.Username }}</td>
|
||||
@ -20,6 +20,13 @@
|
||||
<tr>
|
||||
<th>User ID: </th><td>{{ .User.ID }}</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
<h1>User Groups </h1>
|
||||
<table>
|
||||
{{range .User.FriendlyGroups}}
|
||||
<tr><th>Group: </th><td>{{.}}</td></tr>
|
||||
{{end}}
|
||||
</table>
|
||||
<p><a href="/profile/edit">Edit Profile</a></p>
|
||||
{{ template "footer" .}}
|
||||
|
14
user.go
14
user.go
@ -1,12 +1,14 @@
|
||||
package main
|
||||
|
||||
type User struct {
|
||||
Username string
|
||||
FirstName string
|
||||
LastName string
|
||||
DisplayName string
|
||||
Email string
|
||||
ID string
|
||||
Username string
|
||||
FirstName string
|
||||
LastName string
|
||||
DisplayName string
|
||||
Email string
|
||||
ID string
|
||||
Groups []string
|
||||
FriendlyGroups []string
|
||||
}
|
||||
|
||||
//TODO Start using User as a proper model
|
||||
|
Loading…
Reference in New Issue
Block a user