2015-04-25 1 views
-1

Я хочу отобразить страницу, если страница является общедоступной. Если пользователь страницы пытается просмотреть страницу, если она закрыта, и если администратор пытается просмотреть страницу.Синтаксис, позволяющий администратору просматривать все страницы

Я написал

<% if @user.is_public == true || session[:user_id] == @user.id %> 
<%= render "public_page" %> 
<% else %> 
Private Page 
<%end%> 

Я не знаю, как добавить что-то вроде ниже смеси. Есть идеи?

<% unless session[:site_admin] %> 

Цель - разрешить администратору сайта просматривать все личные страницы.

+0

Является ли «public_page» частичной страницей и * Частная страница * - это текст, показанный пользователям, у которых нет доступа к нему? – makhan

ответ

0

Просто добавьте проверку в случае, если:

<% if @user.is_public == true || session[:user_id] == @user.id || session[:site_admin] %> 
    <%= render "public_page" %> 
<% else %> 
    Private Page 
<%end%> 

Btw, тем более рубин способ именования is_public метод будет public?

Btw Кстати, если ваш проект большой, и вы хотите твердый управление разрешениями. Хорошей практикой является использование драгоценного камня Devise в сочетании с CanCanCan. Затем вы определяете все разрешения в одном месте, models/ability.rb и проверяете разрешения с can? :read, @post.

Смежные вопросы