2016-05-19 3 views
0

У меня есть пользовательская группа с членами в них, и я хотел бы, чтобы эта группа имела доступ к плагину.Предоставить доступ к моему плагину для определенной группы в redmine

В моем init.rb:

menu :application_menu, :release_approbation, {:controller => 'release_approbation', :action => 'index'}, :if => Proc.new { User.current.allowed_to?(:release_view, nil, :global => true) }, :caption => 'Release Approbation' 
    permission :release_view, :release_approbation => :index, :require => :loggedin 
    permission :release_approve, :release_approbation => :approve, :require => :loggedin 

В моем контроллере:

before_filter :authorize_global, :release_approbation => :index 
    before_filter :authorize_global, :release_approbation => :approve 

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

ответ

0

Давайте посмотрим. Вы можете проверить, что разрешение в роли с чем-то вроде этого:

<% if User.current.allowed_to?(:permission_name, nil, :global => true) %> 

Это будет пытаться найти разрешение вам требуется из таблицы member_roles. Поскольку вы добавили разрешение всем пользователям этой группы, это будет делать трюк.
Чтобы не оказывать ссылку на плагин вы можете сделать что-то вроде этого внутри init.rb (Взято из расписания плагина):

menu(:top_menu, 
    :timesheet, 
    {:controller => :timesheet, :action => :index}, 
    :caption => :timesheet_title, 
    :if => Proc.new { 
     User.current.allowed_to?(:see_project_timesheets, nil, :global => true) || 
     User.current.allowed_to?(:view_time_entries, nil, :global => true) || 
     User.current.admin? 
    }) 

Его проверки, если текущий пользователь имеет привилегии, как администратор или имеет какие-либо из этих разрешений ,: see_project_timesheets или: view_time_entries. Надеюсь, это поможет вам.