fix(notify): exempt the administrator to create the receiver verification

This commit is contained in:
rainzm
2021-04-07 19:19:36 +08:00
parent 96f1f35427
commit 3805119c4a
+11 -7
View File
@@ -703,13 +703,6 @@ func (rm *SReceiverManager) OrderByExtraFields(ctx context.Context, q *sqlchemy.
func (r *SReceiver) PostCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) {
r.SStatusStandaloneResourceBase.PostCreate(ctx, userCred, ownerId, query, data)
// 需求:管理后台新建的联系人,手机号和邮箱无需进行校验
// 方案:检查请求者对于创建联系人 是否具有system scope
allowScope := policy.PolicyManager.AllowScope(userCred, api.SERVICE_TYPE, ReceiverManager.KeywordPlural(), policy.PolicyActionCreate)
if allowScope == rbacutils.ScopeSystem {
r.VerifiedEmail = tristate.True
r.VerifiedMobile = tristate.True
}
// set status
r.SetStatus(userCred, api.RECEIVER_STATUS_PULLING, "")
logclient.AddActionLogWithContext(ctx, r, logclient.ACT_CREATE, nil, userCred, true)
@@ -745,6 +738,17 @@ func (r *SReceiver) CustomizeCreate(ctx context.Context, userCred mcclient.Token
if err != nil {
return errors.Wrap(err, "PushCache")
}
// 需求:管理后台新建的联系人,手机号和邮箱无需进行校验
// 方案:检查请求者对于创建联系人 是否具有system scope
allowScope := policy.PolicyManager.AllowScope(userCred, api.SERVICE_TYPE, ReceiverManager.KeywordPlural(), policy.PolicyActionCreate)
if allowScope == rbacutils.ScopeSystem {
if r.EnabledEmail.Bool() {
r.VerifiedEmail = tristate.True
}
if r.EnabledMobile.Bool() {
r.VerifiedMobile = tristate.True
}
}
return nil
}