feat: add tenant realname review policy
This commit is contained in:
@@ -99,14 +99,24 @@ type SecurityPolicyReq struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type SecurityPolicyRes struct {
|
type SecurityPolicyRes struct {
|
||||||
TenantID int64 `json:"tenant_id"`
|
TenantID int64 `json:"tenant_id"`
|
||||||
TenantCode string `json:"tenant_code"`
|
TenantCode string `json:"tenant_code"`
|
||||||
PolicyVersion uint `json:"policy_version"`
|
PolicyVersion uint `json:"policy_version"`
|
||||||
GlobalFriendEnabled bool `json:"global_friend_enabled"`
|
GlobalFriendEnabled bool `json:"global_friend_enabled"`
|
||||||
FriendDisabledPolicy map[string]interface{} `json:"friend_disabled_policy"`
|
FriendDisabledPolicy map[string]interface{} `json:"friend_disabled_policy"`
|
||||||
MessageCurfewEnabled bool `json:"message_curfew_enabled"`
|
MessageCurfewEnabled bool `json:"message_curfew_enabled"`
|
||||||
LoginRateLimit *SecurityLoginRateLimitRes `json:"login_rate_limit"`
|
LoginRateLimit *SecurityLoginRateLimitRes `json:"login_rate_limit"`
|
||||||
CurfewRules []*SecurityCurfewRuleRes `json:"curfew_rules"`
|
CurfewRules []*SecurityCurfewRuleRes `json:"curfew_rules"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RealnamePolicyReq struct {
|
||||||
|
g.Meta `path:"/internal/im-config/tenants/by-id/{id}/realname-policy" method:"get" tags:"IM内部配置" summary:"获取租户实名认证策略"`
|
||||||
|
Id int64 `json:"id" in:"path" dc:"租户ID"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type RealnamePolicyRes struct {
|
||||||
|
TenantID int64 `json:"tenant_id"`
|
||||||
|
RealnameReviewPolicy int `json:"realname_review_policy"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type SecurityLoginRateLimitRes struct {
|
type SecurityLoginRateLimitRes struct {
|
||||||
|
|||||||
@@ -302,6 +302,29 @@ func (c *cConfig) SecurityPolicy(ctx context.Context, req *api.SecurityPolicyReq
|
|||||||
return res, nil
|
return res, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *cConfig) RealnamePolicy(ctx context.Context, req *api.RealnamePolicyReq) (res *api.RealnamePolicyRes, err error) {
|
||||||
|
tenant, err := getTenant(ctx, dao.ImTenant.Columns().Id, req.Id)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
res = defaultRealnamePolicy(tenant.Id)
|
||||||
|
var row *struct {
|
||||||
|
RealnameReviewPolicy int `json:"realname_review_policy"`
|
||||||
|
}
|
||||||
|
if err = imtenant.RegistryDB().Model(dao.ImTenantConfig.Table()).Safe().Ctx(ctx).
|
||||||
|
Fields("realname_review_policy").
|
||||||
|
Where(dao.ImTenantConfig.Columns().TenantId, tenant.Id).Scan(&row); err != nil {
|
||||||
|
return nil, gerror.Wrap(err, "获取租户实名认证策略失败")
|
||||||
|
}
|
||||||
|
if row == nil {
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
if row.RealnameReviewPolicy == 1 {
|
||||||
|
res.RealnameReviewPolicy = 1
|
||||||
|
}
|
||||||
|
return res, nil
|
||||||
|
}
|
||||||
|
|
||||||
func parseStringArray(raw string) []string {
|
func parseStringArray(raw string) []string {
|
||||||
values := []string{}
|
values := []string{}
|
||||||
if strings.TrimSpace(raw) == "" {
|
if strings.TrimSpace(raw) == "" {
|
||||||
@@ -366,6 +389,13 @@ func defaultModerationPolicy(tenant *entity.ImTenant) *api.ModerationPolicyRes {
|
|||||||
BlockMessage: "内容不符合平台规范,请修改后重试"}
|
BlockMessage: "内容不符合平台规范,请修改后重试"}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func defaultRealnamePolicy(tenantID int64) *api.RealnamePolicyRes {
|
||||||
|
return &api.RealnamePolicyRes{
|
||||||
|
TenantID: tenantID,
|
||||||
|
RealnameReviewPolicy: 0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func cloneBoolMap(src map[string]bool) map[string]bool {
|
func cloneBoolMap(src map[string]bool) map[string]bool {
|
||||||
dst := make(map[string]bool, len(src))
|
dst := make(map[string]bool, len(src))
|
||||||
for k, v := range src {
|
for k, v := range src {
|
||||||
|
|||||||
@@ -28,16 +28,18 @@ type sSysImTenant struct{}
|
|||||||
const (
|
const (
|
||||||
tenantConfigAliyunModerationEnabled = "aliyun_moderation_enabled"
|
tenantConfigAliyunModerationEnabled = "aliyun_moderation_enabled"
|
||||||
tenantConfigLocalModerationEnabled = "local_moderation_enabled"
|
tenantConfigLocalModerationEnabled = "local_moderation_enabled"
|
||||||
|
tenantConfigRealnameReviewPolicy = "realname_review_policy"
|
||||||
)
|
)
|
||||||
|
|
||||||
type imTenantConfigModeration struct {
|
type imTenantConfigModeration struct {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id" orm:"id"`
|
||||||
TenantId int64 `json:"tenant_id"`
|
TenantId int64 `json:"tenant_id" orm:"tenant_id"`
|
||||||
MaxUsers uint64 `json:"max_users"`
|
MaxUsers uint64 `json:"max_users" orm:"max_users"`
|
||||||
MaxGroups uint64 `json:"max_groups"`
|
MaxGroups uint64 `json:"max_groups" orm:"max_groups"`
|
||||||
MaxGroupMembers uint `json:"max_group_members"`
|
MaxGroupMembers uint `json:"max_group_members" orm:"max_group_members"`
|
||||||
AliyunModerationEnabled int `json:"aliyun_moderation_enabled"`
|
AliyunModerationEnabled int `json:"aliyun_moderation_enabled" orm:"aliyun_moderation_enabled"`
|
||||||
LocalModerationEnabled int `json:"local_moderation_enabled"`
|
LocalModerationEnabled int `json:"local_moderation_enabled" orm:"local_moderation_enabled"`
|
||||||
|
RealnameReviewPolicy int `json:"realname_review_policy" orm:"realname_review_policy"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSysImTenant() *sSysImTenant {
|
func NewSysImTenant() *sSysImTenant {
|
||||||
@@ -157,6 +159,7 @@ func (s *sSysImTenant) fillListConfig(ctx context.Context, list []*sysin.ImTenan
|
|||||||
item.MaxGroupMembers = conf.MaxGroupMembers
|
item.MaxGroupMembers = conf.MaxGroupMembers
|
||||||
item.AliyunModerationEnabled = conf.AliyunModerationEnabled
|
item.AliyunModerationEnabled = conf.AliyunModerationEnabled
|
||||||
item.LocalModerationEnabled = conf.LocalModerationEnabled
|
item.LocalModerationEnabled = conf.LocalModerationEnabled
|
||||||
|
item.RealnameReviewPolicy = conf.RealnameReviewPolicy
|
||||||
}
|
}
|
||||||
item.DbDsnConfigured = dsnMap[item.Id] != ""
|
item.DbDsnConfigured = dsnMap[item.Id] != ""
|
||||||
}
|
}
|
||||||
@@ -210,7 +213,7 @@ func (s *sSysImTenant) saveTenant(ctx context.Context, in *sysin.ImTenantEditInp
|
|||||||
WherePri(in.Id).Data(in).Update(); err != nil {
|
WherePri(in.Id).Data(in).Update(); err != nil {
|
||||||
return gerror.Wrap(err, "修改IM租户失败,请稍后重试!")
|
return gerror.Wrap(err, "修改IM租户失败,请稍后重试!")
|
||||||
}
|
}
|
||||||
return s.saveConfig(ctx, in.Id, in.MaxUsers, in.MaxGroups, in.MaxGroupMembers, in.AliyunModerationEnabled, in.LocalModerationEnabled, userId)
|
return s.saveConfig(ctx, in, userId)
|
||||||
}
|
}
|
||||||
|
|
||||||
in.CreatedBy = userId
|
in.CreatedBy = userId
|
||||||
@@ -222,7 +225,8 @@ func (s *sSysImTenant) saveTenant(ctx context.Context, in *sysin.ImTenantEditInp
|
|||||||
return gerror.Wrap(err, "新增IM租户失败,请稍后重试!")
|
return gerror.Wrap(err, "新增IM租户失败,请稍后重试!")
|
||||||
}
|
}
|
||||||
tenantID = id
|
tenantID = id
|
||||||
return s.saveConfig(ctx, id, in.MaxUsers, in.MaxGroups, in.MaxGroupMembers, in.AliyunModerationEnabled, in.LocalModerationEnabled, userId)
|
in.Id = id
|
||||||
|
return s.saveConfig(ctx, in, userId)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -246,20 +250,21 @@ func (s *sSysImTenant) checkCodeUnique(ctx context.Context, id int64, code strin
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *sSysImTenant) saveConfig(ctx context.Context, tenantId int64, maxUsers uint64, maxGroups uint64, maxGroupMembers uint, aliyunModerationEnabled, localModerationEnabled int, userId int64) (err error) {
|
func (s *sSysImTenant) saveConfig(ctx context.Context, in *sysin.ImTenantEditInp, userId int64) (err error) {
|
||||||
var conf *entity.ImTenantConfig
|
var conf *entity.ImTenantConfig
|
||||||
if err = s.configModel(ctx).
|
if err = s.configModel(ctx).
|
||||||
Where(dao.ImTenantConfig.Columns().TenantId, tenantId).
|
Where(dao.ImTenantConfig.Columns().TenantId, in.Id).
|
||||||
Scan(&conf); err != nil {
|
Scan(&conf); err != nil {
|
||||||
return gerror.Wrap(err, "获取IM租户配置失败,请稍后重试!")
|
return gerror.Wrap(err, "获取IM租户配置失败,请稍后重试!")
|
||||||
}
|
}
|
||||||
|
|
||||||
data := g.Map{
|
data := g.Map{
|
||||||
dao.ImTenantConfig.Columns().MaxUsers: maxUsers,
|
dao.ImTenantConfig.Columns().MaxUsers: in.MaxUsers,
|
||||||
dao.ImTenantConfig.Columns().MaxGroups: maxGroups,
|
dao.ImTenantConfig.Columns().MaxGroups: in.MaxGroups,
|
||||||
dao.ImTenantConfig.Columns().MaxGroupMembers: maxGroupMembers,
|
dao.ImTenantConfig.Columns().MaxGroupMembers: in.MaxGroupMembers,
|
||||||
tenantConfigAliyunModerationEnabled: aliyunModerationEnabled,
|
tenantConfigAliyunModerationEnabled: in.AliyunModerationEnabled,
|
||||||
tenantConfigLocalModerationEnabled: localModerationEnabled,
|
tenantConfigLocalModerationEnabled: in.LocalModerationEnabled,
|
||||||
|
tenantConfigRealnameReviewPolicy: in.RealnameReviewPolicy,
|
||||||
}
|
}
|
||||||
if conf != nil && conf.Id > 0 {
|
if conf != nil && conf.Id > 0 {
|
||||||
data[dao.ImTenantConfig.Columns().UpdatedBy] = userId
|
data[dao.ImTenantConfig.Columns().UpdatedBy] = userId
|
||||||
@@ -270,6 +275,7 @@ func (s *sSysImTenant) saveConfig(ctx context.Context, tenantId int64, maxUsers
|
|||||||
dao.ImTenantConfig.Columns().MaxGroupMembers,
|
dao.ImTenantConfig.Columns().MaxGroupMembers,
|
||||||
tenantConfigAliyunModerationEnabled,
|
tenantConfigAliyunModerationEnabled,
|
||||||
tenantConfigLocalModerationEnabled,
|
tenantConfigLocalModerationEnabled,
|
||||||
|
tenantConfigRealnameReviewPolicy,
|
||||||
dao.ImTenantConfig.Columns().UpdatedBy,
|
dao.ImTenantConfig.Columns().UpdatedBy,
|
||||||
).
|
).
|
||||||
WherePri(conf.Id).Data(data).Update(); err != nil {
|
WherePri(conf.Id).Data(data).Update(); err != nil {
|
||||||
@@ -278,7 +284,7 @@ func (s *sSysImTenant) saveConfig(ctx context.Context, tenantId int64, maxUsers
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
data[dao.ImTenantConfig.Columns().TenantId] = tenantId
|
data[dao.ImTenantConfig.Columns().TenantId] = in.Id
|
||||||
data[dao.ImTenantConfig.Columns().CreatedBy] = userId
|
data[dao.ImTenantConfig.Columns().CreatedBy] = userId
|
||||||
data[dao.ImTenantConfig.Columns().UpdatedBy] = userId
|
data[dao.ImTenantConfig.Columns().UpdatedBy] = userId
|
||||||
if _, err = s.configModel(ctx).
|
if _, err = s.configModel(ctx).
|
||||||
@@ -289,6 +295,7 @@ func (s *sSysImTenant) saveConfig(ctx context.Context, tenantId int64, maxUsers
|
|||||||
dao.ImTenantConfig.Columns().MaxGroupMembers,
|
dao.ImTenantConfig.Columns().MaxGroupMembers,
|
||||||
tenantConfigAliyunModerationEnabled,
|
tenantConfigAliyunModerationEnabled,
|
||||||
tenantConfigLocalModerationEnabled,
|
tenantConfigLocalModerationEnabled,
|
||||||
|
tenantConfigRealnameReviewPolicy,
|
||||||
dao.ImTenantConfig.Columns().CreatedBy,
|
dao.ImTenantConfig.Columns().CreatedBy,
|
||||||
dao.ImTenantConfig.Columns().UpdatedBy,
|
dao.ImTenantConfig.Columns().UpdatedBy,
|
||||||
).
|
).
|
||||||
@@ -324,6 +331,7 @@ func (s *sSysImTenant) View(ctx context.Context, in *sysin.ImTenantViewInp) (res
|
|||||||
res.MaxGroupMembers = conf.MaxGroupMembers
|
res.MaxGroupMembers = conf.MaxGroupMembers
|
||||||
res.AliyunModerationEnabled = conf.AliyunModerationEnabled
|
res.AliyunModerationEnabled = conf.AliyunModerationEnabled
|
||||||
res.LocalModerationEnabled = conf.LocalModerationEnabled
|
res.LocalModerationEnabled = conf.LocalModerationEnabled
|
||||||
|
res.RealnameReviewPolicy = conf.RealnameReviewPolicy
|
||||||
}
|
}
|
||||||
res.DbDsnConfigured = res.DbDsn != ""
|
res.DbDsnConfigured = res.DbDsn != ""
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ type ImTenantConfigUpdateFields struct {
|
|||||||
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
||||||
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
||||||
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
||||||
|
RealnameReviewPolicy int `json:"realnameReviewPolicy" dc:"实名审核策略"`
|
||||||
UpdatedBy int64 `json:"updatedBy" dc:"更新者"`
|
UpdatedBy int64 `json:"updatedBy" dc:"更新者"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,6 +60,7 @@ type ImTenantConfigInsertFields struct {
|
|||||||
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
||||||
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
||||||
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
||||||
|
RealnameReviewPolicy int `json:"realnameReviewPolicy" dc:"实名审核策略"`
|
||||||
CreatedBy int64 `json:"createdBy" dc:"创建者"`
|
CreatedBy int64 `json:"createdBy" dc:"创建者"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,6 +72,7 @@ type ImTenantEditInp struct {
|
|||||||
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
||||||
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
||||||
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
||||||
|
RealnameReviewPolicy int `json:"realnameReviewPolicy" dc:"实名审核策略"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (in *ImTenantEditInp) Filter(ctx context.Context) (err error) {
|
func (in *ImTenantEditInp) Filter(ctx context.Context) (err error) {
|
||||||
@@ -89,6 +92,9 @@ func (in *ImTenantEditInp) Filter(ctx context.Context) (err error) {
|
|||||||
(in.LocalModerationEnabled != 0 && in.LocalModerationEnabled != 1) {
|
(in.LocalModerationEnabled != 0 && in.LocalModerationEnabled != 1) {
|
||||||
return gerror.New("内容审核开关值不正确")
|
return gerror.New("内容审核开关值不正确")
|
||||||
}
|
}
|
||||||
|
if in.RealnameReviewPolicy != 0 && in.RealnameReviewPolicy != 1 {
|
||||||
|
return gerror.New("实名审核策略不正确")
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,6 +116,7 @@ type ImTenantViewModel struct {
|
|||||||
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
||||||
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
||||||
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
||||||
|
RealnameReviewPolicy int `json:"realnameReviewPolicy" dc:"实名审核策略"`
|
||||||
CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建者摘要信息"`
|
CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建者摘要信息"`
|
||||||
UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新者摘要信息"`
|
UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新者摘要信息"`
|
||||||
DbDsnConfigured bool `json:"dbDsnConfigured" dc:"是否配置独立连接串"`
|
DbDsnConfigured bool `json:"dbDsnConfigured" dc:"是否配置独立连接串"`
|
||||||
@@ -144,6 +151,7 @@ type ImTenantListModel struct {
|
|||||||
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
MaxGroupMembers uint `json:"maxGroupMembers" dc:"最大群成员数"`
|
||||||
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
AliyunModerationEnabled int `json:"aliyunModerationEnabled" dc:"是否启用阿里云内容审核"`
|
||||||
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
LocalModerationEnabled int `json:"localModerationEnabled" dc:"是否启用本地内容审核"`
|
||||||
|
RealnameReviewPolicy int `json:"realnameReviewPolicy" dc:"实名审核策略"`
|
||||||
DbDsnConfigured bool `json:"dbDsnConfigured" dc:"是否配置独立连接串"`
|
DbDsnConfigured bool `json:"dbDsnConfigured" dc:"是否配置独立连接串"`
|
||||||
CreatedBy int64 `json:"createdBy" dc:"创建者"`
|
CreatedBy int64 `json:"createdBy" dc:"创建者"`
|
||||||
CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建者摘要信息"`
|
CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建者摘要信息"`
|
||||||
|
|||||||
@@ -100,6 +100,15 @@
|
|||||||
/>
|
/>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
|
<n-gi span="1">
|
||||||
|
<n-form-item label="实名审核方式" path="realnameReviewPolicy">
|
||||||
|
<n-select
|
||||||
|
v-model:value="formValue.realnameReviewPolicy"
|
||||||
|
:options="realnameReviewPolicyOptions"
|
||||||
|
placeholder="请选择实名审核方式"
|
||||||
|
/>
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
<n-gi span="2">
|
<n-gi span="2">
|
||||||
<n-form-item label="商户描述" path="tenantDesc">
|
<n-form-item label="商户描述" path="tenantDesc">
|
||||||
<n-input
|
<n-input
|
||||||
@@ -145,6 +154,10 @@
|
|||||||
return adaModalWidth(840);
|
return adaModalWidth(840);
|
||||||
});
|
});
|
||||||
const stateOptions = dict.getOption('ImTenantStateOptions');
|
const stateOptions = dict.getOption('ImTenantStateOptions');
|
||||||
|
const realnameReviewPolicyOptions = [
|
||||||
|
{ label: '不自动审核', value: 0 },
|
||||||
|
{ label: '自动审核,失败后转人工', value: 1 },
|
||||||
|
];
|
||||||
|
|
||||||
// 提交表单
|
// 提交表单
|
||||||
function confirmForm(e) {
|
function confirmForm(e) {
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ export class State {
|
|||||||
public maxGroupMembers = 0; // 最大群成员数
|
public maxGroupMembers = 0; // 最大群成员数
|
||||||
public aliyunModerationEnabled = 0; // 是否启用阿里云内容审核
|
public aliyunModerationEnabled = 0; // 是否启用阿里云内容审核
|
||||||
public localModerationEnabled = 0; // 是否启用本地内容审核
|
public localModerationEnabled = 0; // 是否启用本地内容审核
|
||||||
|
public realnameReviewPolicy = 0; // 实名审核策略
|
||||||
public dbDsnConfigured = false; // 是否配置独立连接串
|
public dbDsnConfigured = false; // 是否配置独立连接串
|
||||||
public createdBy = 0; // 创建者
|
public createdBy = 0; // 创建者
|
||||||
public createdBySumma?: null | MemberSumma = null; // 创建者摘要信息
|
public createdBySumma?: null | MemberSumma = null; // 创建者摘要信息
|
||||||
@@ -236,6 +237,19 @@ export const columns = [
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '实名审核',
|
||||||
|
key: 'realnameReviewPolicy',
|
||||||
|
align: 'left',
|
||||||
|
width: 150,
|
||||||
|
render(row: State) {
|
||||||
|
return h(
|
||||||
|
NTag,
|
||||||
|
{ type: row.realnameReviewPolicy === 1 ? 'success' : 'default', bordered: false },
|
||||||
|
{ default: () => (row.realnameReviewPolicy === 1 ? '自动审核' : '人工审核') }
|
||||||
|
);
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '创建者',
|
title: '创建者',
|
||||||
key: 'createdBy',
|
key: 'createdBy',
|
||||||
|
|||||||
Reference in New Issue
Block a user