2010-12-14 77 views
0

我想限制用户范围,一旦通过身份验证,特定的命名空间。但他们将是动态的(即不是一条命名路线)。例如:设计current_user vs user_session

/rails/redteam/ 
/rails/blueteam/ 
/rails/greenteam/ 

或或许仅仅:

/rails/ 
...or... 
/

如果我们知道他们的“团队”则不能,不知怎的,假设在路由?

如何最好地设置和安全地处理这个我应该在user_session中存储团队名称吗?或者,查询他们的组的current_user并验证它是否与before_filter中的已知组相匹配?

路线本身呢?基本上荣耀的ID,也许是一种固定的种类?不知道“Rails的方式?”

btw-我知道授权宝石,如CanCandecl_auth但试图避免它们的复杂性,如果可能的话,因为我是一个新手,如果这还不够明显。

回答

2

我知道授权的宝石一样惨惨和decl_auth的,但试图避免其复杂性,如果可能的话

你好得多,并参观一个时间(或其他的,或两者)这些宝石,而不是尝试滚动你自己的解决方案,国际海事组织。当你的需求发生变化时,最终你会遇到复杂情况,如果没有一个好的框架,那么问题就会发生。

+1

有点什么我害怕......我真的只是寻找一种*简单*的方式来防止用户修改(或查看此事)任何其他团队的数据。我所看到的或者至少了解授权宝石的是,他们似乎*更多地面向特定的角色*(管理员,用户,主持人等),而不是关于访问权限或*所有权*。我做了一个不正确的假设?如果是这样,也许你可以推荐一个宝石... – Meltemi 2010-12-14 21:58:04

+0

随着坎肯斯它是所有关于能力。 “我能够:更新这个对象”。你如何实现这个能力取决于你 – 2010-12-14 22:17:29

+0

我只使用'declarative_authorization'。 CanCan现在很受欢迎,据说易于使用 - 我会从此开始。 – zetetic 2010-12-14 22:38:10

相关问题