#2349 try to handle []int8 case

This commit is contained in:
Unknwon 2016-01-11 14:34:32 +08:00
parent 17c4400b12
commit 91bab801aa
5 changed files with 16 additions and 4 deletions

View file

@ -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: