IM 即时通讯
Windows/macOS
开发指南

身份组概述

更新时间: 2023/02/07 11:21:01

身份组是拥有完善且灵活的配置机制的权限管理系统,它包含两大元素:权限组和拥有这些权限的用户。身份组适用于在不同维度(例如社区维度和房间维度)对用户进行差异化的权限管控。

身份组适用于对各类大型线上社区进行权限管控,具体场景可参见身份组应用场景

身份组类型

身份组分为两类,在NIMQChatRoleType枚举内定义。

分类
API 关键字
说明

@everyone身份组

kRoleTypeEveryone

  • 在用户创建圈组服务器时默认自动创建。
  • 所有圈组服务器成员默认自动成为@everyone身份组的成员。
  • @everyone身份组不可删除。
  • @everyone身份组的权限配置只有服务器创建者可修改。
  • 每一个 App Key 的 @everyone 身份组的权限都会有默认值(默认开启或关闭)。如默认关闭,服务器创建者可手动开启。具体默认值请参见下文的身份组权限项
自定义身份组 kRoleTypeCustom 用户可在服务器、频道分组和频道这三个维度创建自定义身份组。
  • 服务器自定义身份组:即服务器维度的自定义身份组,其权限项对用户在服务器维度的操作进行管控。需要用户手动创建。创建后默认没有成员,需要再手动添加身份组成员。
  • 频道分组自定义身份组:即频道分组维度的自定义身份组,其权限项可对用户在频道分组维度的操作进行管控。
  • 频道自定义身份组:即频道维度的自定义身份组,其权限项可对用户在频道维度的操作进行管控。
为自定义身份组配置权限时,只有身份组创建者已拥有的权限才是可配置的,且默认开启。创建者没有的权限,在新建身份组中默认关闭,且不可修改

身份组权限项

身份组权限在NIMQChatPermissions枚举内定义。权限分为服务器专有的权限和非服务器专有(即在服务器维度和频道维度都可配置)。

枚举值 说明 是否服务器专有 @everyone 身份组中是否默认开启
kPermissionUpdateMemberInfo 修改他人的服务器成员信息的权限
kPermissionUpdateMyInfo 修改自己的服务器的成员信息的权限
kPermissionBanServerMember 封禁其他成员访问当前服务器的权限
kPermissionGetServerInviteApplyRecords 查看申请或邀请历史的权限,有这个权限才可以查询服务器级别的申请或邀请记录
kPermissionServerHandleApply 处理加入服务器申请的权限
kPermissionManageServer 管理服务器的权限,拥有该权限可修改服务器信息(包括基本属性,服务器名称、图标、成员数、邀请模式等)
kPermissionIviteMember 邀请他人加入服务器的权限
kPermissionKickMember 将其他成员踢出服务器的权限
kPermissionDeleteMemberMessage 删除他人消息的权限
kPermissionManageBlackWhiteList 管理黑白名单的权限
kPermissionManageChannel 管理频道的权限,拥有该权限可创建、修改、删除频道
kPermissionManageRole 管理角色的权限,拥有该权限可创建、修改或删除身份组
kPermissionRevokeMemberMessage 撤回他人消息的权限
kPermissionAtAll @所有成员的权限
kPermissionAtMember @某个成员的权限
kPermissionAtRole @身份组的权限
kPermissionSendMessage 发送消息的权限
kPermissionRTCCloseOthersScreenShare 在实时互动频道关闭他人屏幕共享的权限
kPermissionRTCConnect 在实时互动频道建立用户自己的连接的权限
kPermissionRTCDisconnectOther 在实时互动频道断开他人连接的权限
kPermissionRTCOpenCamera 在实时互动频道开启摄像头的权限
kPermissionRTCOpenMuteAllCamera 在实时互动频道开启或关闭全员摄像头的权限
kPermissionRTCOpenMuteAllMic 在实时互动频道开启或关闭全员麦克风的权限
kPermissionRTCOpenMuteOthersCamera 在实时互动频道开启或关闭他人摄像头的权限
kPermissionRTCOpenMuteOthersMic 在实时互动频道开启或关闭他人麦克风的权限
RTCChannelOpenMicrophone 在实时互动频道开启麦克风的权限
kPermissionRTCOpenScreenShare 在实时互动频道打开自己屏幕共享的权限

除上述身份组预定义的权限项,您还可通过云信 IM 服务端 API 创建自定义权限项,满足您的应用在自身业务场景下对于用户操作管控的特有需求。实现通过自定义权限管控用户操作的流程说明,请参见自定义权限

成员权限查询与判定

服务器成员可同时属于多个身份组,同一权限在用户所属的多个身份组中的状态(开启、关闭或继承)不同时,用户实际拥有的最终权限遵循特定的判定规则,具体请参见成员权限判定。

身份组功能概览

功能
说明 相关文档
服务器身份组 在服务器维度对多个用户进行权限管控,服务器可理解为社区 服务器身份组
频道身份组 在频道维度对多个用户进行权限管控,频道可理解为社区中的小组或房间 频道身份组
用户定制权限 为频道成员专门定制权限(包含多个权限项),对其在频道维度的操作进行个人化的权限管控 用户定制权限
频道分组身份组 在频道分组维度对多个用户进行权限管控 频道分组身份组
自定义权限 添加自定义权限项,实现符合应用特殊需求的权限管控能力 自定义权限
身份组相关查询 与身份组相关的查询能力,如查询身份组列表、身份组成员等 身份组相关查询
此文档是否对你有帮助?
有帮助
去反馈
  • 身份组类型
  • 身份组权限项
  • 成员权限查询与判定
  • 身份组功能概览