CN113050927A - 基于自定义指令的权限控制方法、装置和计算机设备 - Google Patents

基于自定义指令的权限控制方法、装置和计算机设备 Download PDF

Info

Publication number
CN113050927A
CN113050927A CN202110389544.1A CN202110389544A CN113050927A CN 113050927 A CN113050927 A CN 113050927A CN 202110389544 A CN202110389544 A CN 202110389544A CN 113050927 A CN113050927 A CN 113050927A
Authority
CN
China
Prior art keywords
component
authority
user
target
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110389544.1A
Other languages
English (en)
Other versions
CN113050927B (zh
Inventor
陈景山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An International Smart City Technology Co Ltd
Original Assignee
Ping An International Smart City Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ping An International Smart City Technology Co Ltd filed Critical Ping An International Smart City Technology Co Ltd
Priority to CN202110389544.1A priority Critical patent/CN113050927B/zh
Publication of CN113050927A publication Critical patent/CN113050927A/zh
Application granted granted Critical
Publication of CN113050927B publication Critical patent/CN113050927B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及研发管理技术领域,提供一种基于自定义指令的权限控制方法、装置和计算机设备,方法包括:获取页面包含的页面组件;从页面组件中筛选出目标组件;其中,目标组件为需要设置权限控制的组件;生成预设的全局Vue自定义指令;获取预先编写的bind函数与权限过滤方法;在全局Vue自定义指令中进行bind函数以及权限过滤方法的封装处理,得到封装后的目标自定义指令;在各目标组件内分别添加目标自定义指令,以基于目标自定义指令实现对于各目标组件的权限控制。本申请降低了组件权限控制的开发工作量与开发成本,提升了组件权限控制的处理效率,提高了组件权限控制的智能性。本申请还可以应用于区块链领域,上述目标自定义指令可以存储于区块链上。

Description

基于自定义指令的权限控制方法、装置和计算机设备
技术领域
本申请涉及研发管理技术领域,具体涉及一种基于自定义指令的权限控制方法、装置和计算机设备。
背景技术
当前,权限控制在现代的web(World Wide Web,全球广域网或万维网)系统中,特别在后台管理类系统中是一种常见的需求。现有的实现组件权限控制的处理方式,通常是对需要进行权限控制的页面组件逐一去调用控制权限的处理逻辑代码,并基于不同的处理逻辑代码来单独控制对应的组件的呈现状态以实现相应的权限控制。这样的权限控制方式需要提前为每个组件分别编写对应的实现权限控制的处理逻辑代码,使得开发人员的重复工作量较多,开发成本高且开发效率低,组件的权限控制的智能性也较低。
发明内容
本申请的主要目的为提供一种基于自定义指令的权限控制方法、装置、计算机设备和存储介质,旨在解决现有的权限控制方式需要提前为每个组件分别编写对应的实现权限控制的处理逻辑代码,使得开发人员的重复工作量较多,开发成本高且开发效率低,组件的权限控制的智能性也较低的技术问题。
本申请提出一种基于自定义指令的权限控制方法,所述方法包括步骤:
获取页面包含的页面组件;
从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成预设的全局Vue自定义指令;
获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
可选地,所述从所述页面组件中筛选出目标组件的步骤,包括:
分别获取各所述页面组件的影响度数值,以及分别获取各所述页面组件的使用次数值;
获取与所述影响度数值对应的第一权重值,以及获取与所述使用次数值对应的第二权重值;
基于所述第一权重值、所述第二权重值、所述影响度数值以及所述使用次数值,调用预设的计算公式计算生成与各所述页面组件分别对应的权限分数值;
获取预设的权限分数阈值,从所有所述权限分数值中筛选出大于所述权限分数阈值的目标权限分数值;
从所有所述页面组件中筛选出与所述目标权限分数值对应的第一组件;
接收目标用户输入的第二组件;
对所述第一组件与所述第二组件进行合并去重处理,得到处理后的第三组件;
将所述第三组件作为所述目标组件。
可选地,所述在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制的步骤之后,包括:
在接收到用户触发的访问包含有指定组件的指定页面的访问请求时,获取与所述用户对应的用户信息;其中,所述指定组件内添加有所述目标自定义指令;
调用与所述包含可配置属性的对象对应的第一方法,获取与所述指定组件对应的名单数据;
调用所述权限过滤方法,基于所述权限过滤方法的处理逻辑,使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过;
若为验证通过,调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据;其中,所述上下文数据至少包括用户角色权限数据;
调用所述权限过滤方法,并基于所述权限过滤方法的处理逻辑,使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果;
基于所述验证结果,执行对于所述指定组件的操作控制处理。
可选地,所述名单数据至少包括白名单数据;所述使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过的步骤,包括:
从所述名单数据获取所述白名单数据;
判断所述用户信息是否存在于所述白名单数据内;
若所述用户信息存在于所述白名单数据内,则判断所述名单数据是否包含有黑名单数据;
若所述名单数据包含有所述黑名单数据,则判断所述用户信息是否存在于所述黑名单数据内;
若所述用户信息不存在于所述黑名单数据内,判定所述第一权限验证处理的结果为验证通过;
若所述用户信息存在于所述黑名单数据内,判定所述第一权限验证处理的结果不为验证通过。
可选地,所述使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果的步骤,包括:
从所述用户角色权限信息中获取与所述用户信息对应的第一权限信息;
判断所述第一权限信息中是否包含与所述指定组件对应的第二权限信息;
若包含所述第二权限信息,从所述第一权限信息中获取所述第二权限信息;
基于所述第二权限信息,判断所述用户是否具备对于所述指定组件的可操作权限;
若所述用户具备对于所述指定组件的可操作权限,生成验证通过的第一验证结果;
若所述用户不具备对于所述指定组件的可操作权限,生成验证未通过的第二验证结果。
可选地,所述调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据的步骤之后,包括:
判断所述上下文数据中是否包含有组件参数数据;
若包含有所述组件参数数据,从所述上下文数据中获取所述组件参数数据;
基于所述组件参数数据,获取与所述指定组件对应的关联组件;
从所述用户角色权限数据中获取所述用户对于所述关联组件的操作权限;
基于所述操作权限,执行对于所述关联组件的操作控制处理。
可选地,所述基于所述验证结果,执行对于所述指定组件的操作控制处理的步骤,包括:
判断所述验证结果是否为验证通过;
若所述验证结果为验证通过,将所述指定组件设置为显示及可用的第一状态;
若所述验证结果不为验证通过,将所述指定组件设置为显示及禁用的第二状态。
本申请还提供一种基于自定义指令的权限控制装置,包括:
第一获取模块,用于获取页面包含的页面组件;
筛选模块,用于从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成模块,用于生成预设的全局Vue自定义指令;
第二获取模块,用于获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
封装模块,用于在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
添加模块,用于在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本申请中提供的基于自定义指令的权限控制方法、装置、计算机设备和存储介质,具有以下有益效果:
本申请中提供的基于自定义指令的权限控制方法、装置、计算机设备和存储介质,通过采用在预设的全局Vue自定义指令中封装预先编写的bind函数与权限过滤方法的形式来生成封装后的目标自定义指令,然后在需要设置权限控制的目标组件内添加该目标自定义指令,从而能够基于所述自定义指令来实现对于所述目标组件的权限控制,使得不再需要为每个组件编写对应的关于权限控制的处理逻辑代码,降低了组件权限控制的开发工作量与开发成本,减少对于处理逻辑代码的维护工作,提升了组件权限控制的处理效率,有效地提高了组件权限控制的智能性与简便性。
附图说明
图1是本申请一实施例的基于自定义指令的权限控制方法的流程示意图;
图2是本申请一实施例的基于自定义指令的权限控制装置的结构示意图;
图3是本申请一实施例的计算机设备的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
参照图1,本申请一实施例的基于自定义指令的权限控制方法,包括:
S1:获取页面包含的页面组件;
S2:从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
S3:生成预设的全局Vue自定义指令;
S4:获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
S5:在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
S6:在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
如上述步骤S1至S6所述,本方法实施例的执行主体为一种基于自定义指令的权限控制装置。在实际应用中,上述基于自定义指令的权限控制装置可以通过虚拟装置,例如软件代码实现,也可以通过写入或集成有相关执行代码的实体装置实现,且可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。本实施例中的基于自定义指令的权限控制装置,能够有效降低组件权限控制的开发工作量与开发成本,减少对于处理逻辑代码的维护工作,提升组件权限控制的处理效率,以及提高组件权限控制的智能性与简便性。具体地,首先获取页面包含的页面组件。其中,页面组件可以是指页面中的按钮或者区域等,页面组件也可简称为组件。然后从所述页面组件中筛选出目标组件。其中,所述目标组件为需要设置权限控制的组件。另外,可通过调用与组件的影响度数值、使用次数值相关的计算公式来初步计算出符合条件的初始组件,再基于该初始组件以及目标用户实际的使用需求来从页面组件中确定出需要设置权限控制的目标组件。
之后生成预设的全局Vue自定义指令。其中,上述全局Vue自定义指令是属于web前端Vue框架的自定义指令,Vue框架是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用,Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用(SPA)提供驱动。另外,可将该全局Vue自定义指令命名为v-permission指令,再使用Vue.directive()方法来建立出该全局Vue自定义指令。后续获取预先编写的bind函数与权限过滤方法。其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限。另外,上述bind函数方法属于钩子函数,只调用一次,指令第一次绑定到元素时使用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。上述组件元素可记为el,该组件元素el是指指令所绑定的元素,可以用来直接操作DOM。上述可配置属性的对象可记为binding,对象binding为一个至少包含arg,value等可配置属性的对象,arg是指传给指令的参数,value是指指令的绑定值。上述Vue编译生成的虚拟节点可记为vnode。上述操作权限信息至少可包括与所述组件元素相关的权限白名单信息、权限黑名单信息、上下文数据等信息。
在得到了上述bind函数与权限过滤方法后,在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令。其中,通过在全局Vue自定义指令中封装所述bind函数以及所述权限过滤方法,进而可以在页面的任意组件中添加封装后的目标自定义指令,以实现对于组件的权限控制。最后在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。其中,上述权限控制可包括控制组件在页面上的显示或隐藏,以及在组件显示的情况下的显示可用状态或显示禁用状态。本实施例通过采用在预设的全局Vue自定义指令中封装预先编写的bind函数与权限过滤方法的形式来生成封装后的目标自定义指令,然后在需要设置权限控制的目标组件内添加该目标自定义指令,从而能够基于所述自定义指令来实现对于所述目标组件的权限控制,使得不再需要为每个组件编写对应的关于权限控制的处理逻辑代码,降低了组件权限控制的开发工作量与开发成本,减少对于处理逻辑代码的维护工作,提升了组件权限控制的处理效率,有效地提高了组件权限控制的智能性与简便性。
进一步地,本申请一实施例中,上述步骤S2,包括:
S200:分别获取各所述页面组件的影响度数值,以及分别获取各所述页面组件的使用次数值;
S201:获取与所述影响度数值对应的第一权重值,以及获取与所述使用次数值对应的第二权重值;
S202:基于所述第一权重值、所述第二权重值、所述影响度数值以及所述使用次数值,调用预设的计算公式计算生成与各所述页面组件分别对应的权限分数值;
S203:获取预设的权限分数阈值,从所有所述权限分数值中筛选出大于所述权限分数阈值的目标权限分数值;
S204:从所有所述页面组件中筛选出与所述目标权限分数值对应的第一组件;
S205:接收目标用户输入的第二组件;
S206:对所述第一组件与所述第二组件进行合并去重处理,得到处理后的第三组件;
S207:将所述第三组件作为所述目标组件。
如上述步骤S200至S207所述,所述从所述页面组件中筛选出目标组件的步骤,具体可包括:首先分别获取各所述页面组件的影响度数值,以及分别获取各所述页面组件的使用次数值。其中,可以根据每一个页面组件的重要性预先设置有与各页面组件一一对应的影响度数值,重要性越高的页面组件,则其对应的影响度数值越大。且对各页面组件的影响度数值的具体数值不作限定,可根据实际需求进行设置。另外,上述使用次数值可以指各页面组件在使用至今的被使用的次数值,也可以为在预设时间周期内被使用的次数值,可以基于预设的组件使用记录数据来得到上述使用次数值。然后获取与所述影响度数值对应的第一权重值,以及获取与所述使用次数值对应的第二权重值。其中,对于上述第一权重值与第二权重值的具体数值不作具体限定,可根据实际需求进行设置,例如可将第一权重值与第二权重值分别设为0.6,0.4。之后基于所述第一权重值、所述第二权重值、所述影响度数值以及所述使用次数值,调用预设的计算公式计算生成与各所述页面组件分别对应的权限分数值。其中,上述计算公式可为加权求和公式:z=a*m+b*n,z为权限分数值,a为第一权重值,m为影响度数值,b为第二权重值,n为使用次数值。在得到了上述权限分数值后,获取预设的权限分数阈值,从所有所述权限分数值中筛选出大于所述权限分数阈值的目标权限分数值。其中,对于上述权限分数阈值不作具体限定,可根据实际需求进行设置。然后从所有所述页面组件中筛选出与所述目标权限分数值对应的第一组件。后续接收目标用户输入的第二组件。其中,上述目标用户可为网站管理者,上述第二组件可为该目标管理者认为的网页中包含的具备需要进行权限控制的需求的部分页面组件。最后对所述第一组件与所述第二组件进行合并去重处理,得到处理后的第三组件,并将所述第三组件作为所述目标组件。其中,上述合并去重处理是指先将所有第一组件和第二组件进行合并处理,得到合并后的组件,再从合并后的组件中筛选出重复的组件并只保留各重复的组件中的一个,从而得到上述第三组件。本实施例通过综合考虑页面组件的影响度数值、使用次数值以及目标用户实际的使用需求来确定出需要设置权限控制的目标组件,有效地保证了目标组件的设置准确性与智能性,也保障了目标用户的使用体验。
进一步地,本申请一实施例中,上述步骤S6之后,包括:
S600:在接收到用户触发的访问包含有指定组件的指定页面的访问请求时,获取与所述用户对应的用户信息;其中,所述指定组件内添加有所述目标自定义指令;
S601:调用与所述包含可配置属性的对象对应的第一方法,获取与所述指定组件对应的名单数据;
S602:调用所述权限过滤方法,基于所述权限过滤方法的处理逻辑,使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过;
S603:若为验证通过,调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据;其中,所述上下文数据至少包括用户角色权限数据;
S604:调用所述权限过滤方法,并基于所述权限过滤方法的处理逻辑,使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果;
S605:基于所述验证结果,执行对于所述指定组件的操作控制处理。
如上述步骤S600至S605所述,在完成了在指定组件内添加上述目标自定义指令后,便能在用户访问包含该指定组件的指定页面时,基于该目标自定义指令来自动实现对于该指定组件的权限控制。具体地,所述在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制的步骤之后可包括:在接收到用户触发的访问包含有指定组件的指定页面的访问请求时,首先获取与所述用户对应的用户信息。其中,所述指定组件内添加有所述目标自定义指令。另外,可以通过调用预设的信息获取接口来查询到用户的用户信息,用户信息可包括用户的身份信息,例如姓名信息、id信息等。然后调用与所述包含可配置属性的对象对应的第一方法,获取与所述指定组件对应的名单数据。其中,上述第一方法为binding.value()方法,上述名单数据可至少包括白名单数据,还可以包括黑名单数据,该名单数据为用于校验用户是否具备对于指定组件的可视权限,即基于该名单数据与用户信息进行验证处理后来实现控制指定组件在页面上的显示或隐藏状态。之后调用所述权限过滤方法,基于所述权限过滤方法的处理逻辑,使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过。其中,可基于上述名单数据中的白名单数据与黑名单数据来对所述用户进行第一权限验证处理并得到相应的结果。如果为验证通过,调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据。其中,所述上下文数据至少包括用户角色权限数据。另外,上述第二方法具体为vnode.context()方法,上述用户角色权限数据为用于确定用户是否具备对于组件的可操作权限的数据。此外,上述上下文数据除了可包括用户角色权限数据外,还可包括组件参数数据,上述组件参数数据含有与指定组件具有关联关系的其他组件的信息,例如指定组件的父组件。后续调用所述权限过滤方法,并基于所述权限过滤方法的处理逻辑,使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果。其中,可先从上述用户角色权限数据中获取与所述用户信息对应的第一权限信息,再基于该第一权限信息对所述用户进行第二权限验证处理,得到对应的验证结果。最后基于所述验证结果,执行对于所述指定组件的操作控制处理。其中,上述验证结果为验证通过或验证未通过,如果验证结果为验证通过,将所述指定组件设置为显示及可用的第一状态,而如果验证结果为验证未通过,则将所述指定组件设置为显示及禁用的第二状态。本实施例在接收到用户触发的访问包含有指定组件的指定页面的访问请求时,会先基于与所述指定组件对应的名单数据与所述用户的用户信息对用户进行第一权限验证处理,并在验证通过后再进一步基于与所述指定组件对应的上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果,并基于该验证结果来得到用户对于该指定组件的使用权限,进而根据该使用权限来准确地对指定组件进行相应控制,有效地保证了对于指定组件的权限控制的准确性。
进一步地,本申请一实施例中,所述名单数据至少包括白名单数据;上述步骤S602中的使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过,包括:
S6020:从所述名单数据获取所述白名单数据;
S6021:判断所述用户信息是否存在于所述白名单数据内;
S6022:若所述用户信息存在于所述白名单数据内,则判断所述名单数据是否包含有黑名单数据;
S6023:若所述名单数据包含有所述黑名单数据,则判断所述用户信息是否存在于所述黑名单数据内;
S6024:若所述用户信息不存在于所述黑名单数据内,判定所述第一权限验证处理的结果为验证通过;
S6025:若所述用户信息存在于所述黑名单数据内,判定所述第一权限验证处理的结果不为验证通过。
如上述步骤S6020至S6025所述,所述名单数据至少包括白名单数据;所述使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过的步骤,具体可包括:首先从所述名单数据获取所述白名单数据。其中,上述白名单数据与黑名单数据为用于确定用户是否具备对于指定组件的可视权限的数据。然后判断所述用户信息是否存在于所述白名单数据内。其中,可通过将该用户信息与白名单数据中包含的所有信息进行匹配处理,若上述白名单数据中存储有与该用户信息相同的目标用户信息,则判定所述用户信息存在于所述白名单数据内;而若上述白名单数据中未存储有与该用户信息相同的目标用户信息,则判定所述用户信息不存在于所述白名单数据内。如果所述用户信息存在于所述白名单数据内,则判断所述名单数据是否包含有黑名单数据。如果所述名单数据包含有所述黑名单数据,则判断所述用户信息是否存在于所述黑名单数据内。其中,判断所述用户信息是否存在于所述黑名单数据内的判断方式可参照上述判断所述用户信息是否存在于所述白名单数据内的方式,在此不再赘述。如果所述用户信息不存在于所述黑名单数据内,判定所述第一权限验证处理的结果为验证通过。而如果所述用户信息存在于所述黑名单数据内,判定所述第一权限验证处理的结果不为验证通过。本实施例中,通过基于从与所述指定组件对应的名单数据中获取到的白名单数据与黑名单数据来同时对用户进行第一权限验证处理,有效地保证了得到的第一权限验证处理的结果的准确性,有利于根据该第一权限验证处理的结果来准确的执行后续处理,提高后续对于用户的第二验证验证处理的准确性与智能性。
进一步地,上述判定所述第一权限验证处理验证未通过的步骤之后还可包括:从所述白名单数据中查找出与所述用户信息相同的目标用户信息;将所述目标用户信息从所述白名单数据中剔除,得到更新后的白名单数据;存储所述更新后的白名单数据。本实施例中,当用户信息存在于黑名单时会判定用户不具备对指定页面的任何权限,在出现了用户信息同时存在与黑名单与白名单中时,则会智能地将白名单中的目标用户信息进行删除处理,以保证白名单数据的准确性,从而能够有效避免错误的白名单数据对后续的用户验证以及组件的操作控制造成影响,保证用户验证处理以及组件的操作控制处理的准确性。
进一步地,本申请一实施例中,上述步骤S604中的使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果,包括:
S6040:从所述用户角色权限信息中获取与所述用户信息对应的第一权限信息;
S6041:判断所述第一权限信息中是否包含与所述指定组件对应的第二权限信息;
S6042:若包含所述第二权限信息,从所述第一权限信息中获取所述第二权限信息;
S6043:基于所述第二权限信息,判断所述用户是否具备对于所述指定组件的可操作权限;
S6044:若所述用户具备对于所述指定组件的可操作权限,生成验证通过的第一验证结果;
S6045:若所述用户不具备对于所述指定组件的可操作权限,生成验证未通过的第二验证结果。
如上述步骤S6040至S6045所述,所述使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果的步骤,具体可包括:首先从所述用户角色权限信息中获取与所述用户信息对应的第一权限信息。其中,上述第一权限信息可为用户具有的与上述指定界面中包含的组件之间的权限信息。然后判断所述第一权限信息中是否包含与所述指定组件对应的第二权限信息。其中,如果第一权限信息中不存在与所述指定组件对应的第二权限信息,则直接生成验证未通过的第三验证结果。如果包含所述第二权限信息,从所述第一权限信息中获取所述第二权限信息。其中,上述第二权限信息的内容可为:对所述指定组件具备可操作权限,或者为:对所述指定组件不具备可操作权限。之后基于所述第二权限信息,判断所述用户是否具备对于所述指定组件的可操作权限。如果所述用户具备对于所述指定组件的可操作权限,生成验证通过的第一验证结果。而如果所述用户不具备对于所述指定组件的可操作权限,生成验证未通过的第二验证结果。本实施例中,在基于所述名单数据与所述用户信息对所述用户进行第一权限验证处理并验证通过后,通过进一步基于上下文数据中的用户角色权限信息对用户进行第二权限验证处理来验证用户是否具备对于所述指定组件的可操作权限,并基于该验证结果来得到用户对于该指定组件的使用权限,进而根据该使用权限来准确地执行对于指定组件的操作控制处理,有效地保证了对于指定组件的权限控制的准确性。
进一步地,本申请一实施例中,上述步骤S603之后,包括:
S6030:判断所述上下文数据中是否包含有组件参数数据;
S6031:若包含有所述组件参数数据,从所述上下文数据中获取所述组件参数数据;
S6032:基于所述组件参数数据,获取与所述指定组件对应的关联组件;
S6033:从所述用户角色权限数据中获取所述用户对于所述关联组件的操作权限;
S6034:基于所述操作权限,执行对于所述关联组件的操作控制处理。
如上述步骤S6030至S6034所述,所述调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据的步骤之后,还可包括:首先判断所述上下文数据中是否包含有组件参数数据。其中,组件参数数据中包含有与指定组件具有关联关系的其他组件的信息,例如指定组件的父组件。如果包含有所述组件参数数据,从所述上下文数据中获取所述组件参数数据。然后基于所述组件参数数据,获取与所述指定组件对应的关联组件。其中,如果上下文数据中包含组件参数数据,则可基于该组件参数数据来得到与指定组件对应的关联组件。并可同时基于所述用户角色权限数据来获取所述用户对于所述关联组件的操作权限,进而实现对于所述关联组件的操作控制处理。之后从所述用户角色权限数据中获取所述用户对于所述关联组件的操作权限。最后基于所述操作权限,执行对于所述关联组件的操作控制处理。本实施例中,通过上下文数据可以获取到指定组件的关联组件,进而可以根据用户的角色权限数据来同时对该关联组件进行权限控制,从而可以在控制指定组件的同时也能控制与指定组件相关的关联组件,有效地实现了对于不同组件级别的权限控制的灵活配置,提高了组件权限控制的智能性。
进一步地,本申请一实施例中,上述步骤S605,包括:
S6050:判断所述验证结果是否为验证通过;
S6051:若所述验证结果为验证通过,将所述指定组件设置为显示及可用的第一状态;
S6052:若所述验证结果不为验证通过,将所述指定组件设置为显示及禁用的第二状态。
如上述步骤S6050至S6052所述,所述基于所述验证结果,执行对于所述指定组件的操作控制处理的步骤,具体可包括:判断所述验证结果是否为验证通过。如果所述验证结果为验证通过,将所述指定组件设置为显示及可用的第一状态。而如果所述验证结果不为验证通过,将所述指定组件设置为显示及禁用的第二状态。其中,可为指定组件添加disabled禁用属性来实现其禁用状态,禁用状态是指用户无法对指定组件执行操作的状态。本实施例通过基于验证结果的具体内容来执行对于所述指定组件的操作控制处理,保证了对于指定组件准确的权限控制。
本申请实施例中的基于自定义指令的权限控制方法还可以应用于区块链领域,如将上述目标自定义指令等数据存储于区块链上。通过使用区块链来对上述目标自定义指令进行存储和管理,能够有效地保证上述目标自定义指令的安全性与不可篡改性。
上述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等封装模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参照图2,本申请一实施例中还提供了一种基于自定义指令的权限控制装置,包括:
第一获取模块1,用于获取页面包含的页面组件;
筛选模块2,用于从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成模块3,用于生成预设的全局Vue自定义指令;
第二获取模块4,用于获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
封装模块5,用于在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
添加模块6,用于在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
本实施例中,上述基于自定义指令的权限控制装置中的第一获取模块1、筛选模块2、生成模块3、第二获取模块4、封装模块5与添加模块6的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S1至S6的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述筛选模块2,包括:
第一获取单元,用于分别获取各所述页面组件的影响度数值,以及分别获取各所述页面组件的使用次数值;
第二获取单元,用于获取与所述影响度数值对应的第一权重值,以及获取与所述使用次数值对应的第二权重值;
计算单元,用于基于所述第一权重值、所述第二权重值、所述影响度数值以及所述使用次数值,调用预设的计算公式计算生成与各所述页面组件分别对应的权限分数值;
第一筛选单元,用于获取预设的权限分数阈值,从所有所述权限分数值中筛选出大于所述权限分数阈值的目标权限分数值;
第二筛选单元,用于从所有所述页面组件中筛选出与所述目标权限分数值对应的第一组件;
接收单元,用于接收目标用户输入的第二组件;
处理单元,用于对所述第一组件与所述第二组件进行合并去重处理,得到处理后的第三组件;
确定单元,用于将所述第三组件作为所述目标组件。
本实施例中,上述基于自定义指令的权限控制装置中的第一获取单元、第二获取单元、计算单元、第一筛选单元、第二筛选单元、接收单元、处理单元与确定单元的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S200至S207的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述基于自定义指令的权限控制装置,包括:
第三获取模块,用于在接收到用户触发的访问包含有指定组件的指定页面的访问请求时,获取与所述用户对应的用户信息;其中,所述指定组件内添加有所述目标自定义指令;
第四获取模块,用于调用与所述包含可配置属性的对象对应的第一方法,获取与所述指定组件对应的名单数据;
第一判断模块,用于调用所述权限过滤方法,基于所述权限过滤方法的处理逻辑,使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过;
第五获取模块,用于若为验证通过,调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据;其中,所述上下文数据至少包括用户角色权限数据;
处理模块,用于调用所述权限过滤方法,并基于所述权限过滤方法的处理逻辑,使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果;
控制模块,用于基于所述验证结果,执行对于所述指定组件的操作控制处理。
本实施例中,上述基于自定义指令的权限控制装置中的第三获取模块、第四获取模块、第一判断模块、第五获取模块、处理模块与控制模块的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S600至S605的实现过程,在此不再赘述。
进一步地,本申请一实施例中,所述名单数据至少包括白名单数据;上述第一判断模块,包括:
第三获取单元,用于从所述名单数据获取所述白名单数据;
第一判断单元,用于判断所述用户信息是否存在于所述白名单数据内;
第二判断单元,用于若所述用户信息存在于所述白名单数据内,则判断所述名单数据是否包含有黑名单数据;
第三判断单元,用于若所述名单数据包含有所述黑名单数据,则判断所述用户信息是否存在于所述黑名单数据内;
第一判定单元,用于若所述用户信息不存在于所述黑名单数据内,判定所述第一权限验证处理的结果为验证通过;
第二判定单元,用于若所述用户信息存在于所述黑名单数据内,判定所述第一权限验证处理的结果不为验证通过。
本实施例中,上述基于自定义指令的权限控制装置中的第三获取单元、第一判断单元、第二判断单元、第三判断单元、第一判定单元与第二判定单元的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S6020至S6025的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述处理模块,包括:
第四获取单元,用于从所述用户角色权限信息中获取与所述用户信息对应的第一权限信息;
第四判断单元,用于判断所述第一权限信息中是否包含与所述指定组件对应的第二权限信息;
第五获取单元,用于若包含所述第二权限信息,从所述第一权限信息中获取所述第二权限信息;
第五判断单元,用于基于所述第二权限信息,判断所述用户是否具备对于所述指定组件的可操作权限;
第一生成单元,用于若所述用户具备对于所述指定组件的可操作权限,生成验证通过的第一验证结果;
第二生成单元,用于若所述用户不具备对于所述指定组件的可操作权限,生成验证未通过的第二验证结果。
本实施例中,上述基于自定义指令的权限控制装置中的第四获取单元、第四判断单元、第五获取单元、第五判断单元、第一生成单元与第二生成单元的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S6040至S6045的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述基于自定义指令的权限控制装置,包括:
第二判断模块,用于判断所述上下文数据中是否包含有组件参数数据;
第六获取模块,用于若包含有所述组件参数数据,从所述上下文数据中获取所述组件参数数据;
第七获取模块,用于基于所述组件参数数据,获取与所述指定组件对应的关联组件;
第八获取模块,用于从所述用户角色权限数据中获取所述用户对于所述关联组件的操作权限;
操作模块,用于基于所述操作权限,执行对于所述关联组件的操作控制处理。
本实施例中,上述基于自定义指令的权限控制装置中的第二判断模块、第六获取模块、第七获取模块、第八获取模块与操作模块的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S6030至S6034的实现过程,在此不再赘述。
进一步地,本申请一实施例中,上述控制模块,包括:
第六判断单元,用于判断所述验证结果是否为验证通过;
第一设置单元,用于若所述验证结果为验证通过,将所述指定组件设置为显示及可用的第一状态;
第二设置单元,用于若所述验证结果不为验证通过,将所述指定组件设置为显示及禁用的第二状态。
本实施例中,上述基于自定义指令的权限控制装置中的第六判断单元、第一设置单元与第二设置单元的功能和作用的实现过程具体详见上述基于自定义指令的权限控制方法中对应步骤S6050至S6052的实现过程,在此不再赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏、输入装置和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括存储介质、内存储器。该存储介质存储有操作系统、计算机程序和数据库。该内存储器为存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储目标组件、全局Vue自定义指令、bind函数、权限过滤方法以及目标自定义指令。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机设备的显示屏是计算机中必不可少的一种图文输出设备,用于将数字信号转换为光信号,使文字与图形在显示屏的屏幕上显示出来。该计算机设备的输入装置是计算机与用户或其他设备之间进行信息交换的主要装置,用于把数据、指令及某些标志信息等输送到计算机中去。该计算机程序被处理器执行时以实现一种基于自定义指令的权限控制方法。
上述处理器执行上述基于自定义指令的权限控制方法的步骤:
获取页面包含的页面组件;
从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成预设的全局Vue自定义指令;
获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种基于自定义指令的权限控制方法,具体为:
获取页面包含的页面组件;
从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成预设的全局Vue自定义指令;
获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
综上所述,本申请实施例中提供的基于自定义指令的权限控制方法、装置、计算机设备和存储介质,通过采用在预设的全局Vue自定义指令中封装预先编写的bind函数与权限过滤方法的形式来生成封装后的目标自定义指令,然后在需要设置权限控制的目标组件内添加该目标自定义指令,从而能够基于所述自定义指令来实现对于所述目标组件的权限控制,使得不再需要为每个组件编写对应的关于权限控制的处理逻辑代码,降低了组件权限控制的开发工作量与开发成本,减少对于处理逻辑代码的维护工作,提升了组件权限控制的处理效率,有效地提高了组件权限控制的智能性与简便性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM通过多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种基于自定义指令的权限控制方法,其特征在于,包括:
获取页面包含的页面组件;
从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成预设的全局Vue自定义指令;
获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
2.根据权利要求1所述的基于自定义指令的权限控制方法,其特征在于,所述从所述页面组件中筛选出目标组件的步骤,包括:
分别获取各所述页面组件的影响度数值,以及分别获取各所述页面组件的使用次数值;
获取与所述影响度数值对应的第一权重值,以及获取与所述使用次数值对应的第二权重值;
基于所述第一权重值、所述第二权重值、所述影响度数值以及所述使用次数值,调用预设的计算公式计算生成与各所述页面组件分别对应的权限分数值;
获取预设的权限分数阈值,从所有所述权限分数值中筛选出大于所述权限分数阈值的目标权限分数值;
从所有所述页面组件中筛选出与所述目标权限分数值对应的第一组件;
接收目标用户输入的第二组件;
对所述第一组件与所述第二组件进行合并去重处理,得到处理后的第三组件;
将所述第三组件作为所述目标组件。
3.根据权利要求1所述的基于自定义指令的权限控制方法,其特征在于,所述在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制的步骤之后,包括:
在接收到用户触发的访问包含有指定组件的指定页面的访问请求时,获取与所述用户对应的用户信息;其中,所述指定组件内添加有所述目标自定义指令;
调用与所述包含可配置属性的对象对应的第一方法,获取与所述指定组件对应的名单数据;
调用所述权限过滤方法,基于所述权限过滤方法的处理逻辑,使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过;
若为验证通过,调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据;其中,所述上下文数据至少包括用户角色权限数据;
调用所述权限过滤方法,并基于所述权限过滤方法的处理逻辑,使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果;
基于所述验证结果,执行对于所述指定组件的操作控制处理。
4.根据权利要求3所述的基于自定义指令的权限控制方法,其特征在于,所述名单数据至少包括白名单数据;所述使用所述名单数据与所述用户信息对所述用户进行第一权限验证处理,并判断所述第一权限验证处理的结果是否为验证通过的步骤,包括:
从所述名单数据获取所述白名单数据;
判断所述用户信息是否存在于所述白名单数据内;
若所述用户信息存在于所述白名单数据内,则判断所述名单数据是否包含有黑名单数据;
若所述名单数据包含有所述黑名单数据,则判断所述用户信息是否存在于所述黑名单数据内;
若所述用户信息不存在于所述黑名单数据内,判定所述第一权限验证处理的结果为验证通过;
若所述用户信息存在于所述黑名单数据内,判定所述第一权限验证处理的结果不为验证通过。
5.根据权利要求3所述的基于自定义指令的权限控制方法,其特征在于,所述使用所述上下文数据对所述用户进行第二权限验证处理,得到对应的验证结果的步骤,包括:
从所述用户角色权限信息中获取与所述用户信息对应的第一权限信息;
判断所述第一权限信息中是否包含与所述指定组件对应的第二权限信息;
若包含所述第二权限信息,从所述第一权限信息中获取所述第二权限信息;
基于所述第二权限信息,判断所述用户是否具备对于所述指定组件的可操作权限;
若所述用户具备对于所述指定组件的可操作权限,生成验证通过的第一验证结果;
若所述用户不具备对于所述指定组件的可操作权限,生成验证未通过的第二验证结果。
6.根据权利要求3所述的基于自定义指令的权限控制方法,其特征在于,所述调用与所述虚拟节点对应的第二方法,获取所述指定组件的上下文数据的步骤之后,包括:
判断所述上下文数据中是否包含有组件参数数据;
若包含有所述组件参数数据,从所述上下文数据中获取所述组件参数数据;
基于所述组件参数数据,获取与所述指定组件对应的关联组件;
从所述用户角色权限数据中获取所述用户对于所述关联组件的操作权限;
基于所述操作权限,执行对于所述关联组件的操作控制处理。
7.根据权利要求3所述的基于自定义指令的权限控制方法,其特征在于,所述基于所述验证结果,执行对于所述指定组件的操作控制处理的步骤,包括:
判断所述验证结果是否为验证通过;
若所述验证结果为验证通过,将所述指定组件设置为显示及可用的第一状态;
若所述验证结果不为验证通过,将所述指定组件设置为显示及禁用的第二状态。
8.一种基于自定义指令的权限控制装置,其特征在于,包括:
第一获取模块,用于获取页面包含的页面组件;
筛选模块,用于从所述页面组件中筛选出目标组件;其中,所述目标组件为需要设置权限控制的组件;
生成模块,用于生成预设的全局Vue自定义指令;
第二获取模块,用于获取预先编写的bind函数与权限过滤方法;其中,所述bind函数属于钩子函数,所述bind函数至少包括三个参数,所述三个参数分别为组件元素、包含可配置属性的对象以及Vue编译生成的虚拟节点,所述bind函数用于获取所述组件元素的操作权限信息;所述权限过滤方法为基于所述组件元素的操作权限信息编写生成的处理逻辑方法,用于判断访问用户对所述组件元素是否具备可视权限,以及用于在所述访问用户具备所述可视权限时,判断所述访问用户对所述组件元素是否具备操作权限;
封装模块,用于在所述全局Vue自定义指令中进行所述bind函数以及所述权限过滤方法的封装处理,得到封装后的目标自定义指令;
添加模块,用于在各所述目标组件内分别添加所述目标自定义指令,以基于所述目标自定义指令实现对于各所述目标组件的权限控制。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202110389544.1A 2021-04-12 2021-04-12 基于自定义指令的权限控制方法、装置和计算机设备 Active CN113050927B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110389544.1A CN113050927B (zh) 2021-04-12 2021-04-12 基于自定义指令的权限控制方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110389544.1A CN113050927B (zh) 2021-04-12 2021-04-12 基于自定义指令的权限控制方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN113050927A true CN113050927A (zh) 2021-06-29
CN113050927B CN113050927B (zh) 2024-01-23

Family

ID=76519099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110389544.1A Active CN113050927B (zh) 2021-04-12 2021-04-12 基于自定义指令的权限控制方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN113050927B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701790A (zh) * 2023-08-03 2023-09-05 中国电信股份有限公司 基于路由的前端权限控制方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131683A1 (en) * 2010-11-24 2012-05-24 Nassar Richard S Unified online content manager apparatuses, methods, and systems
CN104536981A (zh) * 2014-12-05 2015-04-22 北京奇虎科技有限公司 实现浏览器安全的方法、浏览器客户端和装置
CN109669597A (zh) * 2018-10-31 2019-04-23 武汉艺果互动科技股份有限公司 用户浏览网站时的前端权限控制方法、设备及存储设备
CN110442326A (zh) * 2019-08-11 2019-11-12 西藏宁算科技集团有限公司 一种基于Vue简化前后端分离权限控制的方法及其系统
CN110708202A (zh) * 2019-10-15 2020-01-17 深圳前海微众银行股份有限公司 插件节点的配置方法、装置、设备及存储介质
CN110851802A (zh) * 2019-11-06 2020-02-28 腾讯科技(深圳)有限公司 权限控制方法、装置、设备及计算机可读介质
CN112241266A (zh) * 2019-07-17 2021-01-19 腾讯科技(北京)有限公司 前端渲染场景下的权限控制方法、装置、设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131683A1 (en) * 2010-11-24 2012-05-24 Nassar Richard S Unified online content manager apparatuses, methods, and systems
CN104536981A (zh) * 2014-12-05 2015-04-22 北京奇虎科技有限公司 实现浏览器安全的方法、浏览器客户端和装置
CN109669597A (zh) * 2018-10-31 2019-04-23 武汉艺果互动科技股份有限公司 用户浏览网站时的前端权限控制方法、设备及存储设备
CN112241266A (zh) * 2019-07-17 2021-01-19 腾讯科技(北京)有限公司 前端渲染场景下的权限控制方法、装置、设备及存储介质
CN110442326A (zh) * 2019-08-11 2019-11-12 西藏宁算科技集团有限公司 一种基于Vue简化前后端分离权限控制的方法及其系统
CN110708202A (zh) * 2019-10-15 2020-01-17 深圳前海微众银行股份有限公司 插件节点的配置方法、装置、设备及存储介质
CN110851802A (zh) * 2019-11-06 2020-02-28 腾讯科技(深圳)有限公司 权限控制方法、装置、设备及计算机可读介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
追梦的小猴子: "vue自定义全局指令实现按钮的权限管理", Retrieved from the Internet <URL:https://blog.csdn.net/zhangquan23/article/details/87186139> *
黄冰;: "基于MVVM的高校团委网站设计与开发", 电脑知识与技术, no. 11 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116701790A (zh) * 2023-08-03 2023-09-05 中国电信股份有限公司 基于路由的前端权限控制方法及相关设备
CN116701790B (zh) * 2023-08-03 2023-11-07 中国电信股份有限公司 基于路由的前端权限控制方法及相关设备

Also Published As

Publication number Publication date
CN113050927B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
Mouelhi et al. A model-based framework for security policy specification, deployment and testing
AU2015218520B2 (en) Service extraction and application composition
CN101073057B (zh) 提供命令行操作环境的方法和系统
CN112328482A (zh) 基于脚本模板的测试方法、装置、计算机设备和存储介质
CN103116723A (zh) 一种网址拦截处理的方法、装置和系统
Li et al. Security attack analysis using attack patterns
CN112668041B (zh) 单证文件的生成方法、装置、计算机设备和存储介质
CN109787957B (zh) 配置文件的配置方法及相关装置
CN113326081A (zh) 静态资源的处理方法、装置、计算机设备和存储介质
CN106339633A (zh) 用于用户控制的方法和设备
CN111597424A (zh) 爬虫识别方法、装置、计算机设备和存储介质
CN112558946A (zh) 一种生成代码的方法、装置、设备和计算机可读存储介质
CN101379504B (zh) 用于复合应用的基于角色的访问控制管理的方法及系统
CN111880921A (zh) 基于规则引擎的作业处理方法、装置和计算机设备
CN114218097A (zh) 测试用例生成方法、装置、计算机设备和存储介质
CN112650659B (zh) 埋点设置方法、装置、计算机设备和存储介质
CN110162963B (zh) 一种识别过权应用程序的方法
CN113050927A (zh) 基于自定义指令的权限控制方法、装置和计算机设备
US20220405068A1 (en) Managing asset packages for interactive bot development
Calabró et al. Integrating access control and business process for GDPR compliance: A preliminary study.
CN109947403B (zh) 一种安全目标的分解与建模方法及相关设备
CN113535260B (zh) 基于模拟器的数据处理方法、装置、设备及存储介质
CN114238273A (zh) 数据库管理方法、装置、设备及存储介质
Mouelhi et al. Inroads in Testing Access Control
Whiting et al. Automated model-based attack tree analysis using HiP-HOPS

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant