mirror of
https://github.com/nabbar/golib.git
synced 2025-10-13 19:43:45 +08:00
Refactor package errors + packages names :
- Refactor ErrorType, list errors managment, codeError - Add interface Error with error interface implement - Add type CodeError assign typiclly to const that represent code of error - Add func to registry func to retrieve message from an uint16 codeError (typicaly a switch of each codeError const) - Add default errorCode with default errorMessage if no one code or message is found - Add modeError to manage how to manage compatibility between Error interface and error interface - Add Error interface that allow parent link (parent as error or Error interface), code and trace management - Add trace finder to allow find func/file/line caller when Error is call - Add http 2 transport in httpcli - Add http 2 transport in httpserver - Add function to get client http with timeout management in httpcli - Add function to get Error if occurs of http client in httpcli - Add test for smtp package - Chg return error by returning Error in all packages - Chg package njs-archive by archive - Chg package njs-certif by certificates - Chg package njs-console by console - Chg package njs-crypt by crypt - Chg package njs-errors by errors - Chg package njs-httpcli by httpcli - Chg package njs-httpserver by httpserver - Chg package njs-ioutils by ioutils - Chg package njs-ldap by ldap - Chg package njs-logger by logger - Chg package njs-password by password - Chg package njs-progress by progress - Chg package njs-router by router - Chg package njs-semaphore by semaphore - Chg package njs-smtp by smtp - Chg package njs-static by static - Chg package njs-status by status - Chg package njs-version by version - Fix dependancies gopkg by github/go-ldap for go module compatibility - Fix gin Abort call by gin Abort with Error in static package - Fix issue #18 in status package : replace partner by component - Fix go vet error - Del deprecated function - Del useless function & files - Bump dependancies - Apply CHG in README.md
This commit is contained in:
103
ldap/model.go
Normal file
103
ldap/model.go
Normal file
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* MIT License
|
||||
*
|
||||
* Copyright (c) 2019 Nicolas JUHEL
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
*/
|
||||
|
||||
package ldap
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type TLSMode uint8
|
||||
|
||||
const (
|
||||
tlsmode_init TLSMode = iota
|
||||
//TLSModeNone no tls connection
|
||||
TLSMODE_NONE TLSMode = iota + 1
|
||||
//TLSModeTLS strict tls connection
|
||||
TLSMODE_TLS
|
||||
//TLSModeStartTLS starttls connection (tls into a no tls connection)
|
||||
TLSMODE_STARTTLS
|
||||
)
|
||||
|
||||
func (m TLSMode) String() string {
|
||||
switch m {
|
||||
case TLSMODE_STARTTLS:
|
||||
return "starttls"
|
||||
case TLSMODE_TLS:
|
||||
return "tls"
|
||||
case TLSMODE_NONE:
|
||||
return "none"
|
||||
default:
|
||||
return "no defined"
|
||||
}
|
||||
}
|
||||
|
||||
func GetDefaultAttributes() []string {
|
||||
return []string{"givenName", "mail", "uid", "dn"}
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Uri string `cloud:"uri" mapstructure:"uri" json:"uri" yaml:"uri" toml:"uri"`
|
||||
PortLdap int `cloud:"port-ldap" mapstructure:"port-ldap" json:"port-ldap" yaml:"port-ldap" toml:"port-ldap"`
|
||||
Portldaps int `cloud:"port-ldaps" mapstructure:"port-ldaps" json:"port-ldaps" yaml:"port-ldaps" toml:"port-ldaps"`
|
||||
Basedn string `cloud:"basedn" mapstructure:"basedn" json:"basedn" yaml:"basedn" toml:"basedn"`
|
||||
FilterGroup string `cloud:"filter-group" mapstructure:"filter-group" json:"filter-group" yaml:"filter-group" toml:"filter-group"`
|
||||
FilterUser string `cloud:"filter-user" mapstructure:"filter-user" json:"filter-user" yaml:"filter-user" toml:"filter-user"`
|
||||
}
|
||||
|
||||
func NewConfig() *Config {
|
||||
return &Config{}
|
||||
}
|
||||
|
||||
func (cnf Config) Clone() *Config {
|
||||
return &Config{
|
||||
Uri: cnf.Uri,
|
||||
PortLdap: cnf.PortLdap,
|
||||
Portldaps: cnf.Portldaps,
|
||||
Basedn: cnf.Basedn,
|
||||
FilterGroup: cnf.FilterGroup,
|
||||
FilterUser: cnf.FilterUser,
|
||||
}
|
||||
}
|
||||
|
||||
func (cnf Config) BaseDN() string {
|
||||
return cnf.Basedn
|
||||
}
|
||||
|
||||
func (cnf Config) ServerAddr(withTls bool) string {
|
||||
if withTls {
|
||||
return fmt.Sprintf("%s:%d", cnf.Uri, cnf.Portldaps)
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s:%d", cnf.Uri, cnf.PortLdap)
|
||||
}
|
||||
|
||||
func (cnf Config) PatternFilterGroup() string {
|
||||
return cnf.FilterGroup
|
||||
}
|
||||
|
||||
func (cnf Config) PatternFilterUser() string {
|
||||
return cnf.FilterUser
|
||||
}
|
Reference in New Issue
Block a user