# Methods that don't require login should
# skip_around_filter :require_thread_api_token
around_filter :require_thread_api_token, except: ERROR_ACTIONS
+ before_filter :accept_uuid_as_id_param, except: ERROR_ACTIONS
before_filter :check_user_agreements, except: ERROR_ACTIONS
before_filter :check_user_profile, except: [:update_profile] + ERROR_ACTIONS
before_filter :check_user_notifications, except: ERROR_ACTIONS
end
end
- def find_object_by_uuid
+
+ def accept_uuid_as_id_param
if params[:id] and params[:id].match /\D/
params[:uuid] = params.delete :id
end
+ end
+
+ def find_object_by_uuid
begin
if not model_class
@object = nil
end
def check_user_profile
- @profile_config = Rails.configuration.user_profile_form_fields
+ profile_config = Rails.configuration.user_profile_form_fields
- if request.method.downcase != 'get' || params[:partials]
+ if request.method.downcase != 'get' || params[:partial] ||
+ params[:tab_pane] || params[:action_method] ||
+ params[:action] == 'setup_popup'
return true
end
- if current_user && @profile_config
+ if current_user && profile_config
missing_required_profile = false
- @this_user = User.limit(1).where(uuid: current_user.uuid).first
- user_prefs = @this_user.prefs
- @current_user_profile = user_prefs[:profile] if user_prefs
+ user_prefs = current_user.prefs
+ current_user.reload if !user_prefs[:profile]
+ user_prefs = current_user.prefs
+ current_user_profile = user_prefs[:profile] if user_prefs
- @profile_config.andand.each do |entry|
+ profile_config.kind_of?(Array) && profile_config.andand.each do |entry|
if entry['required']
- if !@current_user_profile || !@current_user_profile[entry['key'].to_sym]
+ if !current_user_profile ||
+ !current_user_profile[entry['key'].to_sym] ||
+ current_user_profile[entry['key'].to_sym].empty?
missing_required_profile = true
break
end
helper_method :all_projects
def all_projects
@all_projects ||= Group.
- filter([['group_class','in',['project','folder']]]).order('name')
+ filter([['group_class','=','project']]).order('name')
end
helper_method :my_projects
crumbs = []
current = @name_link || @object
while current
- if current.is_a?(Group) and current.group_class.in?(['project','folder'])
+ if current.is_a?(Group) and current.group_class == 'project'
crumbs.prepend current
end
if current.is_a? Link
helper_method :current_project_uuid
def current_project_uuid
- if @object.is_a? Group and @object.group_class.in?(['project','folder'])
+ if @object.is_a? Group and @object.group_class == 'project'
@object.uuid
elsif @name_link.andand.tail_uuid
@name_link.tail_uuid