后来,我们把那坨代码全部推倒重写。
1️⃣ 权限定义(语义清晰)
exportenumPermission { READ = 'read', WRITE = 'write', EDIT = 'edit', DELETE = 'delete',}
2️⃣ 用户模型
exportinterfaceUser { id: string; permissions: Permission[];}
3️⃣ 核心权限校验
exportfunctionhasPermission( user: User, required: Permission ): boolean { return user.permissions.includes(required);}
4️⃣ 批量校验
exportfunctionhasAllPermissions( user: User, required: Permission[] ): boolean { return required.every(p => user.permissions.includes(p));}exportfunctionhasAnyPermission( user: User, required: Permission[] ): boolean { return required.some(p => user.permissions.includes(p));}
没有黑魔法,没有炫技。
但,任何一个新同事,5 分钟就能看懂并修改。