summaryrefslogtreecommitdiffstats
path: root/app/helpers
diff options
context:
space:
mode:
Diffstat (limited to 'app/helpers')
-rw-r--r--app/helpers/application_helper.rb24
-rw-r--r--app/helpers/projects_helper.rb8
-rw-r--r--app/helpers/watchers_helper.rb2
3 files changed, 14 insertions, 20 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 41becd0f2..550ce3c59 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -25,32 +25,18 @@ end
module ApplicationHelper
- # Return current logged in user or nil
- def loggedin?
- @logged_in_user
+ def current_role
+ @current_role ||= User.current.role_for_project(@project)
end
- # Return true if user is logged in and is admin, otherwise false
- def admin_loggedin?
- @logged_in_user and @logged_in_user.admin?
- end
-
# Return true if user is authorized for controller/action, otherwise false
- def authorize_for(controller, action)
- # check if action is allowed on public projects
- if @project.is_public? and Permission.allowed_to_public "%s/%s" % [ controller, action ]
- return true
- end
- # check if user is authorized
- if @logged_in_user and (@logged_in_user.admin? or Permission.allowed_to_role( "%s/%s" % [ controller, action ], @logged_in_user.role_for_project(@project) ) )
- return true
- end
- return false
+ def authorize_for(controller, action)
+ User.current.allowed_to?({:controller => controller, :action => action}, @project)
end
# Display a link if user is authorized
def link_to_if_authorized(name, options = {}, html_options = nil, *parameters_for_method_reference)
- link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller], options[:action])
+ link_to(name, options, html_options, *parameters_for_method_reference) if authorize_for(options[:controller] || params[:controller], options[:action])
end
# Display a link to user's account page
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index abf2bcf86..da674985b 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -175,4 +175,12 @@ module ProjectsHelper
gc.draw(imgl)
imgl
end if Object.const_defined?(:Magick)
+
+ def new_issue_selector
+ trackers = Tracker.find(:all, :order => 'position')
+ form_tag({:controller => 'projects', :action => 'add_issue', :id => @project}, :method => :get) +
+ select_tag('tracker_id', '<option></option' + options_from_collection_for_select(trackers, 'id', 'name'),
+ :onchange => "if (this.value != '') {this.form.submit()}") +
+ end_form_tag
+ end
end
diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb
index 87b381055..c83c785fc 100644
--- a/app/helpers/watchers_helper.rb
+++ b/app/helpers/watchers_helper.rb
@@ -21,7 +21,7 @@ module WatchersHelper
end
def watcher_link(object, user)
- return '' unless user && object.respond_to?('watched_by?')
+ return '' unless user && user.logged? && object.respond_to?('watched_by?')
watched = object.watched_by?(user)
url = {:controller => 'watchers',
:action => (watched ? 'remove' : 'add'),