tb_redirects 0.9.0 → 1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/Rakefile +1 -5
- data/app/controllers/admin/tb_redirects_controller.rb +11 -14
- data/app/controllers/concerns/tb_redirects/handle_redirects.rb +3 -4
- data/app/helpers/admin/tb_redirects_helper.rb +2 -4
- data/app/jobs/tb_redirects/detect_redirect_loop_job.rb +5 -5
- data/app/models/concerns/tb_redirects/has_redirects.rb +1 -2
- data/app/models/tb_redirect.rb +12 -14
- data/lib/tb_redirects/engine.rb +5 -5
- data/lib/tb_redirects/version.rb +1 -1
- data/lib/tb_redirects.rb +1 -1
- data/spec/concerns/tb_redirects/has_redirects_spec.rb +6 -8
- data/spec/controllers/admin/tb_redirects_controller_spec.rb +13 -15
- data/spec/controllers/application_controller_spec.rb +3 -5
- data/spec/dummy/bin/setup +8 -8
- data/spec/dummy/config/application.rb +3 -7
- data/spec/dummy/config/environments/production.rb +1 -1
- data/spec/dummy/config/environments/test.rb +2 -2
- data/spec/dummy/db/migrate/20160211160615_create_spud_users.tb_core.rb +9 -10
- data/spec/dummy/db/migrate/20160211160616_add_time_zone_to_spud_user.tb_core.rb +0 -1
- data/spec/dummy/db/migrate/20160211160617_add_scope_to_spud_admin_permissions.tb_core.rb +0 -1
- data/spec/dummy/db/migrate/20160211160620_create_spud_permissions.tb_core.rb +3 -3
- data/spec/dummy/db/migrate/20160211160621_create_spud_role_permissions.tb_core.rb +2 -2
- data/spec/dummy/db/migrate/20160211160623_add_requires_password_change_to_spud_users.tb_core.rb +1 -1
- data/spec/dummy/db/migrate/20160212211331_create_tb_redirects.tb_redirects.rb +3 -3
- data/spec/dummy/db/schema.rb +64 -66
- data/spec/factories/tb_redirects.rb +2 -2
- data/spec/helpers/admin/tb_redirects_helper_spec.rb +0 -2
- data/spec/jobs/tb_redirects/detect_redirect_loop_job_spec.rb +25 -27
- data/spec/models/tb_redirect_spec.rb +24 -27
- data/spec/rails_helper.rb +9 -3
- data/spec/spec_helper.rb +47 -49
- metadata +57 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 256d8418f142449a8cb0c7ac7c02b4122271974d
|
4
|
+
data.tar.gz: b0d94c1d603913c9ff47d3ef5c1a7c7a9aa7959c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d233716c839aa5988d98d6d3b852384b904df2066640803ce0821d080a628fa78fb44be1f08ebaf01ca52a06385723eac6655dce03e61877f7238125cf48116d
|
7
|
+
data.tar.gz: 96b0ef3bc8528530ae026e8da1bf85c81e06e4307f650b010c7137dd707ab4474a84fec5e77e535524fef9d5dbb2e630a48695996543872852ac24e28eae0321
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ TB Redirects is an engine for Twice Baked that provides basic redirection capabi
|
|
4
4
|
|
5
5
|
## Requirements
|
6
6
|
|
7
|
-
We require Rails
|
7
|
+
We require Rails 5, tb_core 1.4, and ruby 2.3.1 or higher.
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -30,7 +30,7 @@ What this means for your controllers is that, in order for redirection to work p
|
|
30
30
|
|
31
31
|
You can create a redirect in one of two ways. The first and easiest way is to create it through the Redirects admin module. Simply enter a `source` and `destination` and save it.
|
32
32
|
|
33
|
-
The second way is through code. You can create a redirect using the `create_smart` method.
|
33
|
+
The second way is through code. You can create a redirect using the `create_smart` method.
|
34
34
|
|
35
35
|
TbRedirect.create_smart({
|
36
36
|
:source => '/my/path',
|
data/Rakefile
CHANGED
@@ -14,14 +14,11 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
14
14
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
15
|
end
|
16
16
|
|
17
|
-
APP_RAKEFILE = File.expand_path(
|
17
|
+
APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
|
18
18
|
load 'rails/tasks/engine.rake'
|
19
19
|
|
20
|
-
|
21
20
|
load 'rails/tasks/statistics.rake'
|
22
21
|
|
23
|
-
|
24
|
-
|
25
22
|
Bundler::GemHelper.install_tasks
|
26
23
|
|
27
24
|
require 'rake/testtask'
|
@@ -33,5 +30,4 @@ Rake::TestTask.new(:test) do |t|
|
|
33
30
|
t.verbose = false
|
34
31
|
end
|
35
32
|
|
36
|
-
|
37
33
|
task default: :test
|
@@ -1,14 +1,12 @@
|
|
1
1
|
class Admin::TbRedirectsController < Admin::ApplicationController
|
2
2
|
|
3
3
|
belongs_to_app :tb_redirects
|
4
|
-
add_breadcrumb
|
5
|
-
before_action :load_tb_redirect, :
|
4
|
+
add_breadcrumb 'Redirects', :admin_tb_redirects_path
|
5
|
+
before_action :load_tb_redirect, only: [:show, :edit, :update, :destroy]
|
6
6
|
|
7
7
|
def index
|
8
|
-
@tb_redirects = TbRedirect.ordered.paginate(:
|
9
|
-
if params[:search]
|
10
|
-
@tb_redirects = @tb_redirects.search(params[:search])
|
11
|
-
end
|
8
|
+
@tb_redirects = TbRedirect.ordered.paginate(page: params[:page])
|
9
|
+
@tb_redirects = @tb_redirects.search(params[:search]) if params[:search]
|
12
10
|
respond_with @tb_redirects
|
13
11
|
end
|
14
12
|
|
@@ -22,10 +20,9 @@ class Admin::TbRedirectsController < Admin::ApplicationController
|
|
22
20
|
end
|
23
21
|
|
24
22
|
def create
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
respond_with @tb_redirect, :location => admin_tb_redirects_path
|
23
|
+
@tb_redirect = TbRedirect.create_smart(tb_redirect_params.merge(created_by: 'user'))
|
24
|
+
flash[:notice] = 'Redirect created successfully' if @tb_redirect.errors.none?
|
25
|
+
respond_with @tb_redirect, location: admin_tb_redirects_path
|
29
26
|
end
|
30
27
|
|
31
28
|
def edit
|
@@ -36,18 +33,18 @@ class Admin::TbRedirectsController < Admin::ApplicationController
|
|
36
33
|
if @tb_redirect.update_attributes(tb_redirect_params)
|
37
34
|
flash[:notice] = 'Redirect updated successfully'
|
38
35
|
end
|
39
|
-
respond_with @tb_redirect, :
|
36
|
+
respond_with @tb_redirect, location: admin_tb_redirects_path
|
40
37
|
end
|
41
38
|
|
42
39
|
def destroy
|
43
40
|
flash[:notice] = 'Redirect deleted successfully' if @tb_redirect.destroy
|
44
|
-
respond_with @tb_redirect, :
|
41
|
+
respond_with @tb_redirect, location: admin_tb_redirects_path
|
45
42
|
end
|
46
43
|
|
47
|
-
private
|
44
|
+
private
|
48
45
|
|
49
46
|
def load_tb_redirect
|
50
|
-
@tb_redirect = TbRedirect.find_by!(:
|
47
|
+
@tb_redirect = TbRedirect.find_by!(id: params[:id])
|
51
48
|
end
|
52
49
|
|
53
50
|
def tb_redirect_params
|
@@ -2,15 +2,14 @@ module TbRedirects::HandleRedirects
|
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
4
|
included do
|
5
|
-
rescue_from Spud::NotFoundError, :
|
5
|
+
rescue_from Spud::NotFoundError, with: :check_for_applicable_redirect
|
6
6
|
end
|
7
7
|
|
8
8
|
def check_for_applicable_redirect(error)
|
9
|
-
if redirect = TbRedirect.
|
10
|
-
redirect_to redirect.destination, :
|
9
|
+
if redirect = TbRedirect.find_with_uri(request.original_url)
|
10
|
+
redirect_to redirect.destination, status: :moved_permanently
|
11
11
|
else
|
12
12
|
handle_request_error(error)
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
15
|
end
|
@@ -1,11 +1,9 @@
|
|
1
1
|
module Admin::TbRedirectsHelper
|
2
|
-
|
3
2
|
def created_by_for_tb_redirect(created_by)
|
4
3
|
if created_by == 'user'
|
5
|
-
content_tag :span, created_by.titleize, :
|
4
|
+
content_tag :span, created_by.titleize, class: 'label label-info'
|
6
5
|
else
|
7
|
-
content_tag :span, created_by.titleize, :
|
6
|
+
content_tag :span, created_by.titleize, class: 'label label-default'
|
8
7
|
end
|
9
8
|
end
|
10
|
-
|
11
9
|
end
|
@@ -10,11 +10,11 @@ class TbRedirects::DetectRedirectLoopJob < ActiveJob::Base
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def perform(redirect)
|
13
|
-
parents = TbRedirect.where(:
|
14
|
-
parents.each{ |p| search_parent(p, redirect.destination) }
|
13
|
+
parents = TbRedirect.where(destination: redirect.source)
|
14
|
+
parents.each { |p| search_parent(p, redirect.destination) }
|
15
15
|
end
|
16
16
|
|
17
|
-
private
|
17
|
+
private
|
18
18
|
|
19
19
|
class AttemptsExceeded < StandardError
|
20
20
|
end
|
@@ -26,8 +26,8 @@ private
|
|
26
26
|
if parent.source == destination_to_check
|
27
27
|
parent.destroy
|
28
28
|
else
|
29
|
-
parents = TbRedirect.where(:
|
30
|
-
parents.each{ |p| search_parent(p, destination_to_check) }
|
29
|
+
parents = TbRedirect.where(destination: parent.source)
|
30
|
+
parents.each { |p| search_parent(p, destination_to_check) }
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
data/app/models/tb_redirect.rb
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
class TbRedirect < ActiveRecord::Base
|
2
|
-
scope :ordered, ->{ order('source desc') }
|
3
|
-
scope :search, ->(term){ where('source LIKE ?', "%#{term}%") }
|
2
|
+
scope :ordered, -> { order('source desc') }
|
3
|
+
scope :search, ->(term) { where('source LIKE ?', "%#{term}%") }
|
4
4
|
|
5
|
-
belongs_to :owner, :
|
5
|
+
belongs_to :owner, polymorphic: true, inverse_of: :tb_redirects
|
6
6
|
|
7
|
-
validates :source, :destination, :created_by, :
|
8
|
-
validates :source, :
|
7
|
+
validates :source, :destination, :created_by, presence: true
|
8
|
+
validates :source, uniqueness: true
|
9
9
|
|
10
10
|
validate :source_not_equals_destination
|
11
11
|
after_save :destroy_opposite_redirect
|
12
12
|
after_save :schedule_loop_detection
|
13
13
|
|
14
|
-
def self.
|
14
|
+
def self.find_with_uri(uri)
|
15
15
|
path = URI(uri).path
|
16
16
|
uri_without_params = uri.split('?').first
|
17
17
|
find_by(
|
@@ -24,32 +24,30 @@ class TbRedirect < ActiveRecord::Base
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.create_smart(params)
|
27
|
-
redirect = find_or_initialize_by(:
|
27
|
+
redirect = find_or_initialize_by(source: params.delete(:source))
|
28
28
|
redirect.assign_attributes(params)
|
29
29
|
redirect.save()
|
30
30
|
return redirect
|
31
31
|
end
|
32
32
|
|
33
|
-
private
|
33
|
+
private
|
34
34
|
|
35
35
|
def source_not_equals_destination
|
36
|
-
if
|
36
|
+
if source == destination
|
37
37
|
errors.add(:destination, 'cannot be the same as the source')
|
38
38
|
end
|
39
39
|
return true
|
40
40
|
end
|
41
41
|
|
42
42
|
def destroy_opposite_redirect
|
43
|
-
opposite = TbRedirect.find_by(
|
44
|
-
|
45
|
-
:destination => self.source
|
46
|
-
})
|
43
|
+
opposite = TbRedirect.find_by(source: destination,
|
44
|
+
destination: source)
|
47
45
|
opposite.destroy if opposite.present?
|
48
46
|
return true
|
49
47
|
end
|
50
48
|
|
51
49
|
def schedule_loop_detection
|
52
|
-
if TbRedirect.where(:
|
50
|
+
if TbRedirect.where(destination: source).count > 0
|
53
51
|
TbRedirects::DetectRedirectLoopJob.perform_later(self)
|
54
52
|
end
|
55
53
|
return true
|
data/lib/tb_redirects/engine.rb
CHANGED
@@ -6,19 +6,19 @@ module TbRedirects
|
|
6
6
|
config.autoload_paths += Dir["#{config.root}/lib/**/"]
|
7
7
|
|
8
8
|
config.generators do |g|
|
9
|
-
g.test_framework :rspec, :
|
10
|
-
g.fixture_replacement :factory_girl, :
|
9
|
+
g.test_framework :rspec, fixture: false
|
10
|
+
g.fixture_replacement :factory_girl, dir: 'spec/factories'
|
11
11
|
g.assets false
|
12
12
|
g.helper true
|
13
13
|
end
|
14
14
|
|
15
|
-
initializer 'tb_redirects.admin', :
|
15
|
+
initializer 'tb_redirects.admin', before: 'tb_core.admin' do |_config|
|
16
16
|
Spud::Core.admin_applications += [
|
17
|
-
{:
|
17
|
+
{ name: 'Redirects', key: :tb_redirects, thumbnail: 'admin/module_icon.png', url: '/admin/redirects' }
|
18
18
|
]
|
19
19
|
end
|
20
20
|
|
21
|
-
initializer 'tb_redirects.controllers' do |
|
21
|
+
initializer 'tb_redirects.controllers' do |_config|
|
22
22
|
ActiveSupport.on_load(:action_controller) do
|
23
23
|
Spud::ApplicationController.send :include, TbRedirects::HandleRedirects
|
24
24
|
end
|
data/lib/tb_redirects/version.rb
CHANGED
data/lib/tb_redirects.rb
CHANGED
@@ -1,22 +1,20 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
RSpec.describe TbRedirects::HasRedirects do
|
4
|
-
|
5
4
|
describe 'included' do
|
6
5
|
it 'should add a has_many relationship' do
|
7
|
-
widget = Widget.create(:
|
8
|
-
redirect = widget.tb_redirects.create(:
|
6
|
+
widget = Widget.create(name: 'Test')
|
7
|
+
redirect = widget.tb_redirects.create(source: 'a', destination: 'b')
|
9
8
|
expect(widget.tb_redirects).to eq([redirect])
|
10
9
|
end
|
11
10
|
|
12
11
|
it 'should delete the related redirects' do
|
13
|
-
widget = Widget.create(:
|
14
|
-
redirect = widget.tb_redirects.create(:
|
12
|
+
widget = Widget.create(name: 'Test')
|
13
|
+
redirect = widget.tb_redirects.create(source: 'a', destination: 'b')
|
15
14
|
widget.destroy
|
16
|
-
expect
|
15
|
+
expect do
|
17
16
|
TbRedirect.find(redirect.id)
|
18
|
-
|
17
|
+
end.to raise_error(ActiveRecord::RecordNotFound)
|
19
18
|
end
|
20
19
|
end
|
21
|
-
|
22
20
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
RSpec.describe Admin::TbRedirectsController, :
|
4
|
-
|
3
|
+
RSpec.describe Admin::TbRedirectsController, type: :controller do
|
5
4
|
before(:each) do
|
6
5
|
activate_session(admin: true)
|
7
6
|
end
|
@@ -17,13 +16,13 @@ RSpec.describe Admin::TbRedirectsController, :type => :controller do
|
|
17
16
|
describe 'show' do
|
18
17
|
it 'should render the show page' do
|
19
18
|
tb_redirect = FactoryGirl.create(:tb_redirect)
|
20
|
-
get :show, :id
|
19
|
+
get :show, params: { id: tb_redirect.id }
|
21
20
|
expect(response).to have_http_status :success
|
22
21
|
expect(response).to render_template :show
|
23
22
|
end
|
24
23
|
|
25
24
|
it 'should return a 404 error' do
|
26
|
-
get :show, :id
|
25
|
+
get :show, params: { id: 1 }
|
27
26
|
expect(response).to have_http_status :not_found
|
28
27
|
end
|
29
28
|
end
|
@@ -39,7 +38,7 @@ RSpec.describe Admin::TbRedirectsController, :type => :controller do
|
|
39
38
|
describe 'edit' do
|
40
39
|
it 'should render the edit page' do
|
41
40
|
tb_redirect = FactoryGirl.create(:tb_redirect)
|
42
|
-
get :edit, :id
|
41
|
+
get :edit, params: { id: tb_redirect.id }
|
43
42
|
expect(response).to have_http_status :success
|
44
43
|
expect(response).to render_template :edit
|
45
44
|
end
|
@@ -47,9 +46,9 @@ RSpec.describe Admin::TbRedirectsController, :type => :controller do
|
|
47
46
|
|
48
47
|
describe 'create' do
|
49
48
|
it 'should create the record' do
|
50
|
-
expect
|
51
|
-
post :create, :tb_redirect
|
52
|
-
|
49
|
+
expect do
|
50
|
+
post :create, params: { tb_redirect: FactoryGirl.attributes_for(:tb_redirect) }
|
51
|
+
end.to change(TbRedirect, :count).by(1)
|
53
52
|
end
|
54
53
|
end
|
55
54
|
|
@@ -58,20 +57,19 @@ RSpec.describe Admin::TbRedirectsController, :type => :controller do
|
|
58
57
|
tb_redirect = FactoryGirl.create(:tb_redirect)
|
59
58
|
current_value = tb_redirect.source
|
60
59
|
new_value = current_value + '-Updated'
|
61
|
-
expect
|
62
|
-
patch :update, :id
|
60
|
+
expect do
|
61
|
+
patch :update, params: { id: tb_redirect.id, tb_redirect: { source: new_value } }
|
63
62
|
tb_redirect.reload
|
64
|
-
|
63
|
+
end.to change(tb_redirect, :source).to(new_value)
|
65
64
|
end
|
66
65
|
end
|
67
66
|
|
68
67
|
describe 'destroy' do
|
69
68
|
it 'should destroy the record' do
|
70
69
|
tb_redirect = FactoryGirl.create(:tb_redirect)
|
71
|
-
expect
|
72
|
-
delete :destroy, :id
|
73
|
-
|
70
|
+
expect do
|
71
|
+
delete :destroy, params: { id: tb_redirect.id }
|
72
|
+
end.to change(TbRedirect, :count).by(-1)
|
74
73
|
end
|
75
74
|
end
|
76
|
-
|
77
75
|
end
|
@@ -1,25 +1,23 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
RSpec.describe ApplicationController, type: :controller do
|
4
|
-
|
5
4
|
controller do
|
6
5
|
def index
|
7
|
-
raise Spud::NotFoundError
|
6
|
+
raise Spud::NotFoundError
|
8
7
|
end
|
9
8
|
end
|
10
9
|
|
11
10
|
describe '#check_for_applicable_redirect' do
|
12
11
|
it 'should redirect' do
|
13
|
-
FactoryGirl.create(:tb_redirect, :
|
12
|
+
FactoryGirl.create(:tb_redirect, source: '/anonymous', destination: '/redirected')
|
14
13
|
get :index
|
15
14
|
expect(response).to redirect_to('/redirected')
|
16
15
|
end
|
17
16
|
|
18
17
|
it 'should not redirect' do
|
19
|
-
FactoryGirl.create(:tb_redirect, :
|
18
|
+
FactoryGirl.create(:tb_redirect, source: '/other', destination: '/redirected')
|
20
19
|
get :index
|
21
20
|
expect(response).to_not redirect_to('/redirected')
|
22
21
|
end
|
23
22
|
end
|
24
|
-
|
25
23
|
end
|
data/spec/dummy/bin/setup
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
require 'pathname'
|
3
3
|
|
4
4
|
# path to your application root.
|
5
|
-
APP_ROOT = Pathname.new File.expand_path('../../',
|
5
|
+
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
|
6
6
|
|
7
7
|
Dir.chdir APP_ROOT do
|
8
8
|
# This script is a starting point to setup your application.
|
9
9
|
# Add necessary setup steps to this file:
|
10
10
|
|
11
|
-
puts
|
12
|
-
system
|
13
|
-
system
|
11
|
+
puts '== Installing dependencies =='
|
12
|
+
system 'gem install bundler --conservative'
|
13
|
+
system 'bundle check || bundle install'
|
14
14
|
|
15
15
|
# puts "\n== Copying sample files =="
|
16
16
|
# unless File.exist?("config/database.yml")
|
@@ -18,12 +18,12 @@ Dir.chdir APP_ROOT do
|
|
18
18
|
# end
|
19
19
|
|
20
20
|
puts "\n== Preparing database =="
|
21
|
-
system
|
21
|
+
system 'bin/rake db:setup'
|
22
22
|
|
23
23
|
puts "\n== Removing old logs and tempfiles =="
|
24
|
-
system
|
25
|
-
system
|
24
|
+
system 'rm -f log/*'
|
25
|
+
system 'rm -rf tmp/cache'
|
26
26
|
|
27
27
|
puts "\n== Restarting application server =="
|
28
|
-
system
|
28
|
+
system 'touch tmp/restart.txt'
|
29
29
|
end
|
@@ -3,13 +3,13 @@ require File.expand_path('../boot', __FILE__)
|
|
3
3
|
require 'rails/all'
|
4
4
|
|
5
5
|
Bundler.require(*Rails.groups)
|
6
|
-
require
|
6
|
+
require 'tb_redirects'
|
7
7
|
|
8
8
|
module Dummy
|
9
9
|
class Application < Rails::Application
|
10
10
|
Spud::Core.configure do |config|
|
11
|
-
config.site_name =
|
12
|
-
config.from_address =
|
11
|
+
config.site_name = 'Dummy'
|
12
|
+
config.from_address = 'no-reply@dummy.com'
|
13
13
|
end
|
14
14
|
|
15
15
|
# Settings in config/environments/* take precedence over those specified here.
|
@@ -23,9 +23,5 @@ module Dummy
|
|
23
23
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
24
24
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
25
25
|
# config.i18n.default_locale = :de
|
26
|
-
|
27
|
-
# Do not swallow errors in after_commit/after_rollback callbacks.
|
28
|
-
config.active_record.raise_in_transactional_callbacks = true
|
29
26
|
end
|
30
27
|
end
|
31
|
-
|
@@ -22,7 +22,7 @@ Rails.application.configure do
|
|
22
22
|
|
23
23
|
# Disable serving static files from the `/public` folder by default since
|
24
24
|
# Apache or NGINX already handles this.
|
25
|
-
config.
|
25
|
+
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
|
26
26
|
|
27
27
|
# Compress JavaScripts and CSS.
|
28
28
|
config.assets.js_compressor = :uglifier
|
@@ -13,8 +13,8 @@ Rails.application.configure do
|
|
13
13
|
config.eager_load = false
|
14
14
|
|
15
15
|
# Configure static file server for tests with Cache-Control for performance.
|
16
|
-
config.
|
17
|
-
config.
|
16
|
+
config.public_file_server.enabled = true
|
17
|
+
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
|
18
18
|
|
19
19
|
# Show full error reports and disable caching.
|
20
20
|
config.consider_all_requests_local = true
|
@@ -2,21 +2,20 @@
|
|
2
2
|
class CreateSpudUsers < ActiveRecord::Migration
|
3
3
|
def change
|
4
4
|
create_table :spud_users do |t|
|
5
|
-
|
6
5
|
t.string :first_name
|
7
6
|
t.string :last_name
|
8
7
|
t.boolean :super_admin
|
9
|
-
t.string :login, :
|
10
|
-
t.string :email, :
|
11
|
-
t.string :crypted_password, :
|
12
|
-
t.string :password_salt, :
|
13
|
-
t.string :persistence_token, :
|
14
|
-
t.string :single_access_token, :
|
15
|
-
t.string :perishable_token, :
|
8
|
+
t.string :login, null: false # optional, you can use email instead, or both
|
9
|
+
t.string :email, null: false # optional, you can use login instead, or both
|
10
|
+
t.string :crypted_password, null: false # optional, see below
|
11
|
+
t.string :password_salt, null: false # optional, but highly recommended
|
12
|
+
t.string :persistence_token, null: false # required
|
13
|
+
t.string :single_access_token, null: false # optional, see Authlogic::Session::Params
|
14
|
+
t.string :perishable_token, null: false # optional, see Authlogic::Session::Perishability
|
16
15
|
|
17
16
|
# Magic columns, just like ActiveRecord's created_at and updated_at. These are automatically maintained by Authlogic if they are present.
|
18
|
-
t.integer :login_count, :
|
19
|
-
t.integer :failed_login_count, :
|
17
|
+
t.integer :login_count, null: false, default: 0 # optional, see Authlogic::Session::MagicColumns
|
18
|
+
t.integer :failed_login_count, null: false, default: 0 # optional, see Authlogic::Session::MagicColumns
|
20
19
|
t.datetime :last_request_at # optional, see Authlogic::Session::MagicColumns
|
21
20
|
t.datetime :current_login_at # optional, see Authlogic::Session::MagicColumns
|
22
21
|
t.datetime :last_login_at # optional, see Authlogic::Session::MagicColumns
|
@@ -2,10 +2,10 @@
|
|
2
2
|
class CreateSpudPermissions < ActiveRecord::Migration
|
3
3
|
def change
|
4
4
|
create_table :spud_permissions do |t|
|
5
|
-
t.string :name, :
|
6
|
-
t.string :tag, :
|
5
|
+
t.string :name, null: false
|
6
|
+
t.string :tag, null: false
|
7
7
|
t.timestamps
|
8
8
|
end
|
9
|
-
add_index :spud_permissions, :tag, :
|
9
|
+
add_index :spud_permissions, :tag, unique: true
|
10
10
|
end
|
11
11
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
class CreateSpudRolePermissions < ActiveRecord::Migration
|
3
3
|
def change
|
4
4
|
create_table :spud_role_permissions do |t|
|
5
|
-
t.integer :spud_role_id, :
|
6
|
-
t.string :spud_permission_tag, :
|
5
|
+
t.integer :spud_role_id, null: false
|
6
|
+
t.string :spud_permission_tag, null: false
|
7
7
|
t.timestamps
|
8
8
|
end
|
9
9
|
add_index :spud_role_permissions, :spud_role_id
|
data/spec/dummy/db/migrate/20160211160623_add_requires_password_change_to_spud_users.tb_core.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# This migration comes from tb_core (originally 20150610143438)
|
2
2
|
class AddRequiresPasswordChangeToSpudUsers < ActiveRecord::Migration
|
3
3
|
def change
|
4
|
-
add_column :spud_users, :requires_password_change, :boolean, :
|
4
|
+
add_column :spud_users, :requires_password_change, :boolean, default: false
|
5
5
|
end
|
6
6
|
end
|
@@ -4,12 +4,12 @@ class CreateTbRedirects < ActiveRecord::Migration
|
|
4
4
|
create_table :tb_redirects do |t|
|
5
5
|
t.string :owner_type
|
6
6
|
t.integer :owner_id
|
7
|
-
t.string :source, :
|
8
|
-
t.string :destination, :
|
7
|
+
t.string :source, null: false
|
8
|
+
t.string :destination, null: false
|
9
9
|
t.string :created_by
|
10
10
|
t.timestamps null: false
|
11
11
|
end
|
12
12
|
add_index :tb_redirects, [:owner_type, :owner_id]
|
13
|
-
add_index :tb_redirects, :source, :
|
13
|
+
add_index :tb_redirects, :source, unique: true
|
14
14
|
end
|
15
15
|
end
|