传播Javascript的权限

jve*_*ema 7 javascript permissions

我正在讨论将相当复杂的权限从服务器传播到AJAX应用程序的最佳方法,我不确定最好的方法.

本质上,我希望定义我的权限,以便我可以一次性请求一整套权限,并根据需要调整UI(UI更改可以与禁用某些上下文菜单项一样低).当然,我仍然需要强制执行权限服务器端.

所以,我想知道是否有人对最好的方法有任何建议

  1. 维护权限并在服务器代码中使用它们
  2. 可以轻松访问javascript中的权限
  3. 不必为每个单独的权限向服务器发出往返请求

思考?

CMP*_*mer 2

如果您有一组明确的权限,例如“用户级别”或“用户类型”,您可以将值传递到隐藏字段中并通过 DOM 访问该值。如果您的权限更细化,您仍然可以执行此操作,但您要么有很多隐藏字段,要么必须将信息编码为 XML 或 JSON 或某种其他格式。

您可以将它们设置为位标志,以便可以将单个数值与掩码进行“或”操作来查看用户是否具有特定活动的权限。这将非常灵活,只要您没有超过 32 个左右的特定“权限”,就可以在一个非常小的包(基本上是一个无符号整数)中对这些权限进行任何排列。

例如:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in
Run Code Online (Sandbox Code Playgroud)

然后,具有 权限的用户0x000007可以编辑、创建和删除,但不能执行其他操作。

无论哪种情况,我认为您都走在正确的轨道上 - 每个页面调用一次发出请求,将权限存储在全局 JavaScript 数据结构中,然后从那里开始。AJAX 很好,但您不想向服务器查询页面上的每个特定权限。您可以在页面加载时执行此操作,设置页面的呈现并将值保存在全局变量中,然后在本地引用事件函数的权限。