仅注册管理员但不注册常规用户 - RubyOnRails

时间:2013-11-29 07:09:25

标签: ruby-on-rails ruby web

我正在开发一个Android应用程序,我正在使用Ruby on Rails开发服务器。我只希望管理员能够访问应用程序数据库。也就是说,服务器主页应包含“登录”(管理员登录...只有2-3人将成为管理员)链接但不应包含“注册”链接以防止未经授权的用户注册。基本上,我不希望任何随机的人登录管理页面。我该怎么做呢?

或者,我可以做的是在主页上保留“在这里注册”链接(用“仅限管理员”这一行)并允许人们注册但拒绝用户登录说“抱歉,你不是被认为是管理员“>我相信我可以通过将管理员ID硬编码到我的代码中并在每次有人登录时检查它们来做到这一点......但这看起来很蹩脚

或者我可以完全删除注册链接(仅保留登录链接)并从运行服务器的本地计算机上从终端本身创建管理员帐户,从而防止任何随机用户注册。再次,这看起来不方便..

这是我第一次参与网页开发,对此我知之甚少。请帮忙!谢谢!

3 个答案:

答案 0 :(得分:0)

您可以使用类似ActiveAdmin的内容。这也有助于您快速开发管理页面。您可以直接在种子数据中定义管理员,只有那些用户才能登录管理面板。由于AcftiveAdmin没有注册链接/功能,我相信 - 它应该符合您的目的。

http://www.activeadmin.info/

答案 1 :(得分:0)

这基本上看起来只是一个邀请注册。由于案例很简单,所以在代码中硬编码邀请令牌并不害羞。

class ApplicationController < ActionController::Base
  helper_method :match_invitation

  def match_invitation
    params[:invitation_token] == 123456
    # Or set it as an enviroment variable using Figaro gem
    # params[:invitation_token] == env['invitation_token']
  end
end

# View
<% if match_invitation %>
  <%= render partial: 'sign_up' %>

# Signup controller
class RegistrationController
  before_filter :check_invitation

  def check_invitation
    unless match_invitation
      return redirect_to root_path, alert: "You are not allowed to sign up"
    end
  end

end

用法,将令牌链接提供给您允许注册的人

www.example.com/sign_up?invitation_token=12345

答案 2 :(得分:0)

从控制台创建用户没什么不方便,这是最快捷,最简单的解决方案。 我甚至会删除您网页上的登录链接,并通过手动添加/登录您的家庭网址来访问它。 如果只有2个人管理应用程序,你可以尽可能多地破解。

ActiveAdmin也是一个不错的选择,但这取决于您希望管理员能够做什么。如果只是管理博客内容或电子商务后端,则无需费心安装和配置。