Refactor: create the permission name dynamically to support other classes

This commit is contained in:
Eric Davis 2010-12-14 09:16:45 -08:00
parent 97fe88f8d9
commit ce0c32ea02

View File

@ -100,26 +100,22 @@ private
end end
def authorize_access_to_object def authorize_access_to_object
allowed = false permission = ''
case params[:action]
when 'new'
permission << 'add_'
when 'destroy'
permission << 'delete_'
end
case @watched.class.to_s # Ends up like: :delete_wiki_page_watchers
when "Issue" permission << "#{@watched.class.name.underscore}_watchers"
if params[:action] == 'new'
allowed = true if User.current.allowed_to?(:add_issue_watchers, @project) if User.current.allowed_to?(permission.to_sym, @project)
end return true
if params[:action] == 'destroy' else
allowed = true if User.current.allowed_to?(:delete_issue_watchers, @project) deny_access
end
when "WikiPage"
if params[:action] == 'new'
allowed = true if User.current.allowed_to?(:add_wiki_page_watchers, @project)
end
if params[:action] == 'destroy'
allowed = true if User.current.allowed_to?(:delete_wiki_page_watchers, @project)
end end
end end
deny_access unless allowed
end
end end