IM 即时通讯
Windows/macOS
产品介绍
简介
主要功能
产品优势
海外数据中心
IM平滑迁移方案
接口及业务限制
功能介绍
帐号集成与登录
基础消息功能
群组功能
聊天室功能
聊天室标签功能
圈组功能
多端登录与互踢策略
质量数据监控台
更新日志
Demo 更新日志
NIM SDK 更新日志
快速开始
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
开发指南
概要介绍
集成方式(当前版本)
集成方式(Windows旧版本)
集成方式(macOS旧版本)
初始化
登录登出
消息收发
最近会话
历史记录
用户资料托管
好友关系托管
事件订阅
系统通知
系统通知概述
内置系统通知管理
内置系统通知未读数
自定义系统通知收发
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
开通聊天室功能
聊天室
圈组功能
初始化
登录圈组
圈组服务器管理
圈组服务器成员管理
游客功能
频道相关
频道管理
频道分组
频道分组黑白名单
频道未读数管理
搜索服务器和频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
频道分组身份组
频道用户定制权限
自定义权限项
成员权限判定
身份组相关查询
圈组订阅机制
圈组消息相关
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
会话消息回复(Thread)
圈组快捷评论
获取频道最后一条消息
消息正在输入
圈组消息搜索
圈组消息查询
查询@我的消息
服务器未读数
圈组系统通知
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组各端接口命名差异
语音录制与播放
NOS云存储服务
文档转换
API 参考
Windows/macOS API 参考
状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
配置应用客户端标识
参考文档
升级指引
开发示例
UI库指南
Demo源码导读
打包发布
类与常量定义说明
常见问题
FAQ
服务协议

身份组系统

更新时间: 2022/12/06 14:19:39

建议前往身份组概述查看身份组相关集成文档,了解更多身份组详情。

身份组是什么

身份组是权限管理系统,核心目的是管理成员权限。

身份组分为两类,具体见下表:

分类 说明

@所有人身份组

  • 在用户创建圈组服务器时默认创建。
  • 所有圈组服务器成员默认为@所有人身份组的成员。
  • 该身份组的权限配置只有服务器创建者可修改。

自定义身份组

  • 需要用户主动创建。
  • 创建时会要求键入一些属性,如名称等。属性详情请参见身份组属性
  • 创建后需要创建者手动将服务器成员加入自定义身份组。

身份组管理权限的流程

通过身份组管理权限的主要流程如下:

  1. 用户创建身份组,并将权限配置给身份组。
  2. 用户可以将圈组服务器中的某些成员加入该身份组。这些成员将拥有配置给该身份组的所有权限。
  • 为自定义身份组配置权限时,只有创建者已拥有的权限才是可配置的,且默认开启。创建者没有的权限,在新建身份组中默认关闭,且不可修改。
  • 强烈建议用户先配置自定义身份组的权限后再拉成员。

身份组使用流程.png

以上图所示场景为例,该场景下加入该身份组的成员将拥有权限1至权限6这六个权限。

身份组权限下发.png

服务器身份组属性

属性 说明

基本属性

  • 身份组名称
  • 自定义字段
  • 头像
成员 自定义身份组创建后默认没有成员,需要创建者或有添加权限的人手动添加。

优先级(即等级)

  • 身份组有高低优先级之分。
  • 当用户的管理角色功能开启,可对优先级低于自身最高身份组的其他身份组进行操作,也可创建一个新的低优先级身份组,并对其进行优先级排序。
  • 新的自定义身份组被创建后,其优先级默认为已有自定义身份组中的最低级。
  • 自定义身份组优先级永远高于@所有人身份组。
    • 身份组优先级仅用于判断某个身份组的成员,是否能够对其他身份组进行操作(例如修改其他身份组的权限配置),假如用户所在身份组的优先级,高于待操作的身份组的优先级,则用户可对后者进行操作。身份组优先级与用户的最终拥有权限的判定无关
    • 用户可在创建身份组时,设置其优先级。如需判断多个服务器身份组的优先级,可通过查询服务器身份组列表的结果排序进行判断,默认按优先级从大到小进行排序,但第一页查询结果第一项的 @everyone 身份组,优先级低于排在其后的所有自定义身份组)。

状态

  • 圈组服务器维度下:打开、关闭
  • 频道维度下:打开、关闭、不参与判断

用户可以同时属于多个身份组,最终这个人在圈组服务器或频道下的权限,取决于该用户身上所有的身份组综合计算之结果。详情请参见圈组服务器下的权限机制频道下的权限机制

身份组权限种类

圈组服务器下的自定义身份组可配置权限

