【问题标题】:Issue customizing Devise controller :require_no_authentication问题定制设计控制器:require_no_authentication
【发布时间】:2016-06-09 22:39:56
【问题描述】:

我已经生成了额外的设计控制器,并且我想修改 Registrations 控制器以仅允许 super_users 访问该控制器上的新建、创建和删除选项。我已经实现了一个方法super_user?,它根据用户的 super_user 状态返回一个布尔值。

def super_user?
   if user_signed_in? 
       current_user.super_user == true ? true : false
    else
      false
    end
  end

然后在控制器中,如果super_user 方法返回false,我会重定向并呈现一个flash 消息。当没有用户登录或没有超级用户权限的已登录用户尝试访问注册页面时,他们将按计划重定向。

def new
    if super_user?
      super
    else
      redirect_to root_url
      flash[:warning]= "Only Administrators can add accounts"
    end
  end

但是,当具有 super_user 能力的用户登录时,他们会被重定向到主页,并且此消息会记录到控制台:

Filter chain halted as :require_no_authentication rendered or redirected

根据我在研究此主题时的理解,此方法是 Devise 的一部分,用于重定向已经从 sign_up 和 sign_in 页面登录的用户,因为他们实际上已经是用户。但是,在我的情况下,我希望登录的超级用户能够访问 sign_up 页面以注册其他用户。有谁知道我该如何解决这个问题?

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    所以我实际上弄清楚了发生了什么,我想回答以防其他人遇到这个问题。

    如果您只是将skip_before_filter :require_no_authentication 添加到 RegistrationsController,那么一切都会按预期运行。我找到了答案here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多