diff --git a/Gemfile b/Gemfile index 6a46010..c54b0dc 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,7 @@ source 'https://rubygems.org' #rails gem gem 'rails', '~> 4.1.0' +gem 'sanitize' #assets and templates gem 'sass-rails', '~> 4.0.2' diff --git a/app/controllers/admin/authorizations_controller.rb b/app/controllers/admin/authorizations_controller.rb index e5736a0..8d1c82c 100644 --- a/app/controllers/admin/authorizations_controller.rb +++ b/app/controllers/admin/authorizations_controller.rb @@ -10,7 +10,7 @@ class Admin::AuthorizationsController < OrbitAdminController @objects = @module_app.categories rescue nil end elsif @module_apps && @module_app.key == "authorization" - redirect_to "/admin/authorizations/#{@module_apps.first.key}" + redirect_to admin_authorizations_path(@module_apps.first.key) else redirect_to :root end diff --git a/app/controllers/admin/members_controller.rb b/app/controllers/admin/members_controller.rb index 48f8293..2a7fde6 100644 --- a/app/controllers/admin/members_controller.rb +++ b/app/controllers/admin/members_controller.rb @@ -30,13 +30,13 @@ class Admin::MembersController < OrbitMemberController render case params[:at] when 'summary' - @members=MemberProfile.all.page(page_num).per(12).desc("_id") + @members = MemberProfile.all.page(page_num).per(12).desc("_id") "index_summary" when 'thumbnail' - @members=MemberProfile.all.page(page_num).per(36).desc("_id") + @members = MemberProfile.all.page(page_num).per(36).desc("_id") "index_thumbnail" else - @members=MemberProfile.all.page(page_num).per(10).desc("_id") + @members = MemberProfile.all.page(page_num).per(10).desc("_id") "index" end @@ -204,7 +204,7 @@ class Admin::MembersController < OrbitMemberController end def unapproved_members - @member_query = params[:member_query] + @member_query = Sanitize.clean(params[:member_query]) page_num = params[:page] || 1 if !@member_query.blank? members = MemberProfile.all.any_of({:user_id => /#{@member_query}/i}, {:first_name => /#{@member_query}/i}, {:last_name => /#{@member_query}/i}, {:email => /#{@member_query}/i}) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 1cc8639..cd5d683 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,5 +1,6 @@ class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. + protect_from_forgery # For APIs, you may want to use :null_session instead. # protect_from_forgery with: :null_session before_action :set_locale, :set_mobile_web diff --git a/app/controllers/orbit_admin_controller.rb b/app/controllers/orbit_admin_controller.rb index a7b486b..3e2ae71 100644 --- a/app/controllers/orbit_admin_controller.rb +++ b/app/controllers/orbit_admin_controller.rb @@ -36,7 +36,8 @@ class OrbitAdminController < ApplicationController when "link" @sort = {:out_link=>params[:order]} else - @sort = {params[:sort].to_sym=>params[:order]} + s = Sanitize.clean(params[:sort]).to_sym + @sort = {s=>params[:order]} end else @sort = {:created_at=>'desc'} diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index cf2e9bd..9c4071c 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -14,7 +14,7 @@ class SessionsController < ApplicationController session[:user_id] = user.id session[:login_referer] = nil if params[:referer_url] - redirect_to params[:referer_url] + redirect_to URI.parse(params[:referer_url]).path else redirect_to admin_dashboards_path end diff --git a/app/models/member_profile.rb b/app/models/member_profile.rb index bb65998..1e3680b 100644 --- a/app/models/member_profile.rb +++ b/app/models/member_profile.rb @@ -45,6 +45,7 @@ class MemberProfile mount_uploader :avatar, AvatarUploader paginates_per 10 + def name if self.first_name || self.last_name I18n.locale.eql?(:zh_tw) ? "#{self.last_name} #{self.first_name}" : "#{self.first_name} #{self.last_name}" diff --git a/app/views/admin/members/_member_for_listing.html.erb b/app/views/admin/members/_member_for_listing.html.erb index cc5bf64..a492a46 100644 --- a/app/views/admin/members/_member_for_listing.html.erb +++ b/app/views/admin/members/_member_for_listing.html.erb @@ -1,4 +1,4 @@ - <% if member_for_listing.present?%> + <% if member_for_listing.present? && member_for_listing.user.approved %> <% if member_for_listing.sex == 'male' @member_gender = 'gender-man' diff --git a/app/views/admin/members/_member_for_summary.html.erb b/app/views/admin/members/_member_for_summary.html.erb index 54c3b3f..fa1535e 100644 --- a/app/views/admin/members/_member_for_summary.html.erb +++ b/app/views/admin/members/_member_for_summary.html.erb @@ -1,3 +1,4 @@ +<% if member_for_summary.present? && member_for_summary.user.approved %>