问题标签 [declarative-authorization]

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.

0 投票
1 回答
764 浏览

ruby-on-rails-3 - 使用 gem "bullet" 修复 "declarative_authorization" gem 中的 N+1 查询

目前我正在开发一个大型 Web 应用程序并使其运行更快,我决定重构所有 N+1 查询(以减少对数据库的请求数量,http://rails-bestpractices.com/posts/29-fix-n -1-查询)。所以我安装了现在不适用于 Rails 3.1.1 的 gem "bullet"(你可以使用来自https://github.com/flyerhzm/bullet的 fork )。在每个页面上使用 declarative_authorization gem 时,我都会收到相同的警报:

您能帮我解决这个问题并加快查询速度吗?

0 投票
1 回答
190 浏览

ruby - 具有声明性授权的 Authlogic - 如何在视图中显示用户角色?

我正在使用声明性角色,一个 Ryan Bates 的“railscast”教程。我想在视图中显示登录用户的角色。我可以使用任何变量来显示角色的名称吗?

0 投票
2 回答
4549 浏览

c# - 具有多个角色的自定义 CodeAccessSecurityAttribute

我正在为我们的应用程序开发一些基于角色的安全性,我基本上想做定制的版本 MVC AuthorizeAttribute- 但仅限于业务逻辑层,我们不链接到 MVC。

我看过PrincipalPermissionAttribute但似乎没有办法自定义它,因为它是密封的。我只想创建一个自定义版本,我可以在其中检查任何角色列表中的成员资格,而无需使用多个属性,并且还定义在哪里查找角色成员资格。

.Net 中是否有类似的东西我错过了?或者是否有人对如何在不重新实现 ASP.Net 的 AuthorizeAttribute/RoleProvider/etc 的情况下做到这一点有一些见解?

编辑

我目前有一个命令式版本正在运行,但我宁愿有一个声明属性版本,因为它更容易在方法/类上方看到它。

现在,我的业务层的抽象基类中有以下内容:

我喜欢能够使用Roles.Administratoretc,因为角色名称是可怕的(基于 Active Directory 组......),所以我正在考虑将这些细节包装在自定义属性的构造函数中,我可以在类/方法之上扑通一声.

GetAccountRoles只是可注入角色提供者属性的外观,我可以将其设置为使用 AD 或使用数据库的测试版本。

我可以子类Attribute化,但不确定它会如何启动安全检查。

0 投票
1 回答
188 浏览

ruby - 如何为每个用户设置 declarative_authorization

我有这两个模型:

而这个declarative_authorization角色的设置:

我想允许向用户显示他上传的图像 - 只有他的图像。我的意思是,例如:

而当用户设置了 url/photos/1时,这个图像只会显示为user_id数字1,当user_id=2显示这个地址时,他看不到图像......

有可能这样做吗?

0 投票
0 回答
167 浏览

ruby-on-rails - rails declarative_authorization,查找哪个角色具有给定特权

假设我有许多角色可以在不同条件下执行相同的操作。例如:

有没有办法 - 如果 current_user 被允许喝酒 - 知道在哪个角色下这是真的(如果 current_user 有两个角色)?

非常感谢。

(http://www.tzi.org/~sbartsch/declarative_authorization/master/ 是 declarative_authorization 文档的 url...我一直在寻找但找不到我需要的东西)

0 投票
1 回答
748 浏览

ruby-on-rails-3 - Rake gems:install 在遵循声明性授权 Railscast 时产生错误

我正在关注 Railstcast #188 以获得在我的 Rails 3 应用程序(使用 Ruby 1.9.2)上运行的声明性授权,并且在安装 gem 时遇到了问题。

Ryan 建议添加config/environment.rb以下内容:

然后用sudo rake gems:install.

但是,当我尝试时出现错误:

我试过rake gems:install了,但得到了这个错误:

在GitHub 上安装 declarative_authorization 的说明推荐了一个不同的过程,我也遵循了该过程,但仍然无法通过rake:gems install.

有谁知道可能会发生什么,所以我可以解决这个问题?

更新:这是我的 config/environment.rb 的样子:

RVM -v:rvm 1.10.0-pre 宝石列表:

0 投票
1 回答
379 浏览

ruby-on-rails-3 - 如何检查 if_attribute :id => is_in { 来自递归方法的 id 数组}

我有一个资源数据库,其中资源可以属于不同的位置。用户和组(自引用用户表)可以在不同位置具有不同的角色。组可以在其他组内。授权适用于使用“if_attribute”检查 location_id 是否在允许用户显示、编辑等的 location_id 中的单个用户:

由于这些组可以相互“嵌套”,我认为我必须使用递归方法来查找所有“合法”位置 ID。我试过这个:

使用在“授权执行”例程之外定义的方法:

问题是方法调用没有找到方法。我收到此错误:

NoMethodError(未定义的方法 `find_group_location_ids' for (Authorization::Engine::AttributeValidator:0x7fb63448e2b0)

我试图将方法定义放在很多不同的地方,但没有运气。

如何使用 if_attribute 来查看 id 是否在递归方法的数组中?

0 投票
0 回答
283 浏览

ruby-on-rails - Rspec 和声明式授权:虚拟应用程序中的规则不适用于测试

我正在尝试集成测试使用 authlogic 和声明式授权的 gem。为了检查我的虚拟应用程序中的自定义控制器,我创建了一个新的 spec/dummy/config/authorization_rule.rb 文件:

当我在测试环境(rails s -e test)中启动服务器时,一切都按预期工作。但是,当我使用 capybara 运行测试时(无论使用 rack_test、selenium 还是 webkit),自定义规则都没有加载,我的测试用户无权访问控制器。

声明式授权的内置 test-helper without_access_control 确实适用于 rack_test,但不适用于 js=true。

有任何想法吗?由于这是“声明性”,我无法动态添加权限(运行时)。或者有可能吗?

感谢您的任何想法!

0 投票
0 回答
456 浏览

javascript - 是否有任何基于角色的声明性授权框架用于丰富的基于浏览器的 JavaScript Web 应用程序?

在我说别的之前:是的,我知道需要在服务器端进行授权。即便如此,客户端应用程序仍然必须隐藏不适用于登录用户的 GUI 元素。

话虽如此,问题来了:是否有任何基于角色的声明性授权框架用于丰富的基于浏览器的 JavaScript Web 应用程序?

背景:对于基于浏览器的 JavaScript Web 应用程序(GWT、ExtJS 等),通常不需要动态的服务器端视图生成,因为整个应用程序可以作为静态文件下载,并且所有视图转换都在浏览器中进行。因此,实现基于角色的安全性要么需要在用户登录并加载应用程序后进行动态 GUI 定制,要么在登录后在服务器端动态生成应用程序文件,然后再将任何内容下载到客户端(也可以构建和缓存) )。这个 SO 问题讨论了这些方法:How to use Ext JS for role based application

谢谢!

0 投票
1 回答
249 浏览

ruby-on-rails - 声明式授权嵌套 if_attribute

我在理解声明性授权和嵌套 if_attributes 的文档时遇到了一些困难。

楷模:

我的规则:

在我的层次结构中,我定义了一个 company_admin 角色,应该允许编辑他自己的公司以及所有部门和用户。公司管理员上方还有一个角色,可以完全编辑和添加公司以及下面的所有角色。

我似乎挂断了上面列出的规则(我知道这是不正确的,它只是一个例子的填充物)。我需要确定当前用户只能编辑自己的公司,不能编辑其他公司。这似乎是一个嵌套的 if_attribute 但我似乎无法理解文档中嵌套 if_attributes 的示例。

提前感谢您的任何帮助!