当前位置: 首页 > Web前端 > JavaScript

Web前端权限管理

时间:2023-03-26 21:38:31 JavaScript

前端页面和功能点的权限管理。角色定义:constROLE={MANAGER:1,USER:2,}产品定义:constPRODUCT_TYPE={TESTA:0,TESTB:1}功能点定义:(具体到页面上的按钮,某些功能的显示和隐藏,etc.)constFUNCTION_POINT={SEARCH:"查询",MODIFY:"修改",}权限定义:(页面路径/权限对应的功能点)constAUTH={"/user":`ROLE${ROLE.MANAGER}`,"/testA":`ROLE${ROLE.USER}&&PRODUCT_TYPE${PRODUCT_TYPE.TESTA}`,"/testB":`ROLE${ROLE.USER}&&PRODUCT_TYPE${PRODUCT_TYPE.TESTB}`,[FUNCTION_POINT.SEARCH]:`ROLE${ROLE.MANAGER}`,}权限管理:letAuthManager={role:null,productType:null,//初始化用户角色initial(role,productType){this.role=role;this.productType=productType;},check(prop){如果(!AUTH[prop])返回true;letstring="return"+AUTH[prop];string=string.replaceAll("ROLE",`${this.role}===`);string=string.replaceAll("PRODUCT_TYPE",`${this.productType}===`);让结果;try{//eslint-disable-next-lineno-new-funcresult=newFunction(string)();}赶上{结果=真;}返回结果;},getDefaultPage(){让结果;switch(this.role){caseROLE.MANAGER:result="/";休息;caseROLE.USER:if(this.productType===PRODUCT_TYPE.TESTA)result="/testA";如果(this.productType===PRODUCT_TYPE.TESTB)结果=“/testB”;休息;默认值:中断;}返回结果;}}导出默认的AuthManager;