Rails应用程序:只有管理员用户,没有其他用户的最佳方式

时间:2013-09-06 19:56:31

标签: ruby-on-rails ruby-on-rails-3 rubygems

我正在尝试为自己创建一个Rails应用程序/站点,我可以在其中提供一些信息和一些文本。我想知道如何在没有任何其他用户的条款的情况下在其中创建管理员用户(我自己)。我基本上永远不会需要多个用户,所有其他模型数据都属于这一个(管理员)用户。

我在考虑的选项:

  1. 拥有一个用户模型,只有一个条目。检查是否有用户登录并显示admin utils。
  2. 使用像can-can / devise这样的宝石?这是一种矫枉过正吗?
  3. 有一个非常模糊的网址,我可以执行管理任务(听起来很蹩脚,但最简单!)

6 个答案:

答案 0 :(得分:3)

基本的auth会为你工作吗?这是投射在它上面的铁轨......

http://railscasts.com/episodes/82-http-basic-authentication

答案 1 :(得分:2)

“3”。不是最安全的选择。 “1”。它可能需要你一些额外的时间(Michael Hartl的tutorial可能会给你一些想法)。

“2”。有点矫枉过正。只要您没有定义注册路由,并且您没有在您的视图上添加任何链接进行登录,您就不需要CanCan,只需Devise即可。

答案 2 :(得分:0)

我会选择第一个选项。这样您就可以拥有安全层而无需创建大量代码。

答案 3 :(得分:0)

第一个选项似乎很好......但是我会选择第二个,因为你仍然需要在#1上进行身份验证,如果你想为其他用户添加未来功能,你可以使用CanCan + Devise。

此外,它们非常简单,所以我认为它不会给你带来太多麻烦

答案 4 :(得分:0)

您需要某种授权。

我推荐3个选项:

  1. 自己建造
  2. 使用devise< - my goto
  3. 使用巫术
  4. 创建用户模型后,生成名为admin的迁移并将其设置为布尔值。

    然后在你的application.html.erb文件中,在yeild调用之前,创建一个if语句:

    <% if current_user.admin? %>
    <%= yield %>
    <% else %>
    You have no access
    <% end %>
    

答案 5 :(得分:0)

https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role

我认为这是一步一步解释的!祝你好运