腾讯云互动白板白板操作权限控制-教育服务解决方案

功能简介

互动白板默认所有权限校验都是不启用,即所有用户都是具有操作互动白板的能力;如业务场景中需要对用户权限进行限制,则可以参考本文档进行用户操作权限控制。

版本支持

iOS Android Windows Mac OS Web 小程序
2.8.0.170+ 2.8.0.216+ 2.8.0.317+ 2.8.0.154+ 2.8.0+ 2.8.0+

使用指南

互动白板提供了两种权限控制方式,包含基础权限控制和高级权限控制,具体请看下面说明。

基础权限控制

基础权限是互动白板内置的一套权限控制,通过初始化参数 drawEnable 和 setDrawEnable 接口实现,主要包含以下权限:

权限名 描述
Element::Add::* 新增元素权限,如画笔工具,几何图形工具,以及调用addElement接口
Element::Delete::* 删除元素权限
Element::Select::* 选中元素权限
Element::Move::* 移动元素权限
Element::Update::* 更新元素权限,如改变元素颜色,大小等
Element::Scale::* 缩放元素权限
Element::Rotate::* 旋转元素权限
Background::Update::* 更新背景图权限
Board::Switch::* 翻页白板权限
Board::Clear::* 清空白板元素权限,对应clear接口
File::Clear::* 清空文件内的元素权限,对应clearFileDraws接口

如不允许用户操作白板,则可以在初始化参数将 drawEnable 设置 false,也可以调用 setDrawEnable(false) 来实现,当在使用互动白板过程中,则需要授予用户A操作白板的权限,则可以让用户 A 调用 setDrawEnable(true) 来实现。如您想了解 drawEnable 的实现原理,请在阅读完高级权限控制后,再查看 附录1:drawEnable的实现原理 章节。

高级权限控制

如果基础权限控制不能满足业务场景,需要更精准的权限控制,则可以使用高级权限控制接口来实现。默认场景下,用户是具有所有白板的操作权限,如需要限制用户的某一个操作,则启用对应的接口进行权限校验来实现。

启用操作白板权限校验

1. 该接口只对本地设置有效。2. 调用该接口,设置项对应的权限将启用校验。只有校验通过,设置项对应的白板操作才允许执行。enablePermissionChecker(permissions, filters)

参数名 类型 描述
permissions Array. 权限列表,可支持通配符 *,查阅目前支持的权限
filters Array. 条件列表,可支持通配符 *,查阅目前支持的条件


示例1:房间里有教师T、学生A。赋予 T 文件,白板,元素操作权限,禁用 A 的全部权限。nteduBoard.enablePermissionChecker(['File::*::*', 'Board::*::*', 'Element::*::*'], ['operator/T']); // T和A都调用解读:1.当老师T添加课件的时候('File::*::*'),则会根据权限配置进行校验,对应的操作权限只有用户T('operator/T),此时添加课件的用户是T,权限配置也是允许T添加,则此时权限校验通过,T能正常添加课件。2.当学生A添加课件的时候('File::*::*'),则会根据权限配置进行校验,对应的操作权限只有用户T('operator/T),此时添加课件的用户是A,但权限配置只允许A添加,此时权限校验不通过,A不能添加课件,并触发 TEB_BOARD_PERMISSION_DENIED 无操作权限的事件。

禁用操作白板的权限校验

1. 该接口只对本地设置有效。2. 调用该接口,设置项对应的权限将不做校验,权限将恢复成默认开启,调用者将获得对应的操作权限。disablePermissionChecker(permissions)

参数名 类型 描述
permissions Array. 权限列表,可支持通配符 *,查阅目前支持的权限


