diff --git a/controllers/application.go b/controllers/application.go index be8e51a9..755cf735 100644 --- a/controllers/application.go +++ b/controllers/application.go @@ -177,7 +177,7 @@ func (c *ApiController) GetOrganizationApplications() { return } - applications, err = object.GetAllowedApplications(applications, userId) + applications, err = object.GetAllowedApplications(applications, userId, c.GetAcceptLanguage()) if err != nil { c.ResponseError(err.Error()) return @@ -194,13 +194,19 @@ func (c *ApiController) GetOrganizationApplications() { } paginator := pagination.SetPaginator(c.Ctx, limit, count) - application, err := object.GetPaginationOrganizationApplications(owner, organization, paginator.Offset(), limit, field, value, sortField, sortOrder) + applications, err := object.GetPaginationOrganizationApplications(owner, organization, paginator.Offset(), limit, field, value, sortField, sortOrder) if err != nil { c.ResponseError(err.Error()) return } - applications := object.GetMaskedApplications(application, userId) + applications, err = object.GetAllowedApplications(applications, userId, c.GetAcceptLanguage()) + if err != nil { + c.ResponseError(err.Error()) + return + } + + applications = object.GetMaskedApplications(applications, userId) c.ResponseOk(applications, paginator.Nums()) } } diff --git a/object/application.go b/object/application.go index f409e4ea..63a84e35 100644 --- a/object/application.go +++ b/object/application.go @@ -19,6 +19,7 @@ import ( "regexp" "strings" + "github.com/casdoor/casdoor/i18n" "github.com/casdoor/casdoor/util" "github.com/xorm-io/core" ) @@ -515,8 +516,12 @@ func GetMaskedApplications(applications []*Application, userId string) []*Applic return applications } -func GetAllowedApplications(applications []*Application, userId string) ([]*Application, error) { - if userId == "" || isUserIdGlobalAdmin(userId) { +func GetAllowedApplications(applications []*Application, userId string, lang string) ([]*Application, error) { + if userId == "" { + return nil, fmt.Errorf(i18n.Translate(lang, "auth:Unauthorized operation")) + } + + if isUserIdGlobalAdmin(userId) { return applications, nil } @@ -524,7 +529,11 @@ func GetAllowedApplications(applications []*Application, userId string) ([]*Appl if err != nil { return nil, err } - if user != nil && user.IsAdmin { + if user == nil { + return nil, fmt.Errorf(i18n.Translate(lang, "auth:Unauthorized operation")) + } + + if user.IsAdmin { return applications, nil }