mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 20:50:19 +08:00
Add getCasdoorColumns().
This commit is contained in:
@ -41,7 +41,7 @@ func (syncer *Syncer) syncUsers() {
|
||||
updatedUser := syncer.createUserFromOriginalUser(oUser, affiliationMap)
|
||||
updatedUser.Hash = oHash
|
||||
updatedUser.PreHash = oHash
|
||||
UpdateUserForOriginalFields(updatedUser)
|
||||
syncer.updateUserForOriginalFields(updatedUser)
|
||||
fmt.Printf("Update from oUser to user: %v\n", updatedUser)
|
||||
}
|
||||
} else {
|
||||
@ -62,7 +62,7 @@ func (syncer *Syncer) syncUsers() {
|
||||
updatedUser := syncer.createUserFromOriginalUser(oUser, affiliationMap)
|
||||
updatedUser.Hash = oHash
|
||||
updatedUser.PreHash = oHash
|
||||
UpdateUserForOriginalFields(updatedUser)
|
||||
syncer.updateUserForOriginalFields(updatedUser)
|
||||
fmt.Printf("Update from oUser to user (2nd condition): %v\n", updatedUser)
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
|
||||
"github.com/astaxie/beego"
|
||||
"github.com/casbin/casdoor/util"
|
||||
"xorm.io/core"
|
||||
)
|
||||
|
||||
type OriginalUser = User
|
||||
@ -55,7 +56,7 @@ func (syncer *Syncer) addUser(user *OriginalUser) bool {
|
||||
return affected != 0
|
||||
}
|
||||
|
||||
func (syncer *Syncer) getActiveColumns() []string {
|
||||
func (syncer *Syncer) getOriginalColumns() []string {
|
||||
res := []string{}
|
||||
for _, tableColumn := range syncer.TableColumns {
|
||||
if tableColumn.CasdoorName != "Id" {
|
||||
@ -65,9 +66,20 @@ func (syncer *Syncer) getActiveColumns() []string {
|
||||
return res
|
||||
}
|
||||
|
||||
func (syncer *Syncer) getCasdoorColumns() []string {
|
||||
res := []string{}
|
||||
for _, tableColumn := range syncer.TableColumns {
|
||||
if tableColumn.CasdoorName != "Id" {
|
||||
v := util.CamelToSnakeCase(tableColumn.CasdoorName)
|
||||
res = append(res, v)
|
||||
}
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func (syncer *Syncer) updateUser(user *OriginalUser) bool {
|
||||
m := syncer.getMapFromOriginalUser(user)
|
||||
columns := syncer.getActiveColumns()
|
||||
columns := syncer.getOriginalColumns()
|
||||
affected, err := syncer.Adapter.Engine.Table(syncer.Table).ID(syncer.TablePrimaryKey).Cols(columns...).Update(m)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
@ -76,12 +88,33 @@ func (syncer *Syncer) updateUser(user *OriginalUser) bool {
|
||||
return affected != 0
|
||||
}
|
||||
|
||||
func (syncer *Syncer) updateUserForOriginalFields(user *User) bool {
|
||||
owner, name := util.GetOwnerAndNameFromId(user.GetId())
|
||||
oldUser := getUser(owner, name)
|
||||
if oldUser == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if user.Avatar != oldUser.Avatar && user.Avatar != "" {
|
||||
user.PermanentAvatar = getPermanentAvatarUrl(user.Owner, user.Name, user.Avatar)
|
||||
}
|
||||
|
||||
columns := syncer.getCasdoorColumns()
|
||||
columns = append(columns, "affiliation", "hash", "pre_hash")
|
||||
affected, err := adapter.Engine.ID(core.PK{user.Owner, user.Name}).Cols(columns...).Update(user)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return affected != 0
|
||||
}
|
||||
|
||||
func (syncer *Syncer) calculateHash(user *OriginalUser) string {
|
||||
values := []string{}
|
||||
m := syncer.getMapFromOriginalUser(user)
|
||||
for _, tableColumn := range syncer.TableColumns {
|
||||
if tableColumn.IsHashed {
|
||||
values = append(values, m[tableColumn.CasdoorName])
|
||||
values = append(values, m[tableColumn.Name])
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,7 @@ func (syncer *Syncer) createUserFromOriginalUser(originalUser *OriginalUser, aff
|
||||
if user.Type == "" {
|
||||
user.Type = "normal-user"
|
||||
}
|
||||
user.Avatar = syncer.getFullAvatarUrl(user.Avatar)
|
||||
if originalUser.Score != 0 {
|
||||
affiliation, ok := affiliationMap[originalUser.Score]
|
||||
if !ok {
|
||||
@ -196,7 +197,7 @@ func (syncer *Syncer) getMapFromOriginalUser(user *OriginalUser) map[string]stri
|
||||
|
||||
m2 := map[string]string{}
|
||||
for _, tableColumn := range syncer.TableColumns {
|
||||
m2[tableColumn.CasdoorName] = m[tableColumn.CasdoorName]
|
||||
m2[tableColumn.Name] = m[tableColumn.CasdoorName]
|
||||
}
|
||||
|
||||
return m2
|
||||
|
@ -289,25 +289,6 @@ func UpdateUserForAllFields(id string, user *User) bool {
|
||||
return affected != 0
|
||||
}
|
||||
|
||||
func UpdateUserForOriginalFields(user *User) bool {
|
||||
owner, name := util.GetOwnerAndNameFromId(user.GetId())
|
||||
oldUser := getUser(owner, name)
|
||||
if oldUser == nil {
|
||||
return false
|
||||
}
|
||||
|
||||
if user.Avatar != oldUser.Avatar && user.Avatar != "" {
|
||||
user.PermanentAvatar = getPermanentAvatarUrl(user.Owner, user.Name, user.Avatar)
|
||||
}
|
||||
|
||||
affected, err := adapter.Engine.ID(core.PK{user.Owner, user.Name}).Cols("display_name", "password", "phone", "avatar", "affiliation", "score", "is_forbidden", "hash", "pre_hash").Update(user)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return affected != 0
|
||||
}
|
||||
|
||||
func AddUser(user *User) bool {
|
||||
if user.Id == "" {
|
||||
user.Id = util.GenerateId()
|
||||
|
Reference in New Issue
Block a user