##// END OF EJS Templates
show "no data" label when there's nothing to display on changelog and roadmap...
show "no data" label when there's nothing to display on changelog and roadmap git-svn-id: http://redmine.rubyforge.org/svn/trunk@255 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r172:4e03668eec2c
r252:ddd0796e403d
Show More
application.rb
131 lines | 4.2 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
Initial commit...
r2 # redMine - project management software
Jean-Philippe Lang
settings are now stored in the database (config_custom.rb no more used) and editable through the application in: Admin -> Settings...
r164 # Copyright (C) 2006-2007 Jean-Philippe Lang
Jean-Philippe Lang
Initial commit...
r2 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class ApplicationController < ActionController::Base
before_filter :check_if_login_required, :set_localization
Jean-Philippe Lang
0.3 unstable...
r10 def logged_in_user=(user)
@logged_in_user = user
session[:user_id] = (user ? user.id : nil)
end
def logged_in_user
if session[:user_id]
Jean-Philippe Lang
various eager loadings added...
r95 @logged_in_user ||= User.find(session[:user_id])
Jean-Philippe Lang
0.3 unstable...
r10 else
nil
end
end
Jean-Philippe Lang
Initial commit...
r2 # check if login is globally required to access the application
def check_if_login_required
Jean-Philippe Lang
settings are now stored in the database (config_custom.rb no more used) and editable through the application in: Admin -> Settings...
r164 require_login if Setting.login_required?
Jean-Philippe Lang
Initial commit...
r2 end
def set_localization
Jean-Philippe Lang
Localization plugin removed (replaced with GLoc)...
r12 lang = begin
if self.logged_in_user and self.logged_in_user.language and !self.logged_in_user.language.empty? and GLoc.valid_languages.include? self.logged_in_user.language.to_sym
Jean-Philippe Lang
0.3 unstable...
r10 self.logged_in_user.language
Jean-Philippe Lang
v0.2.0...
r5 elsif request.env['HTTP_ACCEPT_LANGUAGE']
Jean-Philippe Lang
improved issues change history...
r52 accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.split('-').first
Jean-Philippe Lang
Localization plugin removed (replaced with GLoc)...
r12 if accept_lang and !accept_lang.empty? and GLoc.valid_languages.include? accept_lang.to_sym
Jean-Philippe Lang
v0.2.0...
r5 accept_lang
end
end
rescue
nil
Jean-Philippe Lang
settings are now stored in the database (config_custom.rb no more used) and editable through the application in: Admin -> Settings...
r164 end || Setting.default_language
Jean-Philippe Lang
Localization plugin removed (replaced with GLoc)...
r12 set_language_if_valid(lang)
Jean-Philippe Lang
Initial commit...
r2 end
Jean-Philippe Lang
v0.2.0...
r5 def require_login
Jean-Philippe Lang
0.3 unstable...
r10 unless self.logged_in_user
Jean-Philippe Lang
v0.2.0...
r5 store_location
Jean-Philippe Lang
notice messages translation...
r15 redirect_to :controller => "account", :action => "login"
Jean-Philippe Lang
0.3 unstable...
r10 return false
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
0.3 unstable...
r10 true
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
Initial commit...
r2
Jean-Philippe Lang
v0.2.0...
r5 def require_admin
Jean-Philippe Lang
0.3 unstable...
r10 return unless require_login
unless self.logged_in_user.admin?
Jean-Philippe Lang
notice messages translation...
r15 render :nothing => true, :status => 403
Jean-Philippe Lang
0.3 unstable...
r10 return false
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
0.3 unstable...
r10 true
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
Initial commit...
r2
Jean-Philippe Lang
v0.2.0...
r5 # authorizes the user for the requested action.
Jean-Philippe Lang
replaced deprecated controller instance variables: @params, @session, @request...
r124 def authorize(ctrl = params[:controller], action = params[:action])
Jean-Philippe Lang
Initial commit...
r2 # check if action is allowed on public projects
Jean-Philippe Lang
"queries" branch merged...
r92 if @project.is_public? and Permission.allowed_to_public "%s/%s" % [ ctrl, action ]
Jean-Philippe Lang
Initial commit...
r2 return true
Jean-Philippe Lang
0.3 unstable...
r10 end
# if action is not public, force login
return unless require_login
# admin is always authorized
return true if self.logged_in_user.admin?
# if not admin, check membership permission
@user_membership ||= Member.find(:first, :conditions => ["user_id=? and project_id=?", self.logged_in_user.id, @project.id])
Jean-Philippe Lang
"queries" branch merged...
r92 if @user_membership and Permission.allowed_to_role( "%s/%s" % [ ctrl, action ], @user_membership.role_id )
Jean-Philippe Lang
Initial commit...
r2 return true
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
notice messages translation...
r15 render :nothing => true, :status => 403
Jean-Philippe Lang
v0.2.0...
r5 false
end
Jean-Philippe Lang
* single/multiple issues pdf export added...
r35
Jean-Philippe Lang
v0.2.0...
r5 # store current uri in session.
# return to this location by calling redirect_back_or_default
def store_location
Jean-Philippe Lang
* replaced :controller => '' broken statements by :controller => 'welcome'...
r172 session[:return_to_params] = params
Jean-Philippe Lang
v0.2.0...
r5 end
# move to the last store_location call or to the passed default one
def redirect_back_or_default(default)
Jean-Philippe Lang
* replaced :controller => '' broken statements by :controller => 'welcome'...
r172 if session[:return_to_params].nil?
Jean-Philippe Lang
v0.2.0...
r5 redirect_to default
else
Jean-Philippe Lang
* replaced :controller => '' broken statements by :controller => 'welcome'...
r172 redirect_to session[:return_to_params]
session[:return_to_params] = nil
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
ActiveRecord::RecordNotFound exceptions handled more gracefully...
r130 end
def render_404
@html_title = "404"
render :template => "common/404", :layout => true, :status => 404
return false
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
improved issues change history...
r52
# qvalues http header parser
# code taken from webrick
def parse_qvalues(value)
tmp = []
if value
parts = value.split(/,\s*/)
parts.each {|part|
if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
val = m[1]
q = (m[2] or 1).to_f
tmp.push([val, q])
end
}
tmp = tmp.sort_by{|val, q| -q}
tmp.collect!{|val, q| val}
end
return tmp
end
Jean-Philippe Lang
Initial commit...
r2 end