aboutsummaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/login.go39
1 files changed, 34 insertions, 5 deletions
diff --git a/models/login.go b/models/login.go
index abd4fc03..33f0f270 100644
--- a/models/login.go
+++ b/models/login.go
@@ -13,6 +13,7 @@ import (
"strings"
"time"
+ "github.com/Unknwon/com"
"github.com/go-xorm/core"
"github.com/go-xorm/xorm"
@@ -114,6 +115,8 @@ func (source *LoginSource) BeforeSet(colName string, val xorm.Cell) {
source.Cfg = new(SMTPConfig)
case PAM:
source.Cfg = new(PAMConfig)
+ default:
+ panic("unrecognized login source type: " + com.ToStr(*val))
}
}
}
@@ -122,6 +125,33 @@ func (source *LoginSource) TypeName() string {
return LoginNames[source.Type]
}
+func (source *LoginSource) IsLDAP() bool {
+ return source.Type == LDAP
+}
+
+func (source *LoginSource) IsDLDAP() bool {
+ return source.Type == DLDAP
+}
+
+func (source *LoginSource) IsSMTP() bool {
+ return source.Type == SMTP
+}
+
+func (source *LoginSource) IsPAM() bool {
+ return source.Type == PAM
+}
+
+func (source *LoginSource) UseTLS() bool {
+ switch source.Type {
+ case LDAP, DLDAP:
+ return source.LDAP().UseSSL
+ case SMTP:
+ return source.SMTP().TLS
+ }
+
+ return false
+}
+
func (source *LoginSource) LDAP() *LDAPConfig {
return source.Cfg.(*LDAPConfig)
}
@@ -166,15 +196,14 @@ func UpdateSource(source *LoginSource) error {
return err
}
-func DelLoginSource(source *LoginSource) error {
- cnt, err := x.Count(&User{LoginSource: source.ID})
+func DeleteSource(source *LoginSource) error {
+ count, err := x.Count(&User{LoginSource: source.ID})
if err != nil {
return err
- }
- if cnt > 0 {
+ } else if count > 0 {
return ErrAuthenticationUserUsed
}
- _, err = x.Id(source.ID).Delete(&LoginSource{})
+ _, err = x.Id(source.ID).Delete(new(LoginSource))
return err
}