权限名称 说明
管理服务器 允许用户修改圈组服务器的基本属性,服务器名称、图标、成员数、邀请模式等。
管理所有频道 允许用户创建、更新、删除频道。
管理角色权限 允许用户管理服务器的所有频道的角色权限。
所有频道发送消息 允许用户在圈组服务器的所有频道发送消息。
所有频道删除他人消息 允许用户在圈组服务器的所有频道删除他人消息。
所有频道撤回他人消息 允许用户在圈组服务器的所有频道撤回他人消息。
@某个人 允许用户在发送消息时@某个人。
@所有人 允许用户在发送消息时@所有人。
@身份组 允许用户在发送消息时@身份组
邀请他人进入服务器 只有开启该权限,才能邀请他人加入圈组服务器。
踢除他人 允许将他人踢除出圈组服务器。被踢除的成员如果获得其他邀请,可再次加入圈组服务器。
修改自身服务器成员信息 允许修改用户自己在圈组服务器中的信息。
修改他人在服务器的成员信息 允许修改其他用户在圈组服务器中的信息。

管理频道名单

  • 允许用户为公开频道添加黑名单。
  • 允许用户为私密频道添加白名单。
封禁他人 允许用户封禁其他服务器成员。被封禁的用户不能再次登录。
连接实时互动频道 允许用户连接自己的实时互动频道,可在频道中接收他人的声音/画面。
断开实时互动频道 允许用户断开他人的实时互动频道。
开启麦克风 允许用户在服务器的所有实时互动频道中开启自己的麦克风。
管理他人的麦克风 允许用户在服务器的所有实时互动频道中开启/关闭他人的麦克风。
管理全员的麦克风 允许用户在服务器的所有实时互动频道中开启/关闭全员的麦克风。
开启摄像头 允许用户在服务器的所有实时互动频道中开启自己的摄像头。
管理他人的摄像头 允许用户在服务器的所有实时互动频道中开启/关闭他人的摄像头。
管理全员的摄像头 允许用户在服务器的所有实时互动频道中开启/关闭全员的摄像头。
开启屏幕共享 允许用户在服务器的所有实时互动频道中共享自己的屏幕。
关闭他人的共享屏幕 允许用户在服务器的所有实时互动频道中关闭他人的共享屏幕。
申请/邀请管理 允许用户在服务器中生成邀请码。
查看申请/邀请历史记录 允许用户查看服务器的申请/邀请历史记录。

频道下的自定义身份组可配置权限

权限名称 说明
管理频道 允许用户修改频道的基本属性,频道名称、频道类型等。
管理频道权限 允许用户变更频道的访问权限。
发送消息 允许用户在频道内发送消息。
删除他人消息 允许用户在频道内删除他人发送的消息。
撤回他人消息 允许用户在频道内撤回他人发送的消息。
@某人 允许用户在发送消息时@某人。
@所有人 允许用户在发送消息时@所有人。
@身份组 允许用户在发送消息时@身份组

管理频道名单

  • 允许用户为公开频道添加黑名单。
  • 允许用户为私密频道添加白名单。
连接实时互动频道 允许用户连接自己的实时互动频道,可在频道中接收他人的声音/画面。
断开实时互动频道 允许用户断开他人的实时互动频道。
开启麦克风 允许用户在实时互动频道中开启自己的麦克风。
管理他人的麦克风 允许用户在实时互动频道中开启/关闭他人的麦克风。
管理全员的麦克风 允许用户在实时互动频道中开启/关闭全员的麦克风。
开启摄像头 允许用户在实时互动频道中开启自己的摄像头。
管理他人的摄像头 允许用户在实时互动频道中开启/关闭他人的摄像头。
管理全员的摄像头 允许用户在实时互动频道中开启/关闭全员的摄像头。
开启屏幕共享 允许用户在实时互动频道中共享自己的屏幕。
关闭他人的共享屏幕 允许用户在实时互动频道中关闭他人的共享屏幕。

圈组服务器下@所有人身份组的默认初始权限

权限名称 是否默认开启 说明
管理服务器 否(用户可手动开启) 允许用户修改圈组服务器的基本属性,服务器名称、图标、成员数、邀请模式等。
管理所有频道 否(用户可手动开启) 允许用户创建、更新、删除频道。

管理角色

否(用户可手动开启)

  • 允许用户创建、排序、编辑一个比自己身份组等级更低的身份组。当用户开启了该角色,该用户可以对所有等级低于自己最高身份组的身份组进行权限变更。变更的权限范围为自己所有身份组的允许权限之和。
  • 允许用户变更可访问频道的权限。
