Compare commits

..

3 Commits

Author SHA1 Message Date
buptxxb65
0021226a60 fix: check the duplicated Application ClientId (#1481)
* fix: Check the duplicate ClientId and ClientSecret of Application.

* Bug fix
2023-01-17 17:37:20 +08:00
June
79fc0516dd feat: check username if it's changed (#1482) 2023-01-17 17:08:37 +08:00
June
a73be11990 feat: update permission when role deleted (#1480) 2023-01-17 17:04:58 +08:00
3 changed files with 19 additions and 5 deletions

View File

@@ -287,7 +287,8 @@ func GetMaskedApplications(applications []*Application, userId string) []*Applic
func UpdateApplication(id string, application *Application) bool {
owner, name := util.GetOwnerAndNameFromId(id)
if getApplication(owner, name) == nil {
oldApplication := getApplication(owner, name)
if oldApplication == nil {
return false
}
@@ -302,6 +303,10 @@ func UpdateApplication(id string, application *Application) bool {
}
}
if oldApplication.ClientId != application.ClientId && GetApplicationByClientId(application.ClientId) != nil {
return false
}
for _, providerItem := range application.Providers {
providerItem.Provider = nil
}
@@ -325,6 +330,9 @@ func AddApplication(application *Application) bool {
if application.ClientSecret == "" {
application.ClientSecret = util.GenerateClientSecret()
}
if GetApplicationByClientId(application.ClientId) != nil {
return false
}
for _, providerItem := range application.Providers {
providerItem.Provider = nil
}

View File

@@ -347,11 +347,10 @@ func CheckUpdateUser(oldUser *User, user *User, lang string) string {
return i18n.Translate(lang, "user:Display name cannot be empty")
}
if msg := CheckUsername(user.Name, lang); msg != "" {
return msg
}
if oldUser.Name != user.Name {
if msg := CheckUsername(user.Name, lang); msg != "" {
return msg
}
if HasUserByField(user.Owner, "name", user.Name) {
return i18n.Translate(lang, "check:Username already exists")
}

View File

@@ -133,6 +133,13 @@ func AddRole(role *Role) bool {
}
func DeleteRole(role *Role) bool {
roleId := role.GetId()
permissions := GetPermissionsByRole(roleId)
for _, permission := range permissions {
permission.Roles = util.DeleteVal(permission.Roles, roleId)
UpdatePermission(permission.GetId(), permission)
}
affected, err := adapter.Engine.ID(core.PK{role.Owner, role.Name}).Delete(&Role{})
if err != nil {
panic(err)