AuthLogic администратор пользователя и скрыть ссылки администратора для не-администраторов - PullRequest
0 голосов
/ 31 января 2011

Как создать пользователя с правами администратора и как скрыть гиперссылки для пользователей без прав администратора?

Ответы [ 2 ]

1 голос
/ 04 августа 2014

Альтернативный подход, который я использую регулярно, - это использование другой модели под названием UserGroup. Например:

$ rails g scaffold user_group name:string description:text is_admin:boolean

Затем вы добавите user_group_id:integer к вашей модели пользователя:

$ rails g migration add_user_group_id_to_users user_group_id:integer

В вашей пользовательской модели вы можете добавить два метода экземпляра, чтобы выяснить, является ли какой-либо конкретный пользователь «обычным» или «администратором»:

#app/models/user.rb
def normal?
  self.user_group && !self.user_group.is_admin
end

def admin?
  self.user_group && self.user_group.is_admin
end

Вероятно, это слишком много для проектов, в которых есть только администраторы и не администраторы, но это удобно, если у вас много категорий пользователей, таких как ecommerce_manager, story_editor и т. Д.

0 голосов
/ 31 января 2011

Я смотрел долго и упорно, чтобы узнать, как сделать это, в конце концов, это было слишком просто! Мне не нужно было менять маршрут, загружать код контроллера или что-то в этом роде. Просто добавьте поле в базу данных с именем admin_flag через миграцию), а затем измените форму представления Rails для новой / edit, чтобы использовать ее. Затем в application / html.erb просто добавьте:

  <% if current_user %>
      <% if current_user.admin_flag == true %>
      | <%=link_to(:categories, :categories) %>
      | <%=link_to(:users, :users) %>
      <% end %>
  <% end %>

Это покажет пользователей и категории, только если пользователь, вошедший в систему, тоже является администратором. Сделайте это после установки хотя бы одного пользователя-администратора, или вам нужно будет использовать sql для установки хотя бы одного пользователя-администратора.

...