示例2:接着上面的示例1:学生 A 此时是没有权限添加课件,添加白板,添加元素(画笔,直线等)的权限的。1.如果此时需要允许学生 A 可以使用画笔功能,则学生 A 可以调用 teduBoard.disablePermissionChecker(['Element::*::*']) 接口来关闭对元素操作的校验。解读:对元素操作的校验权限禁用,则对元素操作的时候不校验权限,不校验权限就是默认有操作元素的权限,这样就实现了学生A可以实现操作画笔的需求。2.如果此时需要允许学生 A 可以添加课件,则学生 A 可以调用 teduBoard.disablePermissionChecker(['File::*::*']) 接口来关闭对文件操作的校验。解读:对文件操作的校验权限禁用,则对文件操作的时候不校验权限,不校验权限就是默认有操作文件的权限,这样就实现了学生A可以实现操作文件的需求。

权限变更事件

调用 enablePermissionChecker 和 disablePermissionChecker 接口会触发该事件。

// web端示例teduBoard.on(TEduBoard.EVENT.TEB_BOARD_PERMISSION_CHANGED, (permissions, filters) => {});
无操作权限事件

当用户操作白板没有对应的操作权限时,则会触发该事件。

// web端示例teduBoard.on(TEduBoard.EVENT.TEB_BOARD_PERMISSION_DENIED, (permission) => {});

权限列表

接口名 权限名 描述
setGlobalBackgroundColor Background::Update::Color 设置全局背景色
setBackgroundColor Background::Update::Color 设置单页白板背景色
setGlobalBackgroundPic Background::Update::Image 设置全局背景图
clear Board::Clear 清空白板
setBackgroundImage Background::Update::Image 设置单页白板背景图
setBackgroundH5 Background::Update::Frame 设置单页白板背景h5
undo Board::Undo::* 撤销
redo Board::Redo::* 恢复
addBoard Board::Add 新增白板
deleteBoard Board::Delete 删除白板
prevStep Board::Switch::Step 上一步
nextStep Board::Switch::Step 下一步
prevBoard Board::Switch::Page 上一页
nextBoard Board::Switch::Page 下一页
gotoBoard Board::Switch::Page 翻页
setBoardRatio Board::Update::Ratio 设置白板比例
setBoardScale Board::Scale::* 设置白板缩放
gotoStep Board::Switch::Step 跳转动画步数
setBoardContentFitMode Board::Update::ContentFitMode 设置白板内容填充方式
addTranscodeFile File::Add 新增转码课件
addImagesFile File::Add 新增图片组课件
deleteFile File::Delete 删除课件
switchFile File::Switch 切换课件
clearFileDraws File::Clear 清空文件上的涂鸦
addVideoFile File::Add 新增视频课件
playVideo File::Update::Video 播放视频课件
pauseVideo File::Update::Video 暂停视频课件
seekVideo File::Update::Video 调整视频课件进度
muteVideo File::Update::Video 静音视频课件
resetVideoProgress File::Update::Video 重置视频课件进度
playAudio File::Update::Audio 播放音频元素
pauseAudio File::Update::Audio 暂停音频元素
seekAudio File::Update::Audio 调整音频元素进度
muteAudio File::Update::Audio 静音音频元素
setAudioVolume File::Update::Audio 设置音频元素音量
setFileScale File::Update::Scale 对文件进行缩放
addH5File File::Add 新增h5文件
removeElement Element::Delete 删除元素
addElement Element::Add 新增元素,包含使用画笔工具,几何工具,调用addElement接口等
setTextValue Element::Update 设置文本元素内容
useMathTool Element::Add::MathTool 使用数学教具
updateElementById Element::Update 更新元素位置,大小,颜色等

条件列表

条件名 类型 描述
operator string 操作人
creator string 创建人
// 示例一:允许操作人userId是T,A,B三个用户['operator/T,A,B'] // 配置具名的userId
// 示例二:允许所有操作人['operator/*'] // 配置通配符
// 示例三:禁止所有人操作['operator/'] // 不配置userId,则表示所有人都匹配不上
// 示例四:允许操作创建人是A,B两个用户添加的文件或者添加的元素['creator/A,B']
// 示例五:允许操作所有创建人添加的文件或者添加的元素['creator/*']

使用示例



