aboutsummaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/login.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/models/login.go b/models/login.go
index e36171a3..dc620e1b 100644
--- a/models/login.go
+++ b/models/login.go
@@ -105,10 +105,21 @@ type LoginSource struct {
Updated time.Time `xorm:"UPDATED"`
}
+// Cell2Int64 converts a xorm.Cell type to int64,
+// and handles possible irregular cases.
+func Cell2Int64(val xorm.Cell) int64 {
+ switch (*val).(type) {
+ case []int8:
+ log.Trace("Cell2Int64 ([]int8): %v", *val)
+ return int64((*val).([]int8)[0])
+ }
+ return (*val).(int64)
+}
+
func (source *LoginSource) BeforeSet(colName string, val xorm.Cell) {
switch colName {
case "type":
- switch LoginType((*val).(int64)) {
+ switch LoginType(Cell2Int64(val)) {
case LOGIN_LDAP, LOGIN_DLDAP:
source.Cfg = new(LDAPConfig)
case LOGIN_SMTP: