fix: fix permission problem in provider (#2848)

This commit is contained in:
DacongDA 2024-03-30 23:18:03 +08:00 committed by GitHub
parent ea88839db9
commit eb448bd043
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -159,6 +159,16 @@ func (c *ApiController) UpdateProvider() {
return return
} }
isGlobalAdmin, user := c.isGlobalAdmin()
if provider.Owner == "admin" && !isGlobalAdmin {
c.ResponseError("no permission")
return
} else if !isGlobalAdmin && user.Owner != provider.Owner {
c.ResponseError("no permission")
return
}
c.Data["json"] = wrapActionResponse(object.UpdateProvider(id, &provider)) c.Data["json"] = wrapActionResponse(object.UpdateProvider(id, &provider))
c.ServeJSON() c.ServeJSON()
} }
@ -189,6 +199,16 @@ func (c *ApiController) AddProvider() {
return return
} }
isGlobalAdmin, user := c.isGlobalAdmin()
if provider.Owner == "admin" && !isGlobalAdmin {
c.ResponseError("no permission")
return
} else if !isGlobalAdmin && user.Owner != provider.Owner {
c.ResponseError("no permission")
return
}
c.Data["json"] = wrapActionResponse(object.AddProvider(&provider)) c.Data["json"] = wrapActionResponse(object.AddProvider(&provider))
c.ServeJSON() c.ServeJSON()
} }
@ -208,6 +228,16 @@ func (c *ApiController) DeleteProvider() {
return return
} }
isGlobalAdmin, user := c.isGlobalAdmin()
if provider.Owner == "admin" && !isGlobalAdmin {
c.ResponseError("no permission")
return
} else if !isGlobalAdmin && user.Owner != provider.Owner {
c.ResponseError("no permission")
return
}
c.Data["json"] = wrapActionResponse(object.DeleteProvider(&provider)) c.Data["json"] = wrapActionResponse(object.DeleteProvider(&provider))
c.ServeJSON() c.ServeJSON()
} }