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