设计:使用用户属性限制页面访问

时间:2016-12-28 23:51:18

标签: ruby-on-rails devise attributes

相对较新的rails,我有一个简单的网页应用程序使用设计进行用户身份验证。一个属性是Observable.from(mAdapter.getItems())布尔值,为大多数用户设置:admin,我将在控制台中为需要具有管理访问权限的少数用户手动更改为nil

我的问题是:如何将对特定网页的访问权限限制为标记为true的管理员权限的用户?

我在true中尝试了一些逻辑,但它似乎没有按照需要重定向我(指pages_controller部分):

user_list

我非常感谢您对重定向或以其他方式限制对 class PagesController < ApplicationController before_action :authenticate_user!, :except => [:welcome] def welcome #code removed for brevity's sake end def dashboard #ditto end def user_list unless current_user.admin == true redirect_to pages_dashboard_path else @users = Users.all end end end 页面的访问权限的目标提出任何建议。

2 个答案:

答案 0 :(得分:0)

在你的控制器中你可以做这样的事情

class PagesController < ApplicationController
  ...
  def user_list
    if current_user.admin == true
      @users = Users.all
    else
      render :not_an_admin 
    end
  end
end

您无法将它们发送到他们无法访问的页面

您可以选择渲染新视图

答案 1 :(得分:0)

user_list方法中,型号名称应为singular

def user_list
 unless 
   current_user.admin == true
    redirect_to pages_dashboard_path
 else    
   @users = User.all
 end
end