如何配置馆员账号分级权限 - DigitalPlatform/dp2 GitHub Wiki
一般情况下,图书馆保密的对象是读者信息,因为其中涉及到读者的姓名,手机号码,身份证号码等敏感信息。
读者的所有信息都存储在dp2library服务器上,新版本下,当前端向服务器发送指令要想获取读者信息时,服务器向前端传送读者记录的哪些字段,是由发送指令的账号的获取读者记录权限来决定的。也就是说,如果这个馆员只具有获得姓名的权限,那么服务器就只传送姓名到前端。这样就彻底避免了传送多余的信息所带来的可能的信息泄露。
馆员账户权限分级设置,意思是对馆员获取读者信息或者修改读者信息的权限分级设置。配置了获得/修改读者信息某个级别的权限之后,馆员就只能从服务器获得权限范围内所对应的读者记录字段。如果级别较低,馆员就只能获得部分允许的内容,无法看到完整的内容,也无法修改允许范围之外的读者信息字段。
馆员账号在读者方面的权限主要包含获取读者信息(getreaderinfo)和修改读者信息(setreaderinfo)两种。以下分别介绍。
1.getreaderinfo:获取读者信息
“getreaderinfo”这个权限,如果单配在权限列表里面,表示完备的获取读者的权限,即获得读者所有信息。
为了安全管理的需要,如果想让权限较低的馆员只能获得读者的部分信息,可以对这个馆员账号的getreaderinfo权限进一步定义。
如何定义只获取部分读者信息
1.根据获取的字段来定义,需要穷举所有可以获得的字段
在getreaderinfo权限后面增加英文冒号,以及可以获取的字段,多个字段之间用“|”隔开,表示可以同时获得这些字段。
比如:“getreaderinfo:name”,表示可以获得读者完整姓名;
“getreaderinfo:name|department|tel”,表示可以获得读者完整姓名、单位、电话字段。
以这种方式定义的时候,不存在基本权限,所有要获取的字段都要列举出来。
2.根据权限级别来定义
以级别来定义时,存在一个基本权限。
当配置某个级别的权限时,配置为:在getreaderinfo后面加上英文冒号以及权限级别,所表达的权限为该级别以及该级别以下所有级别的权限总合。
比如“getreaderinfo:2"表示获取读者记录2级权限,包含基本权限+1级+2级中所定义的所有字段。
权限分级定义如下。后面级别的权限在前一级基础上累加
基本权限
字段 | 表达 | 备注 |
---|---|---|
馆代码 | libraryCode | 在读者xml中可以看到 |
证条码号 | barcode | |
证号 | cardNumber | |
读者类型 | readerType | |
机构代码 | oi | 在读者xml中可以看到 |
高级信息 | info | 读者xml里面原本不存在info这个字段,是借还前端为了需要,在获得读者信息时让getreaderinfo()API动态制造出的这个元素返回给前端,内容包含:可借总册数,当前可借册数,日历 |
借阅的册 | borrows | 指读者的在借信息 |
违约金 | overdues | |
预约记录 | reservations | |
预约未取次数 | outofReservations | |
参考ID | refID |
1级
字段 | 表达 | 备注 |
---|---|---|
发证日期 | createDate | |
失效日期 | expireDate | |
证状态 | state | |
姓名只显示姓 | ?name | "?name"作为字段配置在getreaderinfo下时,可以搭配Library.xml中patronMaskDefinition来定义如何脱敏,如果patronMaskDefinition不配下不定义,默认只显示姓。 |
2级 |
字段 | 表达 | 备注 |
---|---|---|
完整姓名 | name | |
姓名拼音 | namePinyin | |
显示名 | displayName | 该字段服务器端已定义但内务没有显示。OPAC 界面读者可以修改自己的显示名,修改后在内务读者xml可以被工作人员看到 |
性别 | gender | |
民族 | nation | 该字段服务器端已定义但目前所有前端都没有用到 |
注释 | comment |
3级
字段 | 表达 | 备注 |
---|---|---|
单位 | department | |
职务 | post | |
地址 | address |
4级
字段 | 表达 | 备注 |
---|---|---|
电话 | tel | |
5级
字段 | 表达 | 备注 |
---|---|---|
权限 | rights | |
存取定义 | access | |
书斋名称 | personalLibrary | |
好友 | friends |
6级
字段 | 表达 | 备注 |
---|---|---|
身份证号 | idCardNumber | |
出生日期 | birthDate |
7级
字段 | 表达 | 备注 |
---|---|---|
借阅历史 | borrowHistory | 指读者窗右侧的借阅历史,最多10条。读者窗左侧【借阅历史】属性页不受getreaderinfo权限管控 |
个性化 | preference | 该字段服务器端已定义但内务没有显示。preferrence 元素被 OPAC 用到,读者设置风格颜色什么都是存储在这里的,修改后可以用内务前端的读者窗口查看 |
8级
字段 | 表达 | 备注 |
---|---|---|
租金 | hire | |
押金字段 | foregift |
9级
字段 | 表达 | 备注 |
---|---|---|
指纹 | fingerprint | |
掌纹 | palmprint | |
人脸特征 | face | |
对象 | http://dp2003.com/dprms:file |
|
人脸照片 | getres |
3.采用级别+字段组合的方式来定义
级别+字段组合定义的形式,也是在getreaderinfo权限后面增加英文冒号,先配置级别权限,再用“|”隔开,后面配置需要获取的级别之外的字段。表示可以具备所配级别以及字段的读者信息。
如:getreaderinfo:1|gender|borrowhistory,表示在1级权限的基础上,加上gender,borrowhistory权限。
2.setreaderinfo:修改读者信息
setreaderinfo的配法与getreaderinfo一样。只是在配置的时候要注意:setreaderinfo的具体权限要小于或等于getreaderinfo的具体权限。也就是说如果某个字段可以被修改,那么必然这个字段可以被获取。
4.配置了getreaderinfo细项后的效果
配置了获得读者信息级别或者字段权限后,馆员从【读者查询】窗检索读者信息时,虽然能够检索到结果,但结果只会显示“滤除”,表示因为权限的原因,检索结果不显示。
在【读者】窗装载读者记录后,只能看到权限以内的字段(如果setreaderinfo大于getreaderinfo会怎样,要说明)
注意事项: 1.用于自助借还上的账号,getreaderinfo下必须包含证条码号(barcode)字段,否则无法识别读者记录。因为自助借还和书柜上都是以证条码号来匹配读者的。
对于各种自助借还前端或者公众号来说,一方面可以从自助设备所设定的账号的权限来限制传送到前端的内容;另一方面,对于必须传送到前端但又不想显示的一些信息,可以从前端界面的显示上进行隐藏。