mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-29 17:58:36 +08:00
1.
取消userCred.IsSystemAdmin(),在使用policy的应用中,通过userCred.IsAdminAllow判断是否是管理员且具备相应的权限。获取token时,需要传入policy.FilterPolicyCredential,将普通userCred转换成支持rbac的userCred 2. 在应用启动时候,必须设置 SetServiceType,否则退出
This commit is contained in:
@@ -8,6 +8,8 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/consts"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/policy"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/pkg/util/reflectutils"
|
||||
"yunion.io/x/sqlchemy"
|
||||
@@ -191,7 +193,7 @@ func (self *SJointResourceBase) AllowGetJointDetails(ctx context.Context, userCr
|
||||
master := item.Master()
|
||||
switch master.(type) {
|
||||
case IVirtualModel:
|
||||
return master.(IVirtualModel).IsOwner(userCred)
|
||||
return master.(IVirtualModel).IsOwner(userCred) || userCred.IsAdminAllow(consts.GetServiceType(), master.KeywordPlural(), policy.PolicyActionGet)
|
||||
default: // case item implemented customized AllowGetDetails, eg hostjoints
|
||||
return item.AllowGetDetails(ctx, userCred, query)
|
||||
}
|
||||
@@ -201,7 +203,7 @@ func (self *SJointResourceBase) AllowUpdateJointItem(ctx context.Context, userCr
|
||||
master := item.Master()
|
||||
switch master.(type) {
|
||||
case IVirtualModel:
|
||||
return master.(IVirtualModel).IsOwner(userCred)
|
||||
return master.(IVirtualModel).IsOwner(userCred) || userCred.IsAdminAllow(consts.GetServiceType(), master.KeywordPlural(), policy.PolicyActionUpdate)
|
||||
default: // case item implemented customized AllowGetDetails, eg hostjoints
|
||||
return item.AllowUpdateItem(ctx, userCred)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user