forked from saurabh/orbit4-5
fix for high security bugs in report and plus some other member area fixes
This commit is contained in:
parent
b28597d16a
commit
5b3b009f65
1
Gemfile
1
Gemfile
|
|
@ -2,6 +2,7 @@ source 'https://rubygems.org'
|
||||||
|
|
||||||
#rails gem
|
#rails gem
|
||||||
gem 'rails', '~> 4.1.0'
|
gem 'rails', '~> 4.1.0'
|
||||||
|
gem 'sanitize'
|
||||||
|
|
||||||
#assets and templates
|
#assets and templates
|
||||||
gem 'sass-rails', '~> 4.0.2'
|
gem 'sass-rails', '~> 4.0.2'
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ class Admin::AuthorizationsController < OrbitAdminController
|
||||||
@objects = @module_app.categories rescue nil
|
@objects = @module_app.categories rescue nil
|
||||||
end
|
end
|
||||||
elsif @module_apps && @module_app.key == "authorization"
|
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
|
else
|
||||||
redirect_to :root
|
redirect_to :root
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -30,13 +30,13 @@ class Admin::MembersController < OrbitMemberController
|
||||||
|
|
||||||
render case params[:at]
|
render case params[:at]
|
||||||
when 'summary'
|
when 'summary'
|
||||||
@members=MemberProfile.all.page(page_num).per(12).desc("_id")
|
@members = MemberProfile.all.page(page_num).per(12).desc("_id")
|
||||||
"index_summary"
|
"index_summary"
|
||||||
when 'thumbnail'
|
when 'thumbnail'
|
||||||
@members=MemberProfile.all.page(page_num).per(36).desc("_id")
|
@members = MemberProfile.all.page(page_num).per(36).desc("_id")
|
||||||
"index_thumbnail"
|
"index_thumbnail"
|
||||||
else
|
else
|
||||||
@members=MemberProfile.all.page(page_num).per(10).desc("_id")
|
@members = MemberProfile.all.page(page_num).per(10).desc("_id")
|
||||||
"index"
|
"index"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -204,7 +204,7 @@ class Admin::MembersController < OrbitMemberController
|
||||||
end
|
end
|
||||||
|
|
||||||
def unapproved_members
|
def unapproved_members
|
||||||
@member_query = params[:member_query]
|
@member_query = Sanitize.clean(params[:member_query])
|
||||||
page_num = params[:page] || 1
|
page_num = params[:page] || 1
|
||||||
if !@member_query.blank?
|
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})
|
members = MemberProfile.all.any_of({:user_id => /#{@member_query}/i}, {:first_name => /#{@member_query}/i}, {:last_name => /#{@member_query}/i}, {:email => /#{@member_query}/i})
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
class ApplicationController < ActionController::Base
|
class ApplicationController < ActionController::Base
|
||||||
# Prevent CSRF attacks by raising an exception.
|
# Prevent CSRF attacks by raising an exception.
|
||||||
|
protect_from_forgery
|
||||||
# For APIs, you may want to use :null_session instead.
|
# For APIs, you may want to use :null_session instead.
|
||||||
# protect_from_forgery with: :null_session
|
# protect_from_forgery with: :null_session
|
||||||
before_action :set_locale, :set_mobile_web
|
before_action :set_locale, :set_mobile_web
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,8 @@ class OrbitAdminController < ApplicationController
|
||||||
when "link"
|
when "link"
|
||||||
@sort = {:out_link=>params[:order]}
|
@sort = {:out_link=>params[:order]}
|
||||||
else
|
else
|
||||||
@sort = {params[:sort].to_sym=>params[:order]}
|
s = Sanitize.clean(params[:sort]).to_sym
|
||||||
|
@sort = {s=>params[:order]}
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@sort = {:created_at=>'desc'}
|
@sort = {:created_at=>'desc'}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class SessionsController < ApplicationController
|
||||||
session[:user_id] = user.id
|
session[:user_id] = user.id
|
||||||
session[:login_referer] = nil
|
session[:login_referer] = nil
|
||||||
if params[:referer_url]
|
if params[:referer_url]
|
||||||
redirect_to params[:referer_url]
|
redirect_to URI.parse(params[:referer_url]).path
|
||||||
else
|
else
|
||||||
redirect_to admin_dashboards_path
|
redirect_to admin_dashboards_path
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ class MemberProfile
|
||||||
mount_uploader :avatar, AvatarUploader
|
mount_uploader :avatar, AvatarUploader
|
||||||
paginates_per 10
|
paginates_per 10
|
||||||
|
|
||||||
|
|
||||||
def name
|
def name
|
||||||
if self.first_name || self.last_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}"
|
I18n.locale.eql?(:zh_tw) ? "#{self.last_name} #{self.first_name}" : "#{self.first_name} #{self.last_name}"
|
||||||
|
|
|
||||||
|
|
@ -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'
|
if member_for_listing.sex == 'male'
|
||||||
@member_gender = 'gender-man'
|
@member_gender = 'gender-man'
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
<% if member_for_summary.present? && member_for_summary.user.approved %>
|
||||||
<li id="<%= dom_id member_for_summary %>">
|
<li id="<%= dom_id member_for_summary %>">
|
||||||
<div class="member-avatar">
|
<div class="member-avatar">
|
||||||
<%
|
<%
|
||||||
|
|
@ -34,5 +35,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
<% if member_for_thumbnail.present? && member_for_thumbnail.user.approved %>
|
||||||
<%
|
<%
|
||||||
if member_for_thumbnail.sex == 'male'
|
if member_for_thumbnail.sex == 'male'
|
||||||
@user_sex = 'gender-man'
|
@user_sex = 'gender-man'
|
||||||
|
|
@ -18,4 +19,5 @@
|
||||||
<%= image_tag(member_for_thumbnail.avatar) %>
|
<%= image_tag(member_for_thumbnail.avatar) %>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="member-name text-center"><%= link_to (member_for_thumbnail.name != (member_for_thumbnail.email) ? member_for_thumbnail.name : member_for_thumbnail.id),admin_member_path(member_for_thumbnail) %></h4>
|
<h4 class="member-name text-center"><%= link_to (member_for_thumbnail.name != (member_for_thumbnail.email) ? member_for_thumbnail.name : member_for_thumbnail.id),admin_member_path(member_for_thumbnail) %></h4>
|
||||||
</li>
|
</li>
|
||||||
|
<% end %>
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
<% if unapproved_members_list.member_profile.present?%>
|
<% if (unapproved_members_list.member_profile rescue false) && unapproved_members_list.member_profile.present?%>
|
||||||
<%
|
<%
|
||||||
if unapproved_members_list.member_profile.sex == 'male'
|
if unapproved_members_list.member_profile.sex == 'male'
|
||||||
@member_gender = 'gender-man'
|
@member_gender = 'gender-man'
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
<ul class="nav nav-pills">
|
<ul class="nav nav-pills">
|
||||||
<%= content_tag(:li, link_to(t(:edit),edit_admin_member_path(unapproved_members_list.member_profile))) if current_user.is_admin? %>
|
<%= content_tag(:li, link_to(t(:edit),edit_admin_member_path(unapproved_members_list.member_profile))) if current_user.is_admin? %>
|
||||||
<%= content_tag(:li, link_to(t("users.accept_member"),admin_member_accept_member_path(unapproved_members_list))) %>
|
<%= content_tag(:li, link_to(t("users.accept_member"),admin_member_accept_member_path(unapproved_members_list))) %>
|
||||||
<%= content_tag(:li, link_to(t(:delete_),admin_member_path(unapproved_members_list.member_profile, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if current_user.is_admin? %>
|
<%= content_tag(:li, link_to(t(:delete_),admin_member_path(unapproved_members_list.member_profile.id, :at=>params[:at]), :confirm => t(:sure?), :method => :delete, :class=>"text-error", :remote => true)) if current_user.is_admin? %>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
<div class="searchClear pull-left" style="clear: left;">
|
<div class="searchClear pull-left" style="clear: left;">
|
||||||
<form action="" method="get">
|
<form action="" method="get">
|
||||||
<%= text_field_tag 'member_query',( params[:member_query] ? params[:member_query] : '' ), {:id=>'filter-input', :class => "search-query input-medium", :placeholder => 'Search'} %>
|
<% mq = Sanitize.clean(params[:member_query]) %>
|
||||||
|
<%= text_field_tag 'member_query',( mq ? mq : '' ), {:id=>'filter-input', :class => "search-query input-medium", :placeholder => 'Search'} %>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ require File.expand_path('../application', __FILE__)
|
||||||
|
|
||||||
# Initialize the Rails application.
|
# Initialize the Rails application.
|
||||||
Orbit::Application.initialize!
|
Orbit::Application.initialize!
|
||||||
|
Orbit::Application.config.secret_key_base = 'acc6ffc5a7d360c9cf2a7bdb4ddf9a897942ec6767413a5c0324a0fa8b86197a96298288a66bd46d8770d8b6edf509aad65716961c2c364ce006b475e6cfd418'
|
||||||
|
|
||||||
|
|
||||||
if Site.count == 0
|
if Site.count == 0
|
||||||
site = Site.new
|
site = Site.new
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,3 @@
|
||||||
|
|
||||||
# Make sure your secret_key_base is kept private
|
# Make sure your secret_key_base is kept private
|
||||||
# if you're sharing your code publicly.
|
# if you're sharing your code publicly.
|
||||||
Orbit::Application.config.secret_key_base = 'acc6ffc5a7d360c9cf2a7bdb4ddf9a897942ec6767413a5c0324a0fa8b86197a96298288a66bd46d8770d8b6edf509aad65716961c2c364ce006b475e6cfd418'
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,12 @@ module OrbitCoreLib
|
||||||
@module_app ||= ModuleApp.find_by(key: @app_title) rescue nil
|
@module_app ||= ModuleApp.find_by(key: @app_title) rescue nil
|
||||||
end
|
end
|
||||||
@module_authorized_users ||= Authorization.module_authorized_users(@module_app.id).pluck(:user_id) rescue nil
|
@module_authorized_users ||= Authorization.module_authorized_users(@module_app.id).pluck(:user_id) rescue nil
|
||||||
authenticate_user
|
|
||||||
|
if current_user.nil?
|
||||||
|
redirect_to new_session_path
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if !@module_app.nil?
|
if !@module_app.nil?
|
||||||
check_user_can_use
|
check_user_can_use
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue