提交 35aa1bac 编写于 作者: DCloud_JSON's avatar DCloud_JSON

新增 条件约束发消息和加群必须绑定手机号码(特殊权限除外)

上级 72e81ac4
......@@ -160,7 +160,7 @@ async function sendMsg(params) {
// 创建新会话或者更新已有会话。
// 拿到消息接收者的isMute状态(仅私聊有效)
let {isMute} = await _createOrUpdateConversation(conversation_id, msgData)
let {isMute} = await _createOrUpdateConversation.call(this,conversation_id, msgData)
// console.log({
// ...msgData,
// conversation_id
......@@ -402,6 +402,25 @@ async function _createOrUpdateConversation(conversation_id, msgData) {
// 不存在,需要先创建会话记录
if (!senderConversation) {
// 除了云函数之间(包括触发器)调用 和 特殊角色用户,需验证是否绑定了手机号码
if(
this.getClientInfo().source != 'function' &&
!this.current_user_role.includes('uni-im-admin') &&
!this.current_user_role.includes('staff')
){
// 验证账号是否绑定了手机号
let getUserInfoRes = await db.collection('uni-id-users')
.doc(this.current_uid)
.field({
email:1,
nickname:1,
role:1
})
.get()
if(!getUserInfoRes.data[0].mobile_confirmed){
throw new Error('账号未绑定手机号,无法发送消息')
}
}
// 1.消息发送者 会话数据
senderConversation = {
id: conversation_id,
......
......@@ -54,6 +54,11 @@ module.exports = {
if(res.code){
throw new Error(res.errMsg)
}
}
// 5. 判断用户是否已经绑定手机号
let res3 = await db.collection('uni-id-users').where({_id:userInfo.uid}).get()
if(!res3.data[0].mobile_confirmed){
throw new Error('你的账号未绑定手机号,不能加入群聊')
}
} else {
throw new Error('非法参数')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册