所有频道发送消息 允许用户在圈组服务器的所有频道发送消息。
所有频道删除他人消息 否(用户可手动开启) 允许用户在圈组服务器的所有频道删除他人消息。
所有频道撤回他人消息 否(用户可手动开启) 允许用户在圈组服务器的所有频道撤回他人消息。
@某个人 允许用户在发送消息时@某个人。
@所有人 允许用户在发送消息时@所有人。
@身份组 允许用户在发送消息时@身份组
邀请他人进入服务器 只有开启该权限,才能邀请他人加入圈组服务器。
踢除他人 否(用户可手动开启) 允许将他人踢除出圈组服务器。被踢除的成员如果获得其他邀请,可再次加入圈组服务器。
修改自身服务器成员信息 允许修改用户自己在圈组服务器中的信息。
修改他人在服务器的成员信息 否(用户可手动开启) 允许修改其他用户在圈组服务器中的信息。

管理频道名单

否(用户可手动开启)

  • 允许用户为公开频道添加黑名单。
  • 允许用户为私密频道添加白名单。
封禁他人 否(用户可手动开启) 允许用户封禁其他服务器成员。被封禁的用户不能再次登录。
连接实时互动频道 允许用户连接自己的实时互动频道,可在频道中接收他人的声音/画面。
断开实时互动频道 否(用户可手动开启) 允许用户断开他人的实时互动频道。
开启麦克风 允许用户在服务器的所有实时互动频道中开启自己的麦克风。
管理他人的麦克风 否(用户可手动开启) 允许用户在服务器的所有实时互动频道中开启/关闭他人的麦克风。
管理全员的麦克风 否(用户可手动开启) 允许用户在服务器的所有实时互动频道中开启/关闭全员的麦克风。
开启摄像头 允许用户在服务器的所有实时互动频道中开启自己的摄像头。
管理他人的摄像头 否(用户可手动开启) 允许用户在服务器的所有实时互动频道中开启/关闭他人的摄像头。
管理全员的摄像头 否(用户可手动开启) 允许用户在服务器的所有实时互动频道中开启/关闭全员的摄像头。
开启屏幕共享 允许用户在服务器的所有实时互动频道中共享自己的屏幕。
关闭他人的共享屏幕 否(用户可手动开启) 允许用户在服务器的所有实时互动频道中关闭他人的共享屏幕。
申请/邀请管理 允许用户在服务器中生成邀请码。
查看申请/邀请历史记录 允许用户查看服务器的申请/邀请历史记录。

频道下@所有人身份组的默认初始权限

权限名称 是否默认开启 说明
管理频道 否(用户可手动开启) 允许用户创建、更新、删除频道。
管理频道权限 否(用户可手动开启) 允许用户变更频道的访问权限。
发送消息 允许用户在频道内发送消息。
删除他人消息 否(用户可手动开启) 允许用户在频道内删除他人发送的消息。
撤回他人消息 否(用户可手动开启) 允许用户在频道内撤回他人发送的消息。
@某人 允许用户在发送消息时@某人。
@所有人 允许用户在发送消息时@所有频道成员。
@身份组 允许用户在发送消息时@身份组

管理频道名单

否(用户可手动开启)

  • 允许用户为公开频道添加黑名单。
  • 允许用户为私密频道添加白名单。
连接实时互动频道 允许用户连接自己的实时互动频道,可在频道中接收他人的声音/画面。
断开实时互动频道 否(用户可手动开启) 允许用户断开他人的实时互动频道。
开启麦克风 允许用户在实时互动频道中开启自己的麦克风。
管理他人的麦克风 否(用户可手动开启) 允许用户在实时互动频道中开启/关闭他人的麦克风。
管理全员的麦克风 否(用户可手动开启) 允许用户在实时互动频道中开启/关闭全员的麦克风。
开启摄像头 允许用户在实时互动频道中开启自己的摄像头。
管理他人的摄像头 否(用户可手动开启) 允许用户在实时互动频道中开启/关闭他人的摄像头。
管理全员的摄像头 否(用户可手动开启) 允许用户在实时互动频道中开启/关闭全员的摄像头。
开启屏幕共享 允许用户在实时互动频道中共享自己的屏幕。
关闭他人的共享屏幕 否(用户可手动开启) 允许用户在实时互动频道中关闭他人的共享屏幕。

圈组服务器下的权限机制

如何判断成员的最终权限

一名圈组服务器成员可同时属于多个身份组。 此成员在圈组服务器维度下的最终权限,为该成员所属的所有身份组权限之和。最终权限判断规则为“取有不取无、多组取并集”。

举个例子: 某个圈组服务器总共可配置6个权限 成员小云同时属于身份组A和身份组B。身份组A拥有前3个权限,身份组B拥有后3个权限。 此时小云的权限为“前3个权限(因为身份组A)”与“后3个权限(因为身份组B)”的并集,具体如下表:

