ldapper

package module
v2.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Copyright 2020-2024 NGR Softlab

Copyright 2020-2024 NGR Softlab

Index

Constants

View Source
const (

	// DepthOfLdapSearch For get AD struct
	DepthOfLdapSearch = 4
)

Variables

View Source
var (
	ADUserAttrs = []string{
		"cn",
		"department",
		"mobile",
		"mail",
		"title",
		"thumbnailPhoto",
		"manager",
		"telephoneNumber",
		"streetAddress",
		"l",
		"physicalDeliveryOfficeName",
		"postalCode",
		"co",
		"company",
	}

	ADGroupUserAttrs = []string{"cn", "mail", "userPrincipalName", "title", "department"}

	ADGroupAttrs = []string{"name", "ou", "distinguishedName"}
)

Functions

func TestBaseDn

func TestBaseDn(userName, passWord,
	host string, port interface{},
	baseDn string, useTls, openLdap bool) error

TestBaseDn Test search in AD baseDn path

func TryAccess

func TryAccess(userName, passWord,
	host string, port interface{},
	useTls bool) error

TryAccess Test auth in AD

Types

type ADStruct

type ADStruct struct {
	AD []GroupInfo `json:"ad_map"`
}

ADStruct Full AD struct.

type GroupInfo

type GroupInfo struct {
	Name  string      `json:"name"`
	DName string      `json:"distinguishedName"` // long department name
	Ou    string      `json:"ou"`
	Has   []GroupInfo `json:"has"` // list of subdirs (group children)
}

GroupInfo Department obj from AD struct.

type LdapConn

type LdapConn struct {
	Connection *ldap.Conn
	// contains filtered or unexported fields
}

func NewLdapConn

func NewLdapConn(userName, passWord,
	host string, port interface{},
	useTls bool, options ...LdapConnOptions) (*LdapConn, error)

func (*LdapConn) Close

func (conn *LdapConn) Close()

func (*LdapConn) GetGroupUsers

func (conn *LdapConn) GetGroupUsers(group string) (res []UserShortInfo, err error)

func (*LdapConn) GetRecursiveSearchResult

func (conn *LdapConn) GetRecursiveSearchResult(prevLevel *[]GroupInfo, level int) *[]GroupInfo

GetRecursiveSearchResult - run recursive search in AD (group->subgroup->etc.), return groups tree info

func (*LdapConn) GetRootGroups

func (conn *LdapConn) GetRootGroups(baseDn string) (res []GroupInfo, err error)

GetRootGroups Reading root AD folders (ou)

func (*LdapConn) GetStruct

func (conn *LdapConn) GetStruct(baseDn string) (res ADStruct, err error)

GetStruct Reading full AD structure (with depth 2)

func (*LdapConn) GetSubGroups

func (conn *LdapConn) GetSubGroups(group string, level int) (res []GroupInfo, err error)

GetSubGroups Reading AD subFolders in group

func (*LdapConn) GetUserInfo

func (conn *LdapConn) GetUserInfo(userName, baseDn string) (res UserFullInfo, err error)

type LdapConnOptions

type LdapConnOptions struct {
	OpenLDAP bool
}

type UserFullInfo

type UserFullInfo struct {
	CN         string `json:"cn"` // full name
	Department string `json:"department"`
	Mobile     string `json:"mobile"`         // mobile phone
	Mail       string `json:"mail"`           // email
	Title      string `json:"title"`          // user title
	Photo      string `json:"thumbnailPhoto"` // bad photo from AD

	Company string `json:"company"`
	Address string `json:"address"`
	City    string `json:"city"`
	Index   string `json:"index"`
	Country string `json:"country"`
	Room    string `json:"room"`
	Phone   string `json:"phone"`
	Manager string `json:"manager"`
}

UserFullInfo User full info from AD struct

type UserShortInfo

type UserShortInfo struct {
	Name       string `json:"name"` // full name (= cn)
	Login      string `json:"login"`
	Mail       string `json:"mail"`
	Title      string `json:"title"`
	Department string `json:"department"`
}

UserShortInfo Short info for showing somewhere in lists (light info list)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL