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