mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 12:30:19 +08:00
fix: unmask application for org admin (#2138)
* feat: unmask application with user admin * Update application.go --------- Co-authored-by: hsluoyz <hsluoyz@qq.com>
This commit is contained in:
@ -281,14 +281,21 @@ func GetApplication(id string) (*Application, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func GetMaskedApplication(application *Application, userId string) *Application {
|
func GetMaskedApplication(application *Application, userId string) *Application {
|
||||||
if isUserIdGlobalAdmin(userId) {
|
|
||||||
return application
|
|
||||||
}
|
|
||||||
|
|
||||||
if application == nil {
|
if application == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if userId != "" {
|
||||||
|
if isUserIdGlobalAdmin(userId) {
|
||||||
|
return application
|
||||||
|
}
|
||||||
|
|
||||||
|
user, _ := GetUser(userId)
|
||||||
|
if user != nil && user.IsApplicationAdmin(application) {
|
||||||
|
return application
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if application.ClientSecret != "" {
|
if application.ClientSecret != "" {
|
||||||
application.ClientSecret = "***"
|
application.ClientSecret = "***"
|
||||||
}
|
}
|
||||||
|
@ -860,3 +860,11 @@ func AddUserkeys(user *User, isAdmin bool) (bool, error) {
|
|||||||
|
|
||||||
return UpdateUser(user.GetId(), user, []string{}, isAdmin)
|
return UpdateUser(user.GetId(), user, []string{}, isAdmin)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (user *User) IsApplicationAdmin(application *Application) bool {
|
||||||
|
if user == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return (user.Owner == application.Organization && user.IsAdmin) || user.IsGlobalAdmin
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user