jijeshmohan / redmine_track_control

Redmine Plugin to control issue creation with specific tracker
http://jijeshmohan.wordpress.com/2011/12/24/redmine-tracker-control-plugin-released
Other
18 stars 17 forks source link

Default behavior when not enabled. #22

Closed yanoliv closed 10 years ago

yanoliv commented 10 years ago

Hi, Redmine 2.4.2 When the module is enabled, all is fine. When the module is not enabled, I have an error message (but the tracker list is ok).

error_tracker

Thanks

mudithaj commented 10 years ago

Hi , i got the same issue for Red-mine 2.5 .0 Thanks

mudithaj commented 10 years ago

Hi,I did some changes to plugin and its works fine for me .

  1. redmine_track_control\app\helpers\track_control_helper.rb

Change def valid_tracker_list

def valid_trackers_list(project)
    if project.enabled_modules.where(:name => "tracker_permissions").count == 1     #Change for check tracker permission module is enable
    project.trackers.select{|t| User.current.allowed_to?("create_tracker#{t.id}".to_sym, project, :global => true)}.collect {|t| [t.name, t.id]}
   else
    project.trackers.collect {|t| [t.name, t.id]}
    end
  end

2 . redmine_track_control\lib\redmine_track_control\issue_patch.rb

Change def is_valid_tracker

def is_valid_tracker
          if project.enabled_modules.where(:name => "tracker_permissions").count == 1    #Change for check tracker permission module is enable
          tracker_permission_flag = "create_tracker#{self.tracker.id}".to_sym
          errors.add(:tracker_id, :invalid) if !User.current.allowed_to?(tracker_permission_flag, self.project, :global => true)
          end
        end

3 . redmine_track_control\lib\redmine_track_control\issues_controller_patch.rb

Add def valid_trackers_list

def valid_trackers_list(project)  #Added for check whether user having a valid tracker for the project
      if project.enabled_modules.where(:name => "tracker_permissions").count == 1
        project.trackers.select{|t| User.current.allowed_to?("create_tracker#{t.id}".to_sym, project, :global => true)}.collect {|t| [t.name, t.id]}
      else
        project.trackers.collect {|t| [t.name, t.id]}
      end
    end

and Change def build_new_issue_from_params_with_tracker_control

def build_new_issue_from_params_with_tracker_control
        build_new_issue_from_params_without_tracker_control
        return true if @issue.project.enabled_modules.where(:name => "tracker_permissions").count == 0
        return true if User.current.admin?
       # if !User.current.allowed_to?("create_tracker#{@issue.tracker.id}".to_sym, @issue.project, :global => true)
       if  valid_trackers_list(@issue.project).empty?     #change for check whether user having a valid tracker for the project
        render_error l(:error_no_tracker_in_project)
        return false
       end
      end

.I'm new to ruby language .please reply is there any other proper way to do this. Thank you

terrones commented 10 years ago

Thanks!! I've also changed in redmine_track_control\app\helpers\track_control_helper.rb

Line 21: f.select :tracker_id, tracker_list, :required => true, for: f.select :tracker_id, tracker_list, {:required => true},

Working fine after all changes in redmine 2.5.1 Thanks!!

jijeshmohan commented 10 years ago

Thanks @mudithaj, I have added these changes to the code