问题标签 [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 回答
409 浏览

ruby-on-rails - 使用声明式身份验证

我正在尝试使用声明式身份验证来控制对我网站的访问。但是当我使用 filter_resource_access 我得到这个错误。我还试图找出如何使默认角色成为订阅者

“管理员”的未定义方法“名称”:字符串

用户模型

通道控制器

授权规则.rb

错误

0 投票
1 回答
141 浏览

ruby-on-rails - 声明式身份验证,无法注册用户

我正在使用声明式身份验证,但是当我单击链接注册用户时,我被告知您不允许查看该页面。我什至在给客人全能时也明白这一点。

授权规则

用户控制器

布局视图

0 投票
1 回答
5349 浏览

ruby-on-rails - 创建后,设置角色

我正在尝试使用 after_create 将默认用户角色设置为订阅者。但它似乎没有做出任何改变。新用户的角色始终是 [" " ]。

用户模型

0 投票
1 回答
514 浏览

ruby-on-rails - declarative_authorization 和用户上下文

我计划在 Rails 3 应用程序中使用声明式授权。我有以下模型关系:

这里的概念是我要将各种数据集分割成不同的上下文。但是,给定用户可能在每个上下文中具有不同的角色——可能是一个上下文中的管理员和另一个上下文中的基本用户。我已经实现了 current_user 和 current_context 用于控制器和视图。

我计划使用 if_attribute 来引用正确数据集的正确权限。但是,问题是当我不能/不应该在模型中引用 current_context(其中定义了 role_symbols)时,如何使 def role_symbols 仅返回与特定上下文中的用户关联的角色。

有任何想法吗?

0 投票
1 回答
3446 浏览

ruby-on-rails - 设计和 current_user

我有一个 Rails 3 应用程序,我正在尝试实现设计和声明授权。declarative_authorization 的一个重要部分是用户模型中存在“role_symbols”函数。由于我实现角色的方式,我在 User 模型中实现了一个实例方法来跟踪一个值(我们称之为 foo),如下所示:

然后我们将在 role_symbols 方法中使用 foo 的值来限制有效角色,可能是这样的:

问题是当我尝试在控制器中为 current_user 设置 foo 的值时,该值不会保持不变,例如:

是成功的,但是当我检查另一个视图(或控制器)中的值时,current_user.foo 的值是 nil。

current_user 对象不只是一个持久化在 Session 中的 User 对象吗?如果是这样,在 current_user 对象中设置实例值是否有一些锁定?

0 投票
2 回答
559 浏览

ruby-on-rails - rails声明性授权,允许控制器的所有操作?

使用 rails 的 delcarative_authorization gem,是否有允许角色访问所有控制器操作的快捷方式?

还不够,因为我的控制器中的控制方法不仅仅是 CRUD。

就像是:

会很完美,但我在文档中找不到它。

0 投票
1 回答
735 浏览

ruby-on-rails-3 - 将角色作为我的用户表上的列,还是通过连接表(角色和分配)来做更好?- 导轨 3

你可以在这里看到我的模型:

https://gist.github.com/768947

只是为了解释正在发生的事情,我有几个模型。在我的应用程序的核心,有:项目、阶段、上传、评论、用户。然后是角色和分配来管理用户授权。

我正在使用插件 declarative_authorization & design for login 执行此操作。

所以第一个问题是,在我的用户模型/表中添加一列“角色”并将每个用户的角色存储在那里更好吗?如果我有一个具有多个角色的用户,那么我可以将所有角色存储为一个数组并根据需要循环访问它们。

还是像我现在设置它那样做更好,我使用两个单独的表和一堆连接来设置分配?我只有 4 个角色:设计师、客户、管理员、超级用户。

从计算资源的角度来看,使用列执行每个查询比使用连接“更便宜”的意义上更好,或者差异不是那么显着吗?

我想,我的问题的根源是......现在,如果我想将一个项目分配给 current_user,我只需这样做current_user.projects.each do |project|并以这种方式循环它们。这是在我完成之后:@projects = current_user.projects在项目控制器中。这同样适用于我的所有其他模型——除了用户和角色。

但是,如果我想找到一个角色为“客户”的用户,它会很快变得令人费解。还是我把它复杂化了?

任何帮助,将不胜感激。

0 投票
1 回答
286 浏览

ruby-on-rails - 是否可以在单个 Rails 应用程序中使用域或子域的 cookie 用户会话

我想在一个多子域应用程序中登录管理员和简单用户。管理员应该有权访问所有子域(即他们的会话应该存储在所有子域都可用的 cookie 中)。用户应该只能访问他们登录的子域。

例如:

admin "administrator" 在域 url (mydomain.com) 或任何子域 (例如 abc.mydomain.com) 登录并保持登录所有子域。因此,他(“管理员”)可以访问 efg.mydomain.com、abc.mydomain.com、mydomain.com 等。

用户“simpleuser”在 abc.mydomain.com 登录。他(“simpleuser”)只能访问此子域(即 cookie 仅与 abc.mydomain.com 子域相关)

我知道可以选择将 cookie 关联到子域或域,但我想在同一个应用程序中混合这种行为。有谁知道一种方法?

这适用于 Rails 3

我不想通过我的应用程序(即通过 cancan 或声明性授权)限制对子域的访问。理想情况下,应通过 cookie 在子域级别阻止访问。我相信这是一种更安全的方法,因为它不必再设置一个软件来控制对站点的访问。

0 投票
1 回答
832 浏览

ruby-on-rails - 设计和声明性授权功能测试问题

在使用设计和声明式授权时,我很难让功能测试正常工作。我可以使用设计测试助手来登录用户,然后将 current_user 变量填充到控制器中。但是,一旦我使用 post_with 测试助手进行声明性授权, current_user 就会变为 nil。

任何人都可以举一个例子,说明在同时使用设计和声明性授权时如何编写功能测试?

谢谢

0 投票
2 回答
8555 浏览

ruby-on-rails - nil:NilClass 的未定义方法“保存”

尝试注册新用户时出现此错误。

NoMethodError(未定义的方法save' for nil:NilClass): app/controllers/users_controller.rb:49:in创建'app/controllers/users_controller.rb:48:in `create'