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

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

上级 72e81ac4
...@@ -160,7 +160,7 @@ async function sendMsg(params) { ...@@ -160,7 +160,7 @@ async function sendMsg(params) {
// 创建新会话或者更新已有会话。 // 创建新会话或者更新已有会话。
// 拿到消息接收者的isMute状态(仅私聊有效) // 拿到消息接收者的isMute状态(仅私聊有效)
let {isMute} = await _createOrUpdateConversation(conversation_id, msgData) let {isMute} = await _createOrUpdateConversation.call(this,conversation_id, msgData)
// console.log({ // console.log({
// ...msgData, // ...msgData,
// conversation_id // conversation_id
...@@ -402,6 +402,25 @@ async function _createOrUpdateConversation(conversation_id, msgData) { ...@@ -402,6 +402,25 @@ async function _createOrUpdateConversation(conversation_id, msgData) {
// 不存在,需要先创建会话记录 // 不存在,需要先创建会话记录
if (!senderConversation) { 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.消息发送者 会话数据 // 1.消息发送者 会话数据
senderConversation = { senderConversation = {
id: conversation_id, id: conversation_id,
......
...@@ -54,6 +54,11 @@ module.exports = { ...@@ -54,6 +54,11 @@ module.exports = {
if(res.code){ if(res.code){
throw new Error(res.errMsg) 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 { } else {
throw new Error('非法参数') throw new Error('非法参数')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册