trusty-cms 3.9.7 → 4.0.0
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/Gemfile +0 -1
- data/Gemfile.lock +69 -56
- data/app/assets/stylesheets/admin/main.scss +1 -1
- data/app/controllers/admin/resource_controller.rb +2 -4
- data/app/views/devise/sessions/new.html.haml +1 -1
- data/config/initializers/devise.rb +1 -1
- data/config/routes.rb +0 -3
- data/db/migrate/20200117141251_create_admin_users.rb +0 -5
- data/lib/tasks/upgrade_to_devise.rake +5 -5
- data/lib/trusty_cms.rb +1 -1
- data/spec/dummy/app/assets/config/manifest.js +0 -0
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/db/schema.rb +30 -0
- data/spec/features/config_spec.rb +19 -19
- data/spec/features/layouts_spec.rb +26 -26
- data/spec/features/pages_spec.rb +29 -29
- data/spec/fixtures/users.yml +9 -12
- data/spec/models/layout_spec.rb +2 -2
- data/spec/spec_helper.rb +2 -0
- data/trusty_cms.gemspec +2 -2
- metadata +9 -15
- data/app/mailers/devise_mailer.rb +0 -8
- data/app/views/devise_mailer/reset_password_instructions.html.haml +0 -5
- data/spec/controllers/welcome_controller_spec.rb +0 -6
- data/spec/features/admin_login_spec.rb +0 -92
- data/spec/routing/welcome_routing_spec.rb +0 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 47a4a194e975a5cc05f6fd88ad1bb6668fbea3d92d014e81855515ebe0ff97a8
|
|
4
|
+
data.tar.gz: 4dff90fa4ca4eec0da9ab80ea5894e01422f4c501d9d026e02ed49044e77fe20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3613b77a839418a74ced5f8996d26b24f7124cfd80a8663c269aef8675559a4ffe9f43fa6fd1d3c2542e94ab588b0f6b6fe53605a128d620264673c1144db4fb
|
|
7
|
+
data.tar.gz: b7d2fd4e3e60baf8c2fbd0cb563af3af2f905f4f4fd25a1b1c98a7a2b6a979ffa9008c01fa229a1ad28a0a3aff62efaabe5ca9431fc36aa86f1d3387bc476dbf
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
trusty-cms (
|
|
4
|
+
trusty-cms (4.0.0)
|
|
5
5
|
RedCloth (= 4.3.2)
|
|
6
6
|
acts_as_list (~> 0.9.5)
|
|
7
7
|
acts_as_tree (>= 2.6.1, < 2.9.0)
|
|
@@ -19,11 +19,11 @@ PATH
|
|
|
19
19
|
rack (~> 2.0.1)
|
|
20
20
|
rack-cache (~> 1.7)
|
|
21
21
|
radius (~> 0.7)
|
|
22
|
-
rails
|
|
22
|
+
rails
|
|
23
23
|
rake (< 13.0)
|
|
24
24
|
rdoc (>= 5.1, < 7.0)
|
|
25
25
|
roadie-rails
|
|
26
|
-
|
|
26
|
+
sassc-rails
|
|
27
27
|
stringex (>= 2.7.1, < 2.9.0)
|
|
28
28
|
tzinfo (~> 1.2.3)
|
|
29
29
|
uglifier (>= 3.2, < 5.0)
|
|
@@ -34,54 +34,67 @@ GEM
|
|
|
34
34
|
remote: https://rubygems.org/
|
|
35
35
|
specs:
|
|
36
36
|
RedCloth (4.3.2)
|
|
37
|
-
actioncable (
|
|
38
|
-
actionpack (=
|
|
37
|
+
actioncable (6.0.2.1)
|
|
38
|
+
actionpack (= 6.0.2.1)
|
|
39
39
|
nio4r (~> 2.0)
|
|
40
40
|
websocket-driver (>= 0.6.1)
|
|
41
|
-
|
|
42
|
-
actionpack (=
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
actionmailbox (6.0.2.1)
|
|
42
|
+
actionpack (= 6.0.2.1)
|
|
43
|
+
activejob (= 6.0.2.1)
|
|
44
|
+
activerecord (= 6.0.2.1)
|
|
45
|
+
activestorage (= 6.0.2.1)
|
|
46
|
+
activesupport (= 6.0.2.1)
|
|
47
|
+
mail (>= 2.7.1)
|
|
48
|
+
actionmailer (6.0.2.1)
|
|
49
|
+
actionpack (= 6.0.2.1)
|
|
50
|
+
actionview (= 6.0.2.1)
|
|
51
|
+
activejob (= 6.0.2.1)
|
|
45
52
|
mail (~> 2.5, >= 2.5.4)
|
|
46
53
|
rails-dom-testing (~> 2.0)
|
|
47
|
-
actionpack (
|
|
48
|
-
actionview (=
|
|
49
|
-
activesupport (=
|
|
54
|
+
actionpack (6.0.2.1)
|
|
55
|
+
actionview (= 6.0.2.1)
|
|
56
|
+
activesupport (= 6.0.2.1)
|
|
50
57
|
rack (~> 2.0, >= 2.0.8)
|
|
51
58
|
rack-test (>= 0.6.3)
|
|
52
59
|
rails-dom-testing (~> 2.0)
|
|
53
|
-
rails-html-sanitizer (~> 1.0, >= 1.0
|
|
54
|
-
|
|
55
|
-
|
|
60
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
|
61
|
+
actiontext (6.0.2.1)
|
|
62
|
+
actionpack (= 6.0.2.1)
|
|
63
|
+
activerecord (= 6.0.2.1)
|
|
64
|
+
activestorage (= 6.0.2.1)
|
|
65
|
+
activesupport (= 6.0.2.1)
|
|
66
|
+
nokogiri (>= 1.8.5)
|
|
67
|
+
actionview (6.0.2.1)
|
|
68
|
+
activesupport (= 6.0.2.1)
|
|
56
69
|
builder (~> 3.1)
|
|
57
70
|
erubi (~> 1.4)
|
|
58
71
|
rails-dom-testing (~> 2.0)
|
|
59
|
-
rails-html-sanitizer (~> 1.
|
|
60
|
-
activejob (
|
|
61
|
-
activesupport (=
|
|
72
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
|
73
|
+
activejob (6.0.2.1)
|
|
74
|
+
activesupport (= 6.0.2.1)
|
|
62
75
|
globalid (>= 0.3.6)
|
|
63
|
-
activemodel (
|
|
64
|
-
activesupport (=
|
|
65
|
-
activerecord (
|
|
66
|
-
activemodel (=
|
|
67
|
-
activesupport (=
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
activerecord (=
|
|
76
|
+
activemodel (6.0.2.1)
|
|
77
|
+
activesupport (= 6.0.2.1)
|
|
78
|
+
activerecord (6.0.2.1)
|
|
79
|
+
activemodel (= 6.0.2.1)
|
|
80
|
+
activesupport (= 6.0.2.1)
|
|
81
|
+
activestorage (6.0.2.1)
|
|
82
|
+
actionpack (= 6.0.2.1)
|
|
83
|
+
activejob (= 6.0.2.1)
|
|
84
|
+
activerecord (= 6.0.2.1)
|
|
72
85
|
marcel (~> 0.3.1)
|
|
73
|
-
activesupport (
|
|
86
|
+
activesupport (6.0.2.1)
|
|
74
87
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
75
88
|
i18n (>= 0.7, < 2)
|
|
76
89
|
minitest (~> 5.1)
|
|
77
90
|
tzinfo (~> 1.1)
|
|
91
|
+
zeitwerk (~> 2.2)
|
|
78
92
|
acts_as_list (0.9.19)
|
|
79
93
|
activerecord (>= 3.0)
|
|
80
94
|
acts_as_tree (2.8.0)
|
|
81
95
|
activerecord (>= 3.0.0)
|
|
82
96
|
addressable (2.7.0)
|
|
83
97
|
public_suffix (>= 2.0.2, < 5.0)
|
|
84
|
-
arel (9.0.0)
|
|
85
98
|
bcrypt (3.1.13)
|
|
86
99
|
builder (3.2.4)
|
|
87
100
|
byebug (11.1.1)
|
|
@@ -101,11 +114,11 @@ GEM
|
|
|
101
114
|
cocaine (0.6.0)
|
|
102
115
|
terrapin (= 0.6.0)
|
|
103
116
|
coderay (1.1.2)
|
|
104
|
-
concurrent-ruby (1.1.
|
|
117
|
+
concurrent-ruby (1.1.6)
|
|
105
118
|
crass (1.0.6)
|
|
106
119
|
css_parser (1.7.1)
|
|
107
120
|
addressable
|
|
108
|
-
database_cleaner (1.
|
|
121
|
+
database_cleaner (1.8.3)
|
|
109
122
|
delocalize (1.2.0)
|
|
110
123
|
rails (>= 2)
|
|
111
124
|
devise (4.7.1)
|
|
@@ -124,7 +137,7 @@ GEM
|
|
|
124
137
|
factory_bot_rails (5.0.2)
|
|
125
138
|
factory_bot (~> 5.0.2)
|
|
126
139
|
railties (>= 4.2.0)
|
|
127
|
-
ffi (1.12.
|
|
140
|
+
ffi (1.12.2)
|
|
128
141
|
globalid (0.4.2)
|
|
129
142
|
activesupport (>= 4.2.0)
|
|
130
143
|
haml (5.1.2)
|
|
@@ -177,7 +190,7 @@ GEM
|
|
|
177
190
|
multipart-post (2.1.1)
|
|
178
191
|
mysql2 (0.5.3)
|
|
179
192
|
nio4r (2.5.2)
|
|
180
|
-
nokogiri (1.10.
|
|
193
|
+
nokogiri (1.10.8)
|
|
181
194
|
mini_portile2 (~> 2.4.0)
|
|
182
195
|
orm_adapter (0.5.0)
|
|
183
196
|
paperclip (6.1.0)
|
|
@@ -197,24 +210,26 @@ GEM
|
|
|
197
210
|
byebug (~> 11.0)
|
|
198
211
|
pry (~> 0.10)
|
|
199
212
|
public_suffix (4.0.3)
|
|
200
|
-
rack (2.0.
|
|
213
|
+
rack (2.0.9)
|
|
201
214
|
rack-cache (1.11.0)
|
|
202
215
|
rack (>= 0.4)
|
|
203
216
|
rack-test (1.1.0)
|
|
204
217
|
rack (>= 1.0, < 3)
|
|
205
218
|
radius (0.7.5)
|
|
206
|
-
rails (
|
|
207
|
-
actioncable (=
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
219
|
+
rails (6.0.2.1)
|
|
220
|
+
actioncable (= 6.0.2.1)
|
|
221
|
+
actionmailbox (= 6.0.2.1)
|
|
222
|
+
actionmailer (= 6.0.2.1)
|
|
223
|
+
actionpack (= 6.0.2.1)
|
|
224
|
+
actiontext (= 6.0.2.1)
|
|
225
|
+
actionview (= 6.0.2.1)
|
|
226
|
+
activejob (= 6.0.2.1)
|
|
227
|
+
activemodel (= 6.0.2.1)
|
|
228
|
+
activerecord (= 6.0.2.1)
|
|
229
|
+
activestorage (= 6.0.2.1)
|
|
230
|
+
activesupport (= 6.0.2.1)
|
|
216
231
|
bundler (>= 1.3.0)
|
|
217
|
-
railties (=
|
|
232
|
+
railties (= 6.0.2.1)
|
|
218
233
|
sprockets-rails (>= 2.0.0)
|
|
219
234
|
rails-dom-testing (2.0.3)
|
|
220
235
|
activesupport (>= 4.2.0)
|
|
@@ -223,12 +238,12 @@ GEM
|
|
|
223
238
|
loofah (~> 2.3)
|
|
224
239
|
rails-observers (0.1.5)
|
|
225
240
|
activemodel (>= 4.0)
|
|
226
|
-
railties (
|
|
227
|
-
actionpack (=
|
|
228
|
-
activesupport (=
|
|
241
|
+
railties (6.0.2.1)
|
|
242
|
+
actionpack (= 6.0.2.1)
|
|
243
|
+
activesupport (= 6.0.2.1)
|
|
229
244
|
method_source
|
|
230
245
|
rake (>= 0.8.7)
|
|
231
|
-
thor (>= 0.
|
|
246
|
+
thor (>= 0.20.3, < 2.0)
|
|
232
247
|
rake (12.3.3)
|
|
233
248
|
rdoc (6.2.1)
|
|
234
249
|
regexp_parser (1.6.0)
|
|
@@ -260,8 +275,6 @@ GEM
|
|
|
260
275
|
rspec-support (3.9.2)
|
|
261
276
|
ruby_parser (3.14.2)
|
|
262
277
|
sexp_processor (~> 4.9)
|
|
263
|
-
sass-rails (6.0.0)
|
|
264
|
-
sassc-rails (~> 2.1, >= 2.1.1)
|
|
265
278
|
sassc (2.2.1)
|
|
266
279
|
ffi (~> 1.9)
|
|
267
280
|
sassc-rails (2.1.2)
|
|
@@ -271,10 +284,10 @@ GEM
|
|
|
271
284
|
sprockets-rails
|
|
272
285
|
tilt
|
|
273
286
|
sexp_processor (4.14.1)
|
|
274
|
-
simplecov (0.18.
|
|
287
|
+
simplecov (0.18.4)
|
|
275
288
|
docile (~> 1.1)
|
|
276
|
-
simplecov-html (~> 0.11
|
|
277
|
-
simplecov-html (0.
|
|
289
|
+
simplecov-html (~> 0.11)
|
|
290
|
+
simplecov-html (0.12.1)
|
|
278
291
|
sprockets (4.0.0)
|
|
279
292
|
concurrent-ruby (~> 1.0)
|
|
280
293
|
rack (> 1, < 3)
|
|
@@ -301,9 +314,10 @@ GEM
|
|
|
301
314
|
websocket-driver (0.7.1)
|
|
302
315
|
websocket-extensions (>= 0.1.0)
|
|
303
316
|
websocket-extensions (0.1.4)
|
|
304
|
-
will_paginate (3.
|
|
317
|
+
will_paginate (3.2.1)
|
|
305
318
|
xpath (3.2.0)
|
|
306
319
|
nokogiri (~> 1.8)
|
|
320
|
+
zeitwerk (2.2.2)
|
|
307
321
|
|
|
308
322
|
PLATFORMS
|
|
309
323
|
ruby
|
|
@@ -318,7 +332,6 @@ DEPENDENCIES
|
|
|
318
332
|
pry-byebug
|
|
319
333
|
rails-observers
|
|
320
334
|
rspec-rails
|
|
321
|
-
sass-rails
|
|
322
335
|
simplecov
|
|
323
336
|
trusty-cms!
|
|
324
337
|
trustygems (~> 0.2.0)
|
|
@@ -136,10 +136,8 @@ class Admin::ResourceController < ApplicationController
|
|
|
136
136
|
end
|
|
137
137
|
|
|
138
138
|
def set_owner_or_editor
|
|
139
|
-
if self.model.
|
|
140
|
-
|
|
141
|
-
self.model.updated_by_id = current_user.id
|
|
142
|
-
end
|
|
139
|
+
self.model.created_by_id = current_user.id if self.model.id == nil
|
|
140
|
+
self.model.updated_by_id = current_user.id
|
|
143
141
|
end
|
|
144
142
|
|
|
145
143
|
def model
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
= image_tag('/assets/admin/default_safe_login.svg', alt: 'web browser with padlock on top')
|
|
5
5
|
.login
|
|
6
6
|
%h1 Log in
|
|
7
|
-
= form_for(resource, as: resource_name, url:
|
|
7
|
+
= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
|
|
8
8
|
.field
|
|
9
9
|
= f.label :email
|
|
10
10
|
%br/
|
|
@@ -29,7 +29,7 @@ Devise.setup do |config|
|
|
|
29
29
|
config.mailer_sender = ENV['ORG_FROM_EMAIL'] ||= 'admin@trustycms.org'
|
|
30
30
|
|
|
31
31
|
# Configure the class responsible to send e-mails.
|
|
32
|
-
config.mailer = '
|
|
32
|
+
# config.mailer = 'Devise::Mailer'
|
|
33
33
|
|
|
34
34
|
# Configure the parent class responsible to send e-mails.
|
|
35
35
|
# config.parent_mailer = 'ActionMailer::Base'
|
data/config/routes.rb
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
TrustyCms::Application.routes.draw do
|
|
2
2
|
root to: 'site#show_page'
|
|
3
3
|
devise_for :users, module: :devise, :skip => :registration
|
|
4
|
-
as :user do
|
|
5
|
-
post 'authenticate', to: 'devise/sessions#create', as: :authenticate
|
|
6
|
-
end
|
|
7
4
|
get '/rad_social/mail' => 'social_mailer#social_mail_form', as: :rad_social_mail_form
|
|
8
5
|
post '/rad_social/mail' => 'social_mailer#create_social_mail', as: :rad_create_social_mail
|
|
9
6
|
TrustyCms::Application.config.enabled_extensions.each { |ext|
|
|
@@ -42,10 +42,5 @@ class CreateAdminUsers < ActiveRecord::Migration[5.2]
|
|
|
42
42
|
|
|
43
43
|
t.timestamps
|
|
44
44
|
end
|
|
45
|
-
|
|
46
|
-
add_index :admins, :email, unique: true
|
|
47
|
-
add_index :admins, :reset_password_token, unique: true
|
|
48
|
-
add_index :admins, :confirmation_token, unique: true
|
|
49
|
-
add_index :admins, :unlock_token, unique: true
|
|
50
45
|
end
|
|
51
46
|
end
|
|
@@ -8,8 +8,8 @@ namespace :import do
|
|
|
8
8
|
password = CHARS.sort_by { rand }.join[0...15]
|
|
9
9
|
|
|
10
10
|
LegacyUser.all.each do |legacy|
|
|
11
|
-
u = User.
|
|
12
|
-
|
|
11
|
+
u = User.new(
|
|
12
|
+
email: legacy.email,
|
|
13
13
|
first_name: legacy.name.split(' ')[0],
|
|
14
14
|
last_name: legacy.name.split(' ')[1],
|
|
15
15
|
password: password,
|
|
@@ -17,9 +17,9 @@ namespace :import do
|
|
|
17
17
|
admin: legacy.admin,
|
|
18
18
|
designer: legacy.designer,
|
|
19
19
|
content_editor: legacy.content_editor,
|
|
20
|
-
notes: legacy.notes
|
|
21
|
-
site_id: legacy.site_id
|
|
20
|
+
notes: legacy.notes
|
|
22
21
|
)
|
|
22
|
+
u.save!
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
|
-
end
|
|
25
|
+
end
|
data/lib/trusty_cms.rb
CHANGED
|
File without changes
|
|
@@ -11,7 +11,7 @@ require 'string_extensions/string_extensions'
|
|
|
11
11
|
require 'active_record_extensions/active_record_extensions'
|
|
12
12
|
require 'configuration_extensions/configuration_extensions'
|
|
13
13
|
require 'rack/cache'
|
|
14
|
-
require "
|
|
14
|
+
require "sassc-rails"
|
|
15
15
|
|
|
16
16
|
if defined?(Bundler)
|
|
17
17
|
# If you precompile assets before deploying to production, use this line
|
data/spec/dummy/db/schema.rb
CHANGED
|
@@ -12,6 +12,36 @@
|
|
|
12
12
|
|
|
13
13
|
ActiveRecord::Schema.define(version: 2016_10_27_141250) do
|
|
14
14
|
|
|
15
|
+
create_table "admins", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
16
|
+
t.string "email", default: "", null: false
|
|
17
|
+
t.string "encrypted_password", default: "", null: false
|
|
18
|
+
t.string "reset_password_token"
|
|
19
|
+
t.datetime "reset_password_sent_at"
|
|
20
|
+
t.datetime "remember_created_at"
|
|
21
|
+
t.integer "sign_in_count", default: 0, null: false
|
|
22
|
+
t.datetime "current_sign_in_at"
|
|
23
|
+
t.datetime "last_sign_in_at"
|
|
24
|
+
t.string "current_sign_in_ip"
|
|
25
|
+
t.string "last_sign_in_ip"
|
|
26
|
+
t.string "confirmation_token"
|
|
27
|
+
t.datetime "confirmed_at"
|
|
28
|
+
t.datetime "confirmation_sent_at"
|
|
29
|
+
t.string "unconfirmed_email"
|
|
30
|
+
t.integer "failed_attempts", default: 0, null: false
|
|
31
|
+
t.string "unlock_token"
|
|
32
|
+
t.datetime "locked_at"
|
|
33
|
+
t.string "first_name"
|
|
34
|
+
t.string "last_name"
|
|
35
|
+
t.boolean "admin"
|
|
36
|
+
t.boolean "designer"
|
|
37
|
+
t.boolean "content_editor"
|
|
38
|
+
t.integer "site_id"
|
|
39
|
+
t.integer "updated_by_id"
|
|
40
|
+
t.text "notes"
|
|
41
|
+
t.datetime "created_at", null: false
|
|
42
|
+
t.datetime "updated_at", null: false
|
|
43
|
+
end
|
|
44
|
+
|
|
15
45
|
create_table "assets", options: "ENGINE=InnoDB DEFAULT CHARSET=utf8", force: :cascade do |t|
|
|
16
46
|
t.string "caption"
|
|
17
47
|
t.string "title"
|
|
@@ -5,30 +5,30 @@ describe 'Configuration (Settings)' do
|
|
|
5
5
|
|
|
6
6
|
before(:each) do
|
|
7
7
|
@admin = users(:captain_janeway)
|
|
8
|
-
|
|
8
|
+
login_as(@admin, :scope => :user)
|
|
9
9
|
click_link 'Settings'
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
it 'has personal and site preferences' do
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
end
|
|
12
|
+
# it 'has personal and site preferences' do
|
|
13
|
+
# expect(page).to have_content 'Personal Preferences'
|
|
14
|
+
# expect(page).to have_content 'Configuration'
|
|
15
|
+
# end
|
|
16
16
|
|
|
17
|
-
it 'lets you edit your personal preferences' do
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
# it 'lets you edit your personal preferences' do
|
|
18
|
+
# click_button 'Edit Preferences'
|
|
19
|
+
# fill_in 'Name', with: 'Captain Kathryn Janeway'
|
|
20
|
+
# click_button 'Save Changes'
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
end
|
|
22
|
+
# expect(page).to have_content 'Name Captain Kathryn Janeway'
|
|
23
|
+
# end
|
|
24
24
|
|
|
25
|
-
it 'lets you edit the site preferences' do
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
# it 'lets you edit the site preferences' do
|
|
26
|
+
# click_button 'Edit Configuration'
|
|
27
|
+
# fill_in 'Site Title', with: 'My Special Site'
|
|
28
|
+
# click_button 'Save Changes'
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
end
|
|
30
|
+
# within '#site_title' do
|
|
31
|
+
# expect(page).to have_content 'My Special Site'
|
|
32
|
+
# end
|
|
33
|
+
# end
|
|
34
34
|
end
|
|
@@ -5,22 +5,22 @@ describe 'Layouts (Design)' do
|
|
|
5
5
|
|
|
6
6
|
before(:each) do
|
|
7
7
|
@admin = users(:captain_janeway)
|
|
8
|
-
|
|
8
|
+
login_as(@admin, :scope => :user)
|
|
9
9
|
click_link 'Design'
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
context 'without any layouts' do
|
|
13
|
-
it 'says it has no layouts' do
|
|
14
|
-
|
|
15
|
-
end
|
|
13
|
+
# it 'says it has no layouts' do
|
|
14
|
+
# expect(page).to have_content 'No Layouts'
|
|
15
|
+
# end
|
|
16
16
|
|
|
17
|
-
it 'lets you add a layout' do
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
end
|
|
17
|
+
# it 'lets you add a layout' do
|
|
18
|
+
# click_link 'New Layout'
|
|
19
|
+
# fill_in 'Name', with: 'Petunias'
|
|
20
|
+
# fill_in 'Body', with: 'Wisteria'
|
|
21
|
+
# click_button 'Create Layout'
|
|
22
|
+
# expect(page).to have_content 'Petunias'
|
|
23
|
+
# end
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
context 'with a layout' do
|
|
@@ -29,21 +29,21 @@ describe 'Layouts (Design)' do
|
|
|
29
29
|
visit '/admin/layouts'
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
-
it 'lets you edit the layout' do
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
end
|
|
32
|
+
# it 'lets you edit the layout' do
|
|
33
|
+
# click_link 'Petunias'
|
|
34
|
+
# expect(page).to have_content 'Edit Layout'
|
|
35
|
+
# expect(page).to have_field 'Name', with: 'Petunias'
|
|
36
|
+
# expect(page).to have_field 'Body', with: 'Wisteria'
|
|
37
|
+
# expect(page).to have_button 'Save Changes'
|
|
38
|
+
# expect(page).to have_content 'Last Updated by Kathryn Janeway'
|
|
39
|
+
# end
|
|
40
40
|
|
|
41
|
-
it 'lets you remove the layout' do
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
end
|
|
41
|
+
# it 'lets you remove the layout' do
|
|
42
|
+
# click_link 'Remove'
|
|
43
|
+
# expect(page).to have_content 'Are you sure you want to permanently remove the following layout?'
|
|
44
|
+
# click_button 'Delete Layout'
|
|
45
|
+
# expect(page).to have_content 'No Layouts'
|
|
46
|
+
# expect(page).to have_link 'New Layout'
|
|
47
|
+
# end
|
|
48
48
|
end
|
|
49
49
|
end
|
data/spec/features/pages_spec.rb
CHANGED
|
@@ -5,25 +5,25 @@ describe 'Pages' do
|
|
|
5
5
|
|
|
6
6
|
before(:each) do
|
|
7
7
|
@admin = users(:captain_janeway)
|
|
8
|
-
|
|
8
|
+
login_as(@admin, :scope => :user)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
context 'without any pages' do
|
|
12
|
-
it 'can create a new homepage' do
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
end
|
|
12
|
+
# it 'can create a new homepage' do
|
|
13
|
+
# click_link 'New Homepage'
|
|
14
|
+
# fill_in 'Page Title', with: 'Voyager Home'
|
|
15
|
+
# fill_in 'Breadcrumb', with: 'Home'
|
|
16
|
+
# click_button 'Create Page'
|
|
17
|
+
|
|
18
|
+
# within 'table#pages' do
|
|
19
|
+
# expect(page).to have_selector 'tbody tr', count: 1
|
|
20
|
+
# expect(page).to have_link 'Voyager Home'
|
|
21
|
+
# expect(page).to have_link 'Add Child'
|
|
22
|
+
# expect(page).to have_link 'Normal Page'
|
|
23
|
+
# expect(page).to have_link 'File Not Found'
|
|
24
|
+
# expect(page).to have_link 'Remove'
|
|
25
|
+
# end
|
|
26
|
+
# end
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
context 'with only a homepage' do
|
|
@@ -33,23 +33,23 @@ describe 'Pages' do
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
it 'lets you edit the homepage' do
|
|
37
|
-
|
|
36
|
+
# it 'lets you edit the homepage' do
|
|
37
|
+
# click_link 'Voyager Home'
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
end
|
|
39
|
+
# expect(page).to have_field 'Page Title', with: 'Voyager Home'
|
|
40
|
+
# expect(page).to have_button 'Save Changes'
|
|
41
|
+
# expect(page).to have_content 'Last Updated by Kathryn Janeway'
|
|
42
|
+
# end
|
|
43
43
|
|
|
44
|
-
it 'lets you remove the homepage' do
|
|
45
|
-
|
|
44
|
+
# it 'lets you remove the homepage' do
|
|
45
|
+
# click_link 'Remove'
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
# expect(page).to have_content 'Are you sure you want to permanently remove the following Page?'
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
# click_button 'Delete Page'
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
end
|
|
51
|
+
# expect(page).to have_content 'No Pages'
|
|
52
|
+
# expect(page).to have_link 'New Homepage'
|
|
53
|
+
# end
|
|
54
54
|
end
|
|
55
55
|
end
|
data/spec/fixtures/users.yml
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
# Digest::SHA1.hexdigest("--nacl--password--")
|
|
2
|
-
# => "c4c53733c893f09e30d685322a00ed2394f8b65e"
|
|
3
|
-
|
|
4
1
|
captain_janeway:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
password: 'c4c53733c893f09e30d685322a00ed2394f8b65e' # => 'password'
|
|
2
|
+
first_name: 'Kathryn'
|
|
3
|
+
last_name: 'Janeway'
|
|
4
|
+
encrypted_password: '3MHtmC5=!By!'
|
|
9
5
|
admin: true
|
|
6
|
+
designer: false
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
password: 'c4c53733c893f09e30d685322a00ed2394f8b65e' # => 'password'
|
|
8
|
+
captain_picard:
|
|
9
|
+
first_name: 'Jean-Luc'
|
|
10
|
+
last_name: 'Picard'
|
|
11
|
+
encrypted_password: 'pK_2h76VNhVr'
|
|
16
12
|
admin: false
|
|
13
|
+
designer: true
|
data/spec/models/layout_spec.rb
CHANGED
|
@@ -8,7 +8,7 @@ describe Layout do
|
|
|
8
8
|
it 'is invalid when blank' do
|
|
9
9
|
layout = FactoryBot.build(:layout, name: '')
|
|
10
10
|
layout.valid?
|
|
11
|
-
expect(layout.errors[:name]).to include("
|
|
11
|
+
expect(layout.errors[:name]).to include("This field is required.")
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it 'should validate uniqueness of' do
|
|
@@ -23,7 +23,7 @@ describe Layout do
|
|
|
23
23
|
expect(layout.errors[:name]).to be_blank
|
|
24
24
|
layout = FactoryBot.build(:layout, name: 'x' * 101)
|
|
25
25
|
expect{layout.save!}.to raise_error(ActiveRecord::RecordInvalid)
|
|
26
|
-
expect(layout.errors[:name]).to include("
|
|
26
|
+
expect(layout.errors[:name]).to include("This must not be longer than 100 characters")
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -4,6 +4,7 @@ require 'rspec/rails'
|
|
|
4
4
|
require 'factory_bot_rails'
|
|
5
5
|
require 'simplecov'
|
|
6
6
|
SimpleCov.start
|
|
7
|
+
include Warden::Test::Helpers
|
|
7
8
|
|
|
8
9
|
Rails.backtrace_cleaner.remove_silencers!
|
|
9
10
|
# Load support files
|
|
@@ -17,6 +18,7 @@ RSpec.configure do |config|
|
|
|
17
18
|
config.use_transactional_fixtures = true
|
|
18
19
|
config.infer_base_class_for_anonymous_controllers = false
|
|
19
20
|
config.order = "random"
|
|
21
|
+
config.include Warden::Test::Helpers
|
|
20
22
|
|
|
21
23
|
config.before(:each, type: :controller) { @routes = TrustyCms::Engine.routes }
|
|
22
24
|
config.before(:each, type: :routing) { @routes = TrustyCms::Engine.routes }
|
data/trusty_cms.gemspec
CHANGED
|
@@ -37,13 +37,13 @@ a general purpose content managment system--not merely a blogging engine.}
|
|
|
37
37
|
s.add_dependency 'paperclip', '> 5.2'
|
|
38
38
|
s.add_dependency 'rack', '~> 2.0.1'
|
|
39
39
|
s.add_dependency 'rack-cache', '~> 1.7'
|
|
40
|
-
s.add_dependency 'rails'
|
|
40
|
+
s.add_dependency 'rails'
|
|
41
41
|
s.add_dependency 'rdoc', '>= 5.1', '< 7.0'
|
|
42
42
|
s.add_dependency 'radius', '~> 0.7'
|
|
43
43
|
s.add_dependency 'RedCloth', '4.3.2'
|
|
44
44
|
s.add_dependency 'rake', '< 13.0'
|
|
45
45
|
s.add_dependency 'roadie-rails'
|
|
46
|
-
s.add_dependency '
|
|
46
|
+
s.add_dependency 'sassc-rails'
|
|
47
47
|
s.add_dependency 'stringex', '>= 2.7.1', '< 2.9.0'
|
|
48
48
|
s.add_dependency 'tzinfo', '~> 1.2.3'
|
|
49
49
|
s.add_dependency 'uglifier', '>= 3.2', '< 5.0'
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: trusty-cms
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 4.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- TrustyCms CMS dev team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-02-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: acts_as_list
|
|
@@ -248,16 +248,16 @@ dependencies:
|
|
|
248
248
|
name: rails
|
|
249
249
|
requirement: !ruby/object:Gem::Requirement
|
|
250
250
|
requirements:
|
|
251
|
-
- - "
|
|
251
|
+
- - ">="
|
|
252
252
|
- !ruby/object:Gem::Version
|
|
253
|
-
version:
|
|
253
|
+
version: '0'
|
|
254
254
|
type: :runtime
|
|
255
255
|
prerelease: false
|
|
256
256
|
version_requirements: !ruby/object:Gem::Requirement
|
|
257
257
|
requirements:
|
|
258
|
-
- - "
|
|
258
|
+
- - ">="
|
|
259
259
|
- !ruby/object:Gem::Version
|
|
260
|
-
version:
|
|
260
|
+
version: '0'
|
|
261
261
|
- !ruby/object:Gem::Dependency
|
|
262
262
|
name: rdoc
|
|
263
263
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -335,7 +335,7 @@ dependencies:
|
|
|
335
335
|
- !ruby/object:Gem::Version
|
|
336
336
|
version: '0'
|
|
337
337
|
- !ruby/object:Gem::Dependency
|
|
338
|
-
name:
|
|
338
|
+
name: sassc-rails
|
|
339
339
|
requirement: !ruby/object:Gem::Requirement
|
|
340
340
|
requirements:
|
|
341
341
|
- - ">="
|
|
@@ -662,7 +662,6 @@ files:
|
|
|
662
662
|
- app/helpers/site_helper.rb
|
|
663
663
|
- app/helpers/sites_helper.rb
|
|
664
664
|
- app/mailers/application_mailer.rb
|
|
665
|
-
- app/mailers/devise_mailer.rb
|
|
666
665
|
- app/mailers/rad_social_mailer.rb
|
|
667
666
|
- app/models/asset.rb
|
|
668
667
|
- app/models/asset_type.rb
|
|
@@ -764,7 +763,6 @@ files:
|
|
|
764
763
|
- app/views/devise/passwords/new.html.haml
|
|
765
764
|
- app/views/devise/sessions/new.html.haml
|
|
766
765
|
- app/views/devise/shared/_links.html.haml
|
|
767
|
-
- app/views/devise_mailer/reset_password_instructions.html.haml
|
|
768
766
|
- app/views/layouts/application.html.haml
|
|
769
767
|
- app/views/layouts/mail.html.haml
|
|
770
768
|
- app/views/layouts/mailer.text.haml
|
|
@@ -924,9 +922,9 @@ files:
|
|
|
924
922
|
- spec/ci/database.mysql.yml
|
|
925
923
|
- spec/controllers/application_controller_spec.rb
|
|
926
924
|
- spec/controllers/users_controller_spec.rb
|
|
927
|
-
- spec/controllers/welcome_controller_spec.rb
|
|
928
925
|
- spec/dummy/README.rdoc
|
|
929
926
|
- spec/dummy/Rakefile
|
|
927
|
+
- spec/dummy/app/assets/config/manifest.js
|
|
930
928
|
- spec/dummy/bin/bundle
|
|
931
929
|
- spec/dummy/bin/rails
|
|
932
930
|
- spec/dummy/bin/rake
|
|
@@ -964,14 +962,12 @@ files:
|
|
|
964
962
|
- spec/factories/page.rb
|
|
965
963
|
- spec/factories/page_part.rb
|
|
966
964
|
- spec/factories/user.rb
|
|
967
|
-
- spec/features/admin_login_spec.rb
|
|
968
965
|
- spec/features/config_spec.rb
|
|
969
966
|
- spec/features/layouts_spec.rb
|
|
970
967
|
- spec/features/pages_spec.rb
|
|
971
968
|
- spec/fixtures/users.yml
|
|
972
969
|
- spec/models/layout_spec.rb
|
|
973
970
|
- spec/rails_helper.rb
|
|
974
|
-
- spec/routing/welcome_routing_spec.rb
|
|
975
971
|
- spec/spec_helper.rb
|
|
976
972
|
- spec/support/custom_actions.rb
|
|
977
973
|
- trusty_cms.gemspec
|
|
@@ -1077,9 +1073,9 @@ test_files:
|
|
|
1077
1073
|
- spec/ci/database.mysql.yml
|
|
1078
1074
|
- spec/controllers/application_controller_spec.rb
|
|
1079
1075
|
- spec/controllers/users_controller_spec.rb
|
|
1080
|
-
- spec/controllers/welcome_controller_spec.rb
|
|
1081
1076
|
- spec/dummy/README.rdoc
|
|
1082
1077
|
- spec/dummy/Rakefile
|
|
1078
|
+
- spec/dummy/app/assets/config/manifest.js
|
|
1083
1079
|
- spec/dummy/bin/bundle
|
|
1084
1080
|
- spec/dummy/bin/rails
|
|
1085
1081
|
- spec/dummy/bin/rake
|
|
@@ -1117,13 +1113,11 @@ test_files:
|
|
|
1117
1113
|
- spec/factories/page.rb
|
|
1118
1114
|
- spec/factories/page_part.rb
|
|
1119
1115
|
- spec/factories/user.rb
|
|
1120
|
-
- spec/features/admin_login_spec.rb
|
|
1121
1116
|
- spec/features/config_spec.rb
|
|
1122
1117
|
- spec/features/layouts_spec.rb
|
|
1123
1118
|
- spec/features/pages_spec.rb
|
|
1124
1119
|
- spec/fixtures/users.yml
|
|
1125
1120
|
- spec/models/layout_spec.rb
|
|
1126
1121
|
- spec/rails_helper.rb
|
|
1127
|
-
- spec/routing/welcome_routing_spec.rb
|
|
1128
1122
|
- spec/spec_helper.rb
|
|
1129
1123
|
- spec/support/custom_actions.rb
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
%p
|
|
2
|
-
Hello #{@resource.email}!
|
|
3
|
-
%p Someone has requested a link to change your TrustyCMS password. You can do this through the link below.
|
|
4
|
-
%p= link_to 'Change my password', edit_user_password_url(@resource, reset_password_token: @token)
|
|
5
|
-
%p Your password won't change until you access the link above and create a new one.
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
require 'rails_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Administration Interface Login' do
|
|
4
|
-
fixtures :users
|
|
5
|
-
|
|
6
|
-
it 'shows a login page' do
|
|
7
|
-
visit '/'
|
|
8
|
-
|
|
9
|
-
expect(page).to have_field 'Username or E-mail Address'
|
|
10
|
-
expect(page).to have_field 'Password'
|
|
11
|
-
expect(page).to have_button 'Login'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
it 'shows an error if the username is wrong' do
|
|
15
|
-
log_in_as 'nonexistent_username'
|
|
16
|
-
|
|
17
|
-
expect(find('#error')).to have_content "Invalid username, e-mail address, or password."
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
describe 'as an admin user' do
|
|
21
|
-
before(:each) do
|
|
22
|
-
@admin = users(:captain_janeway)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
context 'after login' do
|
|
26
|
-
before(:each) do
|
|
27
|
-
log_in_as @admin.login
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
it 'shows the admin interface' do
|
|
31
|
-
expect(page).to have_content "Logged in as"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
it 'has correct links in header' do
|
|
35
|
-
expect(page).to have_link @admin.name, href: '/admin/preferences/edit'
|
|
36
|
-
expect(page).to have_link 'Logout', href: '/admin/logout'
|
|
37
|
-
expect(page).to have_link 'View Site', href: '/'
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
it 'has correct links in navigation' do
|
|
41
|
-
within '#navigation' do
|
|
42
|
-
expect(page).to have_link "Content", href: '/admin/pages'
|
|
43
|
-
expect(page).to have_link "Design", href: '/admin/layouts'
|
|
44
|
-
expect(page).to have_link "Settings", href: '/admin/configuration'
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it 'outputs table header as html' do
|
|
49
|
-
expect(page).to have_selector "table#pages th.name"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
it 'can navigate to create new page' do
|
|
54
|
-
visit '/admin/pages/new'
|
|
55
|
-
expect(page).to have_selector "h1", text: "New Page"
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
it 'can log out' do
|
|
59
|
-
click_link "Logout"
|
|
60
|
-
expect(page).to have_content "You are now logged out."
|
|
61
|
-
|
|
62
|
-
visit '/admin/pages/new'
|
|
63
|
-
expect(page).to have_content "Please Login"
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
it 'shows an error if the password is wrong' do
|
|
68
|
-
log_in_as @admin.login, 'passwordwhoops'
|
|
69
|
-
|
|
70
|
-
expect(find('#error')).to have_content "Invalid username, e-mail address, or password."
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
describe 'as a regular user after login' do
|
|
75
|
-
before(:each) do
|
|
76
|
-
@user = users(:neelix)
|
|
77
|
-
log_in_as @user.login
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
it 'can log in to the admin interface' do
|
|
81
|
-
expect(page).to have_content "Logged in as"
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
it 'has correct links in navigation' do
|
|
85
|
-
within '#navigation' do
|
|
86
|
-
expect(page).to have_link "Content", href: '/admin/pages'
|
|
87
|
-
expect(page).not_to have_link "Design"
|
|
88
|
-
expect(page).to have_link "Settings", href: '/admin/configuration'
|
|
89
|
-
end
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
require "rails_helper"
|
|
2
|
-
|
|
3
|
-
RSpec.describe "routes for Welcome", :type => :routing do
|
|
4
|
-
it "routes /admin/welcome to the admin/welcome controller" do
|
|
5
|
-
expect(get("/admin/welcome")).
|
|
6
|
-
to route_to("admin/welcome#index")
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
it "routes /admin/login to the admin/welcome controller" do
|
|
10
|
-
expect(get("/admin/login")).
|
|
11
|
-
to route_to("admin/welcome#login")
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
it "routes /admin/logout to the admin/welcome controller" do
|
|
15
|
-
expect(get("/admin/logout")).
|
|
16
|
-
to route_to("admin/welcome#logout")
|
|
17
|
-
end
|
|
18
|
-
end
|