1

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

我正在考虑的选项:

  1. 拥有一个用户模型,只有一个条目。检查是否有任何用户登录并显示管理工具。
  2. 使用像 can-can/devise 这样的宝石?是不是矫枉过正?
  3. 有一个非常晦涩的 URL,我可以在其中执行管理任务(听起来很蹩脚但最简单!)
4

6 回答 6

3

基本身份验证对您有用吗?这是上面的铁轨...

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

于 2013-09-06T21:01:36.573 回答
2

“3。” 不是最安全的选择。“1。” 这可能会花费您一些额外的时间(Michael Hartl 的教程可能会给您一些想法)。

“2。” 有点矫枉过正。您不需要 CanCan,只要您不定义注册路线并且不在您的视图上放置任何用于登录的链接,只需 Devise 即可。

于 2013-09-06T20:02:26.993 回答
0

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

于 2013-09-06T20:00:16.410 回答
0

第一个选项看起来不错......但我会选择第二个,因为您仍然需要在 #1 上进行身份验证,如果您希望为其他用户添加未来的功能,您可以使用 CanCan + Devise。

而且它们很简单,所以我认为它不会给你带来太多麻烦

于 2013-09-06T20:01:50.923 回答
0

您将需要某种授权。

我推荐3个选项:

  1. 自己建造
  2. 使用设计 <- 我的 goto
  3. 使用巫术

创建用户模型后,生成一个名为 admin 的迁移并将其设置为布尔值。

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

<% if current_user.admin? %>
<%= yield %>
<% else %>
You have no access
<% end %>
于 2013-09-06T21:57:34.977 回答
0

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

我认为这一步一步地解释了它!祝你好运

于 2013-09-06T22:00:23.480 回答