### 场景1房间里有教师T、学生A。赋予 T 文件,白板,元素操作权限,禁用 A 的全部权限/** T/A 调用 */enablePermissionChecker(['File::*::*', 'Board::*::*', 'Element::*::*'], ['operator/T']);
### 场景2房间里有教师T、学生A、学生B。TAB 均赋予元素的操作权限/** 方式一 */// 三人均设置enablePermissionChecker(['Element::*::*'], ['operator/A,B,T']);/** 方式二 */// T 调用enablePermissionChecker(['Element::*::*'], ['operator/T']);// A 调用enablePermissionChecker(['Element::*::*'], ['operator/A']);// B 调用enablePermissionChecker(['Element::*::*'], ['operator/B']);
### 场景3房间里有教师T、学生A、学生B。T能删除(包括调用接口removeElement,橡皮擦,键盘del键)所有人创建的元素(T自己、A、B),A只能删除A自己创建的元素, 不能删除其他人的创建的元素, B不能删除任何人的元素;// T 调用enablePermissionChecker(['Element::Delete::*'], ['creator/*']);// A 调用enablePermissionChecker(['Element::Delete::*'], ['creator/A']);// B 调用enablePermissionChecker(['Element::Delete::*'], ['creator/']);

### 场景4房间里有学生A、学生B、学生C。只允许 A 删除 A 和 B 创建的元素, 不能删除 C 创建元素;// A B C用户均按下面方式设置enablePermissionChecker(['Element::Delete::*'], ['operator/A', 'creator/A,B']);

### 场景5房间里有教师T、学生A、学生B。T 只能操作 B 创建的元素, // T 调用enablePermissionChecker(['Element::*::*'], ['creator/B']);
### 场景6禁用当前用户的全部操作// 所有用户调用enablePermissionChecker(['*::*::*'], ['operator/']);// 'operator/' 表示对于操作者(operator)这个条件,符合的值是空的,意味着没有操作者能够被允许通过这个权限校验
### 场景7启用当前用户的全部操作// 所有用户调用enablePermissionChecker(['*::*::*'], ['operator/*']);// 'operator/*' 表示对于操作者(operator)这个条件,符合的值是任意的,意味着所有操作者能够被允许通过这个权限校验
### 场景8房间里有学生A。学生A允许跳转动画步数,但不能翻页 // A 调用enablePermissionChecker(['Board::Switch::Step'], ['operator/A']);// A 调用enablePermissionChecker(['Board::Switch::Page'], ['operator/']);
### 场景8房间内有学生A。不允许学生A操作尺规工具,只允许观看// A 调用enablePermissionChecker(['Element::Update::MathTool'], ['operator/']);

附录1:drawEnable的实现原理

初始化参数drawEnable和接口setDrawEnable包含以下权限:

'Element::Add::*','Element::Delete::*','Element::Move::*','Element::Select::*','Element::Update::*','Element::Scale::*','Element::Rotate::*','Background::Update::*','Board::Switch::*','Board::Clear::*','File::Clear::*'

当用户A drawEnable设置为 true 时,则等价于执行以下权限配置:

const permissions = ['Element::Add::*','Element::Delete::*','Element::Move::*','Element::Select::*','Element::Update::*','Element::Scale::*','Element::Rotate::*','Background::Update::*','Board::Switch::*', 'Board::Clear::*','File::Clear::*'];
teduBoard.enablePermissionChecker(permissions, ['operator/A', 'creator/A']); // A 用户具有以上操作权限

当用户A drawEnable设置为 false 时,则等价于执行以下权限配置:

const permissions = ['Element::Add::*','Element::Delete::*','Element::Move::*','Element::Select::*','Element::Update::*','Element::Scale::*','Element::Rotate::*','Background::Update::*','Board::Switch::*', 'Board::Clear::*','File::Clear::*'];
teduBoard.enablePermissionChecker(permissions, ['operator/', 'creator/']); // 没有用户拥有以上权限



腾讯云官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

发表评论