@@ -176,6 +176,20 class ApplicationController < ActionController::Base | |||
|
176 | 176 | render_404 |
|
177 | 177 | end |
|
178 | 178 | |
|
179 | def find_model_object | |
|
180 | model = self.class.read_inheritable_attribute('model_object') | |
|
181 | if model | |
|
182 | @object = model.find(params[:id]) | |
|
183 | self.instance_variable_set('@' + controller_name.singularize, @object) if @object | |
|
184 | end | |
|
185 | rescue ActiveRecord::RecordNotFound | |
|
186 | render_404 | |
|
187 | end | |
|
188 | ||
|
189 | def self.model_object(model) | |
|
190 | write_inheritable_attribute('model_object', model) | |
|
191 | end | |
|
192 | ||
|
179 | 193 | # make sure that the user is a member of the project (or admin) if project is private |
|
180 | 194 | # used as a before_filter for actions that do not require any particular permission on the project |
|
181 | 195 | def check_project_privacy |
@@ -17,8 +17,9 | |||
|
17 | 17 | |
|
18 | 18 | class DocumentsController < ApplicationController |
|
19 | 19 | default_search_scope :documents |
|
20 | model_object Document | |
|
20 | 21 | before_filter :find_project, :only => [:index, :new] |
|
21 |
before_filter :find_ |
|
|
22 | before_filter :find_model_object, :except => [:index, :new] | |
|
22 | 23 | before_filter :find_project_from_association, :except => [:index, :new] |
|
23 | 24 | before_filter :authorize |
|
24 | 25 | |
@@ -82,10 +83,4 private | |||
|
82 | 83 | rescue ActiveRecord::RecordNotFound |
|
83 | 84 | render_404 |
|
84 | 85 | end |
|
85 | ||
|
86 | def find_document | |
|
87 | @document = @object = Document.find(params[:id]) | |
|
88 | rescue ActiveRecord::RecordNotFound | |
|
89 | render_404 | |
|
90 | end | |
|
91 | 86 | end |
@@ -17,7 +17,8 | |||
|
17 | 17 | |
|
18 | 18 | class IssueCategoriesController < ApplicationController |
|
19 | 19 | menu_item :settings |
|
20 | before_filter :find_category, :except => :new | |
|
20 | model_object IssueCategory | |
|
21 | before_filter :find_model_object, :except => :new | |
|
21 | 22 | before_filter :find_project_from_association, :except => :new |
|
22 | 23 | before_filter :find_project, :only => :new |
|
23 | 24 | before_filter :authorize |
@@ -73,10 +74,11 class IssueCategoriesController < ApplicationController | |||
|
73 | 74 | end |
|
74 | 75 | |
|
75 | 76 | private |
|
76 | def find_category | |
|
77 | @category = @object = IssueCategory.find(params[:id]) | |
|
78 | rescue ActiveRecord::RecordNotFound | |
|
79 | render_404 | |
|
77 | # Wrap ApplicationController's find_model_object method to set | |
|
78 | # @category instead of just @issue_category | |
|
79 | def find_model_object | |
|
80 | super | |
|
81 | @category = @object | |
|
80 | 82 | end |
|
81 | 83 | |
|
82 | 84 | def find_project |
@@ -16,7 +16,8 | |||
|
16 | 16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
17 | 17 | |
|
18 | 18 | class MembersController < ApplicationController |
|
19 | before_filter :find_member, :except => [:new, :autocomplete_for_member] | |
|
19 | model_object Member | |
|
20 | before_filter :find_model_object, :except => [:new, :autocomplete_for_member] | |
|
20 | 21 | before_filter :find_project_from_association, :except => [:new, :autocomplete_for_member] |
|
21 | 22 | before_filter :find_project, :only => [:new, :autocomplete_for_member] |
|
22 | 23 | before_filter :authorize |
@@ -74,10 +75,4 class MembersController < ApplicationController | |||
|
74 | 75 | render :layout => false |
|
75 | 76 | end |
|
76 | 77 | |
|
77 | private | |
|
78 | def find_member | |
|
79 | @member = @object = Member.find(params[:id]) | |
|
80 | rescue ActiveRecord::RecordNotFound | |
|
81 | render_404 | |
|
82 | end | |
|
83 | 78 | end |
@@ -17,7 +17,8 | |||
|
17 | 17 | |
|
18 | 18 | class NewsController < ApplicationController |
|
19 | 19 | default_search_scope :news |
|
20 | before_filter :find_news, :except => [:new, :index, :preview] | |
|
20 | model_object News | |
|
21 | before_filter :find_model_object, :except => [:new, :index, :preview] | |
|
21 | 22 | before_filter :find_project_from_association, :except => [:new, :index, :preview] |
|
22 | 23 | before_filter :find_project, :only => [:new, :preview] |
|
23 | 24 | before_filter :authorize, :except => [:index, :preview] |
@@ -89,12 +90,6 class NewsController < ApplicationController | |||
|
89 | 90 | end |
|
90 | 91 | |
|
91 | 92 | private |
|
92 | def find_news | |
|
93 | @news = @object = News.find(params[:id]) | |
|
94 | rescue ActiveRecord::RecordNotFound | |
|
95 | render_404 | |
|
96 | end | |
|
97 | ||
|
98 | 93 | def find_project |
|
99 | 94 | @project = Project.find(params[:project_id]) |
|
100 | 95 | rescue ActiveRecord::RecordNotFound |
@@ -17,7 +17,8 | |||
|
17 | 17 | |
|
18 | 18 | class VersionsController < ApplicationController |
|
19 | 19 | menu_item :roadmap |
|
20 | before_filter :find_version, :except => [:new, :close_completed] | |
|
20 | model_object Version | |
|
21 | before_filter :find_model_object, :except => [:new, :close_completed] | |
|
21 | 22 | before_filter :find_project_from_association, :except => [:new, :close_completed] |
|
22 | 23 | before_filter :find_project, :only => [:new, :close_completed] |
|
23 | 24 | before_filter :authorize |
@@ -94,12 +95,6 class VersionsController < ApplicationController | |||
|
94 | 95 | end |
|
95 | 96 | |
|
96 | 97 | private |
|
97 | def find_version | |
|
98 | @version = @object = Version.find(params[:id]) | |
|
99 | rescue ActiveRecord::RecordNotFound | |
|
100 | render_404 | |
|
101 | end | |
|
102 | ||
|
103 | 98 | def find_project |
|
104 | 99 | @project = Project.find(params[:project_id]) |
|
105 | 100 | rescue ActiveRecord::RecordNotFound |
General Comments 0
You need to be logged in to leave comments.
Login now