身份组A 身份组B 小云在该服务器的最终权限
权限1 有 (因为身份组A)
权限2 有 (因为身份组A)
权限3 有 (因为身份组A)
权限4 有 (因为身份组B)
权限5 有 (因为身份组B)
权限6 有 (因为身份组B)

管理角色权限的特殊规则(圈组服务器维度)

管理角色权限有如下特殊规则:

规则 说明
1 管理角色权限的拥有者,只能变更低于其最高身份组的身份组权限。
2 当管理角色权限的拥有者想去变更某个低身份组的某项权限时,首先其自身必须有该权限,即该拥有者所在的所有身份组中,至少有一个身份组为其赋予过该权限。
3 在不删除一个身份组的情况下,管理角色权限的拥有者无法删除自己的已有权限。
4 管理权限拥有者如需删除某个权限,可删除拥有此权限的身份组。

为方便理解上述4点规则,我们举如下例子进行说明。

假设某圈组服务器有如下表所示的4个身份组,小云属于身份组1和身份组2。

身份组 权限 权限有无
身份组1(小云为成员) 发送消息 有√
管理角色 有√
@所有人
踢除他人
身份组2(小云为成员) 发送消息
管理角色
@所有人 有√
踢除他人
身份组3 发送消息
管理角色
@所有人
踢除他人 有 √
@所有人身份组 发送消息
管理角色
@所有人
踢除他人
  • 对应规则1:因为小云是身份组1的成员,身份组1有管理角色权限,所以小云可以对等级低于于身份组1的身份组2、3、4进行权限修改,但是不可对身份组1进行修改。
  • 对应规则2:因为属于身份组1和身份组2,小云拥有“发送消息”、“管理角色”、“@所有人”这3个权限。但遗憾的是,这两个身份组并没有给小云赋予“踢除他人”的权限,所以小云在修改其他身份组权限时,是不能改变更“踢除他人”权限的。
  • 对应规则3:小云所属的最高等级身份组是身份组1,所以可以对身份组2进行权限修改,但他不能将身份组2中的“@所有人”设为关闭,因为小云在圈组服务器中的“@所有人”权限只有身份组2赋予了,如果他将此权限关闭,那么他在这个服务器里将再也没有“@所有人”权限。
  • 对应规则4:小云如果一定要关闭“@所有人”权限,只能把身份组2删除。

频道下的权限机制

为何在频道维度配置权限

圈组服务器下的每个频道都会有各自的风格和规则。某些频道可能是一小部分成员的小天地,有自己的规矩,此时,需要对这些频道单独进行权限设置。

频道成员权限

与圈组服务器维度不同的是,频道维度下,权限的配置项,除了开启关闭,还有不参与判断。用户可以将某个自定义身份组或者个人拉进某个频道,进行单独权限配置。@所有人身份组默认在频道中,且所有权限状态均为不参与判断

回到圈组服务器下的权限机制里举的小云的例子:频道下的最终权限判断,按照下述优先级依次进行。

  • 如果某频道对小云的某项权限进行了单独的设置,则优先取该值,不再做其他判断。
  • 如果某频道对小云的某项权限无设置,而对小云拥有的某个身份组的该项权限进行了单独的设置,那么先算自定义身份组们在频道里的值:1.只要有一个身份组对该项权限的值为开启则最终结果为开启,不再做其他判断;2.若所有身份组对该项权限都关闭,则有一个关闭则最终结果为关闭,不再做其他判断;3. 若所有的身份组对该项权限的配置全部为不参与判断,则最终结果为不参与判断
  • 当所有自定义身份组对该项权限的最终判断结果为不参与判断,那么看@所有人身份组对该项权限的设置:1. 若为开启,则最终结果为开启;2. 如为关闭,则最终结果为关闭;3. 若为不参与判断,则该权限在此频道下没有特殊配置,继续走全局的频道权限配置。

简而言之,频道下的最终权限判断,遵循“成员权限 > 频道权限 > 圈组服务器权限”的原则。

此文档是否对你有帮助?
有帮助
我要吐槽
  • 身份组是什么
  • 身份组管理权限的流程
  • 服务器身份组属性
  • 身份组权限种类
  • 圈组服务器下的自定义身份组可配置权限
  • 频道下的自定义身份组可配置权限
  • 圈组服务器下@所有人身份组的默认初始权限
  • 频道下@所有人身份组的默认初始权限
  • 圈组服务器下的权限机制
  • 如何判断成员的最终权限
  • 管理角色权限的特殊规则(圈组服务器维度)
  • 频道下的权限机制
  • 为何在频道维度配置权限
  • 频道成员权限