2016-05-19 21 views
0

Ich habe eine benutzerdefinierte Gruppe mit Mitgliedern in ihnen und ich möchte diese Gruppe Zugriff auf das Plugin haben.Zugriff auf mein Plugin für eine bestimmte Gruppe in Redmine

In meinem 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 

In meinem Controller:

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

In meinem redmine Admin-Panel in Rollen und die Erlaubnis, die Gruppe Ich habe die Erlaubnis zu den Plug-Aktionen hinzugefügt. Dies ist kein Teil eines Projekts, sondern ein globales Plugin.

Antwort

0

Mal sehen. Sie können überprüfen, ob die Erlaubnis, in einer Rolle mit so etwas wie dies:

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

Dieser wird versuchen, die Berechtigung, die Sie aus der member_roles Tabelle benötigen zu finden. Da Sie allen Benutzern dieser Gruppe die Berechtigung hinzugefügt haben, wird dies der Fall sein.
Um den Link auf das Plugin nicht machen Sie so etwas wie dieser innerhalb init.rb tun können (von Timesheet-Plugin Taken):

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? 
    }) 

Der Überprüfung, ob die aktuellen Benutzer Privilegien als Administrator oder eine dieser Berechtigungen ,: see_project_timesheets oder: view_time_entries. Ich hoffe das hilft dir.