背景
我必须将现有的 javascript 应用程序(一页应用程序)迁移到 extjs。应用程序的显示和行为取决于用户的权限。
当前设计
应用程序分为插件,它们代表授予权限的功能集。每个插件都包含一个 javascript 文件。用户可以拥有一个或多个插件的权限。根据权限,这些文件将加载到页面的头部。每个插件都会将其条目添加到主菜单并公开用于驱动应用程序的方法。
权限存储在mysql数据库中。
ExtJs的默认设计
在 ExtJs 中,源文件包含每个类。在构建过程中,所有 .js 文件都会连接起来,生成一个包含所有内容的大 .js 文件。
最好的设计方法是什么?
- 我考虑使用
sencha cmd
进行自定义编译,并以这种方式为每个插件创建一个 .js 文件。然后我可以像现在一样加载这些插件。但这会导致构建和部署过程变得复杂。 - 我还考虑过使用标准 Ext 构建流程创建一个且唯一的 .js 文件。然后我将通过 ajax 从服务器加载权限以构建菜单。所有对象和方法都将存在,但只有用户有权限的情况下才可以访问。
在我看来,第二种方法更容易维护,但它似乎存在安全问题,因为每个人都可以查看源代码并找出服务器上公开并由ajax使用的数据接口(interface)。
欢迎任何评论、想法或建议。谢谢!
最佳答案
第二点是正确的选择。如果您检查服务器端权限(在更新数据等时),您只需要 ExtJS 即可根据权限显示/隐藏菜单项。这样,恶意用户可以打开或关闭某些插件/项目,但他们永远无法执行需要比通常拥有的更多权限的操作。
关于extjs - 如何在extjs中设计权限和条件加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19158092/