mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-09 01:13:41 +08:00
Fix updating old DB code.
This commit is contained in:
@ -158,3 +158,11 @@ func DeleteSyncer(syncer *Syncer) bool {
|
|||||||
func (syncer *Syncer) GetId() string {
|
func (syncer *Syncer) GetId() string {
|
||||||
return fmt.Sprintf("%s/%s", syncer.Owner, syncer.Name)
|
return fmt.Sprintf("%s/%s", syncer.Owner, syncer.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (syncer *Syncer) getTableColumnsTypeMap() map[string]string {
|
||||||
|
m := map[string]string{}
|
||||||
|
for _, tableColumn := range syncer.TableColumns {
|
||||||
|
m[tableColumn.Name] = tableColumn.Type
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
@ -48,7 +48,16 @@ func (syncer *Syncer) getOriginalUserMap() ([]*OriginalUser, map[string]*Origina
|
|||||||
|
|
||||||
func (syncer *Syncer) addUser(user *OriginalUser) bool {
|
func (syncer *Syncer) addUser(user *OriginalUser) bool {
|
||||||
m := syncer.getMapFromOriginalUser(user)
|
m := syncer.getMapFromOriginalUser(user)
|
||||||
affected, err := syncer.Adapter.Engine.Table(syncer.Table).Insert(m)
|
keyString := syncer.getSqlKeyStringFromMap(m)
|
||||||
|
valueString := syncer.getSqlValueStringFromMap(m)
|
||||||
|
|
||||||
|
sql := fmt.Sprintf("insert into %s (%s) values (%s)", syncer.Table, keyString, valueString)
|
||||||
|
res, err := syncer.Adapter.Engine.Exec(sql)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
affected, err := res.RowsAffected()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -56,7 +65,7 @@ func (syncer *Syncer) addUser(user *OriginalUser) bool {
|
|||||||
return affected != 0
|
return affected != 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (syncer *Syncer) getOriginalColumns() []string {
|
/*func (syncer *Syncer) getOriginalColumns() []string {
|
||||||
res := []string{}
|
res := []string{}
|
||||||
for _, tableColumn := range syncer.TableColumns {
|
for _, tableColumn := range syncer.TableColumns {
|
||||||
if tableColumn.CasdoorName != "Id" {
|
if tableColumn.CasdoorName != "Id" {
|
||||||
@ -64,7 +73,7 @@ func (syncer *Syncer) getOriginalColumns() []string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return res
|
return res
|
||||||
}
|
}*/
|
||||||
|
|
||||||
func (syncer *Syncer) getCasdoorColumns() []string {
|
func (syncer *Syncer) getCasdoorColumns() []string {
|
||||||
res := []string{}
|
res := []string{}
|
||||||
@ -79,8 +88,17 @@ func (syncer *Syncer) getCasdoorColumns() []string {
|
|||||||
|
|
||||||
func (syncer *Syncer) updateUser(user *OriginalUser) bool {
|
func (syncer *Syncer) updateUser(user *OriginalUser) bool {
|
||||||
m := syncer.getMapFromOriginalUser(user)
|
m := syncer.getMapFromOriginalUser(user)
|
||||||
columns := syncer.getOriginalColumns()
|
pkValue := m[syncer.TablePrimaryKey]
|
||||||
affected, err := syncer.Adapter.Engine.Table(syncer.Table).ID(syncer.TablePrimaryKey).Cols(columns...).Update(m)
|
delete(m, syncer.TablePrimaryKey)
|
||||||
|
setString := syncer.getSqlSetStringFromMap(m)
|
||||||
|
|
||||||
|
sql := fmt.Sprintf("update %s set %s where %s = %s", syncer.Table, setString, syncer.TablePrimaryKey, pkValue)
|
||||||
|
res, err := syncer.Adapter.Engine.Exec(sql)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
affected, err := res.RowsAffected()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ func (syncer *Syncer) getFullAvatarUrl(avatar string) string {
|
|||||||
return avatar
|
return avatar
|
||||||
}
|
}
|
||||||
|
|
||||||
if !strings.HasPrefix(avatar, "https://") {
|
if !strings.HasPrefix(avatar, "http") {
|
||||||
return fmt.Sprintf("%s%s", syncer.AvatarBaseUrl, avatar)
|
return fmt.Sprintf("%s%s", syncer.AvatarBaseUrl, avatar)
|
||||||
}
|
}
|
||||||
return avatar
|
return avatar
|
||||||
@ -76,7 +76,9 @@ func (syncer *Syncer) createUserFromOriginalUser(originalUser *OriginalUser, aff
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (syncer *Syncer) createOriginalUserFromUser(user *User) *OriginalUser {
|
func (syncer *Syncer) createOriginalUserFromUser(user *User) *OriginalUser {
|
||||||
return user
|
originalUser := *user
|
||||||
|
originalUser.Avatar = syncer.getPartialAvatarUrl(user.Avatar)
|
||||||
|
return &originalUser
|
||||||
}
|
}
|
||||||
|
|
||||||
func (syncer *Syncer) setUserByKeyValue(user *User, key string, value string) {
|
func (syncer *Syncer) setUserByKeyValue(user *User, key string, value string) {
|
||||||
@ -211,3 +213,42 @@ func (syncer *Syncer) getMapFromOriginalUser(user *OriginalUser) map[string]stri
|
|||||||
|
|
||||||
return m2
|
return m2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (syncer *Syncer) getSqlSetStringFromMap(m map[string]string) string {
|
||||||
|
typeMap := syncer.getTableColumnsTypeMap()
|
||||||
|
|
||||||
|
tokens := []string{}
|
||||||
|
for k, v := range m {
|
||||||
|
token := fmt.Sprintf("%s = %s", k, v)
|
||||||
|
if typeMap[k] == "string" {
|
||||||
|
token = fmt.Sprintf("%s = '%s'", k, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
tokens = append(tokens, token)
|
||||||
|
}
|
||||||
|
return strings.Join(tokens, ", ")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (syncer *Syncer) getSqlKeyStringFromMap(m map[string]string) string {
|
||||||
|
tokens := []string{}
|
||||||
|
for k, _ := range m {
|
||||||
|
token := k
|
||||||
|
tokens = append(tokens, token)
|
||||||
|
}
|
||||||
|
return strings.Join(tokens, ", ")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (syncer *Syncer) getSqlValueStringFromMap(m map[string]string) string {
|
||||||
|
typeMap := syncer.getTableColumnsTypeMap()
|
||||||
|
|
||||||
|
tokens := []string{}
|
||||||
|
for k, v := range m {
|
||||||
|
token := v
|
||||||
|
if typeMap[k] == "string" {
|
||||||
|
token = fmt.Sprintf("'%s'", v)
|
||||||
|
}
|
||||||
|
|
||||||
|
tokens = append(tokens, token)
|
||||||
|
}
|
||||||
|
return strings.Join(tokens, ", ")
|
||||||
|
}
|
||||||
|
@ -32,8 +32,8 @@ type User struct {
|
|||||||
Password string `xorm:"varchar(100)" json:"password"`
|
Password string `xorm:"varchar(100)" json:"password"`
|
||||||
PasswordSalt string `xorm:"varchar(100)" json:"passwordSalt"`
|
PasswordSalt string `xorm:"varchar(100)" json:"passwordSalt"`
|
||||||
DisplayName string `xorm:"varchar(100)" json:"displayName"`
|
DisplayName string `xorm:"varchar(100)" json:"displayName"`
|
||||||
Avatar string `xorm:"varchar(255)" json:"avatar"`
|
Avatar string `xorm:"varchar(500)" json:"avatar"`
|
||||||
PermanentAvatar string `xorm:"varchar(255)" json:"permanentAvatar"`
|
PermanentAvatar string `xorm:"varchar(500)" json:"permanentAvatar"`
|
||||||
Email string `xorm:"varchar(100)" json:"email"`
|
Email string `xorm:"varchar(100)" json:"email"`
|
||||||
Phone string `xorm:"varchar(100)" json:"phone"`
|
Phone string `xorm:"varchar(100)" json:"phone"`
|
||||||
Location string `xorm:"varchar(100)" json:"location"`
|
Location string `xorm:"varchar(100)" json:"location"`
|
||||||
|
Reference in New Issue
Block a user