问题标签 [user-permissions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - 设计用户访问/权限类
我正在一个站点上工作,该站点将具有几个模块,这些模块对某些用户完全可用,对其他用户半可用,而对其余用户不可用。
例如:
“员工”能够响应分配给他的客户支持票证。
“经理”能够管理其团队中的所有员工和支持工单,包括查看特定员工的工单。
“管理员”能够管理所有团队中的所有经理、员工和工单,以及其他一些核心功能。
此外,如果当前用户是管理员或经理,则在某些页面上会显示一些附加字段。(例如删除/标记事物的链接)。这些不会显示给员工。
我想创建一个“权限”模型来处理以下逻辑:
确定用户是否可以访问当前页面。
确定是否应显示页面的特定部分。(例如,编辑/删除的特殊链接只显示给管理员和经理)。
我需要一些建议/建议来设计这个类,特别是它应该有什么方法来完成第二个要求。
php - 设计多级用户权限系统
我正在一个具有像树一样的数据库模式的站点上工作。从上到下我有:
- 一家公司可以有很多
- 可以有很多的位置
- 可以拥有许多的舰队
- 汽车
用户权限系统必须灵活,因为有人可以在树的任何级别获得或限制访问。例如,管理位置 x 的人将默认拥有对位置 x 下方的所有车队和位置 x 下方的所有车辆的完全访问权限。但我也应该能够限制用户对位置 x 以下任何节点的访问。
为这样的权限系统开发模式的正确方法是什么?存储用户可以访问的每个节点是否现实,即使它有点多余?我的目标是能够轻松地运行查询,例如获取用户可以访问的所有位置。
mysql - MySQL 授予数据库除一张表之外的所有权限
我一直无法找到实现以下目标的合理解决方案:
我希望拥有一个对数据库(或具有相同架构的一系列数据库)拥有所有权限的用户,除了一个表,他们将只有 SELECT 权限。
本质上,我希望用户可以自由支配数据库,但不能更新特定表。
到目前为止,我已经尝试过,但无济于事:
授予该数据库的所有权限(db_name.*),然后专门授予该所需表的选择权限(希望它会覆盖“全部”,愚蠢的我知道)。
授予对该数据库 (db_name.*) 的所有权限,然后撤销插入、更新和删除。但这产生了一个错误,说没有 db_name.table_name 的授权规则。
从我收集到的信息来看,我必须单独授予数据库每个表上的所有权限,只读表除外。
请有人告诉我有更简单的方法
注意:我正在运行 MySQL 5.1。Ubuntu 10.04 上可用的最新版本。
salesforce - Salesforce:如果当前用户有权更新当前记录,如何仅呈现顶点。记录级别的安全性
我正在尝试修复我为这个问题VisualForce 发布的代码:将回车符转换为长文本字段中的 html 换行符
正如您在该帖子中看到的那样,Visualforce 页面有一个自定义控制器,其中包含 Case 的选项卡式内容。列出 CaseComments 的唯一方法是使用自定义 Apex。控制器执行一个简单的查询来检索当前案例的所有 CaseComments。
如果当前用户有权编辑特定案例评论的实例,我只想显示“编辑”链接。
我在这里找到了一篇关于基于对象级安全性动态渲染组件的好博客:http: //forcearchitects.deliveredinnovation.com/2011/02/05/render-visualforce-components-dynamically-based-on-object-level-security/
根据我尝试使用的帖子
如下所示:
不幸的是,可更新的测试是在对象级别上的,因此如果当前用户有权编辑任何 CaseComment,它会在所有 CaseComment 上返回 true。
如果当前用户可以修改特定行,我需要记录级别验证以仅显示编辑操作。
有任何想法吗?
更新 当我重读我的问题时,我发现它并不像应该的那样清楚。
当我遍历 CaseComment 集时,对于给定的 Case,我需要知道当前用户是否可以安全地编辑特定 CaseComment 而不会看到“您没有权限页面”。此测试必须在 CaseComment by CaseComment 记录级别的基础上进行,因为任何给定的案例都会有许多 CaseComments 都由不同的用户贡献
svn - 是否可以在 MacOS X 中的 svn 存储库的文件夹中拥有不同的用户权限(允许谁不允许)?
我有多个开发人员在同一个 svn 存储库中的不同项目中工作,我不希望他们访问错误的项目。
我认为拥有多个存储库可以解决问题,现在我真的不知道,在尝试在网络上查找之后仍然没有找到如何或是否可以配置 svn/apache 以仅允许特定帐户访问特定存储库。
有没有办法在 Mac OS X 上通过 subversion 实现这种基本的安全级别?
有没有办法为此使用htpassword?
提前感谢您的帮助。
asp.net - 将可重用的 ASP.NET WebControl 连接到加载数据的方法
我正在尝试创建一个控件,该控件可以扩展其他 web 控件并根据用户权限设置一些属性,如可见和启用。
这是一个示例,您的用户角色需要包含“CanSave”权限:
我试图保持这种可重用性,这就是为什么 PermissionExtender 位于一个单独的项目中,该项目不能与其他项目有任何依赖关系。为了做出决定,控制当然需要从其他地方(数据库或其他东西)获取此信息。我制作了另一个控件,并且使用事件,上述扩展器将由主控件设置,因此只需要知道在哪里查找信息。
现在需要配置主控件以了解有关角色和权限的信息来自何处。我的想法是在可重用项目中有一个接口,并在其他地方实现它,然后配置我的控件去找到实现我需要的方法的类并通过反射加载它。但我不清楚这是如何工作的。我可能会将主控件放在母版页中,并为其提供一个类名,如 PermissionClass="SecurityLibrary.PermissionsClass"。有点像 ObjectDatasource 这样做,但欢迎提出其他建议。
方法签名就像:
bool HasPermission(string permission)
它会知道当前用户角色并使用该组合,查找角色是否包含权限。
如何将控件的调用连接到我的主项目中的方法,该方法可以提供必要的信息而不使它们依赖。
asp.net-mvc - 如何实现像 SO 这样的基于信誉的用户权限?
你可能认为这个问题应该在 Meta SO 上,但它不应该,因为它基本上是关于 ASP.Net MVC 但我想要实现的技术已经在 SO 中实现了。
我希望用户在获得更多声誉的同时拥有权力,就像我们在 StackOverflow 中所做的那样,我的问题是如何设计用户认证系统?我们可以依赖内置的表单身份验证吗?以及如何管理要为用户显示哪些链接(取决于信誉),哪些不是?
我认为我们不能在这里使用角色,所以我们最终不会有 1000 个角色,对吧?但我们只能使用 2 个角色(管理员、用户)。
[编辑]:
我认为创建自己的用户表而不是依赖于表单身份验证更好,因此我可以将信誉字段(和其他字段)添加到用户表并像你说的那样跟踪它。顺便说一句@MartinHN,我知道if
你所说的,但我的问题是有没有更聪明的方法来处理这些事情?
facebook - Facebook离线访问密钥/登录问题
当用户第一次访问我的应用程序时,我会请求几个权限(user_checkins
, publish_stream
, offline_access
)。在允许所有权限后,用户转到隐私设置并删除前 2 个设置之一(不是offline_access
)。即使用户注销并返回我的应用程序,Facebook 也不会要求他允许返回已删除的权限。
当我开始请求离线访问权限时出现了问题,因为访问令牌没有刷新,令牌仍然包含权限。
如何为具有正确权限的用户请求新令牌?
php - 用于检查更改 mysql 数据库的 PHP 脚本
我正在尝试在我的网络服务器上安装照片应用程序 (ZenPhoto),但安装程序抱怨:
我的主机控制面板仅向我显示以下数据库用户权限:
所以 INDEX 和 ALTER 不见了?我可以完成安装,但想知道我是否应该期待任何问题?是否有一个 PHP / mySQL 函数可用于检查我是否可以更改数据库?
ruby-on-rails - Rails 3公司帐户有很多用户,限制对数据的访问
我想知道在我的应用程序中构建身份验证/授权的最佳方式。我希望有
许多公司帐户,可能使用子域
帐户有很多用户
并且用户只能访问由他们自己或具有相同帐户的其他用户创建的记录。
我所做的研究提供了许多混合和匹配的想法,以奇怪和奇妙的方式组合设计/cancan/authlogic,但我还没有找到任何东西可以向我展示限制用户访问同一数据的最佳方法模型。
例如:
账户 1:欧亚大陆
用户 1:鲍勃
用户 2:吉姆
账户 2:东亚
用户 1:戴夫
用户 2:艾伦
Isbn 1:account_id 为 1
Isbn 2:account_id 为 2
我如何确保 Bob 无法访问或删除 Isbn 2?
///update 当然,现在我已经发布了这个,我的 google fu 已经启动,我从 RyanB 找到了CanCan 2.0的自述文件,看起来很完美:
> 资源
如果您需要根据模型的属性更改授权怎么办?您可以通过将条件哈希作为最后一个参数传递给 can. 例如,如果您只想允许一个人访问他拥有的项目,您可以设置 :user_id 选项。