mirror of
https://github.com/casdoor/casdoor.git
synced 2025-05-23 10:45:47 +08:00
feat: add requireProviderPermission()
This commit is contained in:
parent
eb448bd043
commit
fb6f3623ee
@ -141,6 +141,20 @@ func (c *ApiController) GetProvider() {
|
|||||||
c.ResponseOk(object.GetMaskedProvider(provider, isMaskEnabled))
|
c.ResponseOk(object.GetMaskedProvider(provider, isMaskEnabled))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ApiController) requireProviderPermission(provider *object.Provider) bool {
|
||||||
|
isGlobalAdmin, user := c.isGlobalAdmin()
|
||||||
|
if isGlobalAdmin {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
if provider.Owner == "admin" || user.Owner != provider.Owner {
|
||||||
|
c.ResponseError(c.T("auth:Unauthorized operation"))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
// UpdateProvider
|
// UpdateProvider
|
||||||
// @Title UpdateProvider
|
// @Title UpdateProvider
|
||||||
// @Tag Provider API
|
// @Tag Provider API
|
||||||
@ -159,13 +173,8 @@ func (c *ApiController) UpdateProvider() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
isGlobalAdmin, user := c.isGlobalAdmin()
|
ok := c.requireProviderPermission(&provider)
|
||||||
|
if !ok {
|
||||||
if provider.Owner == "admin" && !isGlobalAdmin {
|
|
||||||
c.ResponseError("no permission")
|
|
||||||
return
|
|
||||||
} else if !isGlobalAdmin && user.Owner != provider.Owner {
|
|
||||||
c.ResponseError("no permission")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -194,18 +203,14 @@ func (c *ApiController) AddProvider() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := checkQuotaForProvider(int(count)); err != nil {
|
err = checkQuotaForProvider(int(count))
|
||||||
|
if err != nil {
|
||||||
c.ResponseError(err.Error())
|
c.ResponseError(err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
isGlobalAdmin, user := c.isGlobalAdmin()
|
ok := c.requireProviderPermission(&provider)
|
||||||
|
if !ok {
|
||||||
if provider.Owner == "admin" && !isGlobalAdmin {
|
|
||||||
c.ResponseError("no permission")
|
|
||||||
return
|
|
||||||
} else if !isGlobalAdmin && user.Owner != provider.Owner {
|
|
||||||
c.ResponseError("no permission")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,13 +233,8 @@ func (c *ApiController) DeleteProvider() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
isGlobalAdmin, user := c.isGlobalAdmin()
|
ok := c.requireProviderPermission(&provider)
|
||||||
|
if !ok {
|
||||||
if provider.Owner == "admin" && !isGlobalAdmin {
|
|
||||||
c.ResponseError("no permission")
|
|
||||||
return
|
|
||||||
} else if !isGlobalAdmin && user.Owner != provider.Owner {
|
|
||||||
c.ResponseError("no permission")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user