Options
All
  • Public
  • Public/Protected
  • All
Menu

调用方式:

qchat.qchatRole.createServerRole(options)

Hierarchy

  • QChatRoleServiceInterface

Index

Methods

  • 创建一个频道分组身份组。

    默认情况下,频道直接使用服务器身份组来控制权限。调用此方法添加频道身份组,可以在频道内对服务器身份组的权限进行覆盖。

    • 调用该方法必须先拥有 manageRole 权限。如果没有权限,调用该方法将返回 403 错误码。
    • 频道身份组刚创建时所有权限配置都为继承(ignore),因此实际权限和被继承的服务器身份组一样,之后可以调用updateChannelCategoryRole方法手动修改,使其和服务器身份组拥有不一样的权限

    Parameters

    Returns Promise<QChatChannelCategoryRole>

  • 新增一个频道身份组,调用时必须通过serverRoleId指定新增的频道身份组继承自哪个服务器身份组。

    默认情况下,频道直接使用服务器身份组来控制权限。调用此方法添加频道身份组,可以在频道内对服务器身份组的权限进行覆盖。

    • 调用该方法必须先拥有manageRole权限和manageChannel权限,且必须是该频道的成员。如果没有权限,调用该方法将返回 403 错误码。
    • 频道身份组刚创建时所有权限配置都为继承(ignore),因此实际权限和被继承的服务器身份组一样,之后可以调用updateChannelRole方法手动修改,使频道身份组和服务器身份组拥有不一样的权限

    Parameters

    Returns Promise<QChatChannelRole>

  • 为某个人定制某频道的权限

    • 调用该方法必须先拥有manageRole和manageChannel权限,且是该频道的成员。如果没有权限,调用该方法将返回 403 错误码
    • 新创建的定制权限配置默认继承自频道身份组相应权限的配置

    Parameters

    Returns Promise<QChatMemberRole>

  • 将用户批量添加至指定的服务器自定义身份组

    服务器的 @everyone 身份组的成员,默认为服务器的全部成员。服务器自定义身份组的成员,需要用户手动添加。

    添加后,继承自该服务器身份组的频道身份组成员也会作相应变化。频道身份组与服务器身份组在成员的具体关联为:公开频道的身份组成员等于被继承的服务器身份组成员去掉频道黑名单成员和频道黑名单身份组成员;私密频道的身份组成员是同时存在于频道白名单和被继承的服务器身份组的公共成员。

    • 调用该方法必须先拥有manageRole权限。如果没有该权限,调用该方法将返回 403 错误码。
    • 待加入用户必须为身份组所属服务器成员,才能被成功加入该身份组。

    影响范围

    Parameters

    Returns Promise<AddMembersToServerRoleResult>

  • 查询自己是否拥有某个权限

    example
    const hasPermission = await qchat.qchatRole.checkPermission({
    "serverId": "10636686",
    "channelId": "15289461",
    "auth": "deleteMsg"
    })

    Parameters

    Returns Promise<boolean>

  • 查询自己是否拥有某些权限

    example
    const permissions = await qchat.qchatRole.checkPermissions({
    "serverId": "10636686",
    "channelId": "15289461",
    "auths": ["deleteMsg", "recallMsg"]
    })

    console.log(permissions)
    // {recallMsg: 'allow', deleteMsg: 'deny'}

    Parameters

    Returns Promise<QChatRoleAuth>

  • 新增服务器身份组

    • 调用该方法需要拥有manageRole权限,且必须是相应服务器的成员。如果没有该权限,调用该方法将返回 403 错误码。
    • 新创建的服务器自定义身份组的优先级,必须小于用户已有身份组的最高优先级。
    • 新创建的自定义身份组的权限为用户所有已有身份组的权限之和。假设用户在创建之前,只属于 @everyone 身份组的成员,则新创建的自定义身份组的权限将继承 @everyone 身份组的权限

    Parameters

    Returns Promise<QChatServerRole>

  • 移除服务器身份组

    example
    qchat.qchatRole.deleteServerRole({
    "serverId": "11111",
    "roleId": "22222
    })

    Parameters

    Returns Promise<void>

  • 查询某频道下的身份组信息列表

    example
    const roles = await qchat.qchatRole.getChannelRoles({
    "serverId": "10636686",
    "channelId": "15289461",
    })

    Parameters

    Returns Promise<QChatChannelRole[]>

  • 查询一批 accids 是否在某个服务器身份组(ServerRole)。

    返回在此服务器身份组下的 accid(account id) 列表,查询结果不分页

    Parameters

    Returns Promise<string[]>

  • 通过一批 accids(account ID) 查询是否有定制权限(QChatMemberRole)。

    返回有定制权限的 accid(account id) 列表,查询结果不分页

    Parameters

    Returns Promise<string[]>

  • 查询指定频道中,属于某个 服务器身份组 下的频道身份组

    example
    qchat.qchatRole.getExistingChannelRolesByServerRoleIds({
    "serverId": "10636686",
    "channelId": "15289461",
    // roleIds 为服务器身份组 ID
    "roleIds": [
    "17304893"
    ]
    })

    Parameters

    Returns Promise<QChatChannelRole[]>

  • 查询某频道下所有的个人身份权限

    example
    qchat.qchatRole.getMemberRoles({
    "serverId": "10636686",
    "channelId": "15289461"
    })

    Parameters

    Returns Promise<QChatMemberRole[]>

  • 通过accid查询该accid所属的服务器身份组

    注:返回的结果,参数形式类似 QChatServerRole,只是没有 auths 字段

    example
    const serverRoles = await qchat.qchatRole.getServerRolesByAccid({
    serverId: '11111',
    accid: '22222',
    })

    Parameters

    Returns Promise<Omit<QChatServerRole, "auths">[]>

  • 删除频道分组中某人的定制权限

    • 调用该方法必须先拥有 manageRole 权限。如果没有权限,调用该方法将返回 403 错误码。
    example
    qchat.qchatRole.removeChannelCategoryMemberRole({
    "serverId": "1111",
    "categoryId": "22222",
    "accid": "accountId"
    })

    Parameters

    Returns Promise<void>

  • 移除频道分组身份组权限

    • 调用该方法必须先拥有 manageRole 权限。如果没有权限,调用该方法将返回 403 错误码。
    example
    qchat.qchatRole.removeChannelCategoryRole({
    "serverId": "10636686",
    "categoryId": "5803432",
    "roleId": "17304893"
    })

    Parameters

    Returns Promise<void>

  • 删除某频道下的某身份组

    • 调用该方法必须先拥有manageRole权限和manageChannel权限,且必须是该频道的成员。如果没有权限,调用该方法将返回 403 错误码。
    example
    qchat.qchatRole.removeChannelRole({
    "serverId": "10636686",
    "channelId": "15289461",
    "roleId": "16863122"
    })

    Parameters

    Returns Promise<void>

  • 删除频道下某人的定制权限

    • 调用该方法必须先拥有manageRole和manageChannel权限,且是该频道的成员。如果没有权限,调用该方法将返回 403 错误码
    example
    qchat.qchatRole.removeMemberRole({
    "serverId": "132305",
    "channelId": "67291",
    "accid": "ctt1"
    })

    Parameters

    Returns Promise<void>

  • 将服务器自定义身份组的成员批量移除

    移除服务器身份组成员后,继承自该服务器身份组的频道身份组成员也会作相应变化。频道身份组与服务器身份组在成员的具体关联为:公开频道的身份组成员等于被继承的服务器身份组成员去掉频道黑名单成员和频道黑名单身份组成员;私密频道的身份组成员是同时存在于频道白名单和被继承的服务器身份组的公共成员。

    • 调用该方法必须先拥有manageRole权限。如果没有该权限,调用该方法将返回 403 错误码。

    影响范围

    Parameters

    Returns Promise<RemoveMembersFromServerRoleResult>

  • 更新指定成员在“频道分组”中的定制权限

    • 调用该方法必须先拥有 manageRole 权限。如果没有权限,调用该方法将返回 403 错误码。
    • 用户无法配置自己没有的权限。例如用户没有权限A,则无法修改权限A 的配置。
    example
    qchat.qchatRole.updateChannelCategoryMemberRole({
    "serverId": "10390563",
    "categoryId": "5754729",
    "accid": "zk3",
    "auths": {
    "recallMsg": "deny"
    }
    })

    Parameters

    Returns Promise<QChatChannelCategoryMemberRole>

  • 修改频道下某身份组的权限

    • 调用该方法必须先拥有manageRole权限和manageChannel权限,且必须是该频道的成员。如果没有权限,调用该方法将返回 403 错误码。
    • 用户无法配置自己没有的权限。例如用户没有权限A,则无法修改权限A 的配置。
    • 用户无法将自己拥有的某个权限在全部所属身份组中都设置为deny。例如用户属于 10 个身份组且这 10 个身份组都开启了权限A,那么用户最多可以将其中 9 个身份组的权限A 设置为deny。

    影响范围

    example
    qchat.qchatRole.updateChannelRole({
    "serverId": "10636686",
    "channelId": "15289461",
    "roleId": "16863122",
    "auths": {
    "mentionedRole": "allow"
    }
    })

    Parameters

    Returns Promise<QChatChannelRole>

  • 修改某人的定制权限

    • 调用该方法必须先拥有manageRole权限。如果没有该权限,调用该方法将返回 403 错误码。
    • 用户无法配置自己没有的权限。例如用户没有权限A,则无法修改权限A 的配置。
    example
    let memberRole = await qchat.qchatRole.addMemberRole({
    "serverId": "{{YOUR_SERVER_ID}}",
    "channelId": "{{YOUR_CHANNEL_ID}}",
    "accid": "{{YOUR_ACCOUNT_ID}}"
    })

    memberRole = await qchat.qchatRole.updateMemberRole({
    "serverId": memberRole.serverId,
    "channelId": memberRole.channelId,
    "accid": memberRole.accid,
    "auths": {
    "remindEveryone": "deny"
    }
    })

    Parameters

    Returns Promise<QChatMemberRole>

  • 修改服务器身份组的名称、图标、自定义扩展字段、权限列表配置和优先级(优先级的具体介绍请参见下文的批量更新服务器身份组优先级)。 调用时,需在其入参结构 UpdateServerRoleOptions 传入服务器身份组的 ID 和身份组所属服务器的 ID。

    • 调用该方法需要管理角色权限(manageRole),且必须是相应服务器的成员。如没有该权限,调用将返回 403 错误码。
    • 调用该方法修改身份组的优先级必须小于用户已有身份组的最高优先级。
    • 用户无法配置自己没有的权限。例如用户没有权限A,则无法修改权限A 的配置。
    • 创建服务器时默认创建的 @everyone 身份组仅支持修改其权限配置(且只有服务器创建者可修改),其他属性(身份组的名称、图标、自定义扩展和优先级)不支持修改。 如调用该方法修改 @everyone 身份组的名称、图标、自定义扩展和优先级, 将报错(错误码 403)。
    • 用户无法将自己拥有的某个权限在全部所属身份组中都设置为deny,如果都设置为deny,那么将返回403错误码。例如,用户属于 10 个身份组且这 10 个身份组都开启了权限A,那么用户最多可以将其中 9 个身份组的权限A 设置为deny。
    example
    qchat.qchatRole.updateServerRole({
    "serverId": "11111",
    "roleId": "22222",
    auths: {
    "deleteMsgs": "allow"
    }
    })

    Parameters

    Returns Promise<QChatServerRole>