trusty-cms 7.0.2 → 7.0.4
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/.gitignore +1 -1
- data/Gemfile +2 -2
- data/Gemfile.lock +89 -102
- data/INSTALL.md +8 -6
- data/README.md +123 -15
- data/app/assets/javascripts/admin/validations/scheduled_status_validation.js +60 -0
- data/app/assets/stylesheets/admin/main.scss +2 -1
- data/app/assets/stylesheets/admin/partials/_datetime_input.scss +5 -0
- data/app/assets/stylesheets/admin/partials/_forms.scss +13 -0
- data/app/assets/stylesheets/admin/partials/_messages.scss +4 -0
- data/app/controllers/admin/configuration_controller.rb +1 -1
- data/app/controllers/admin/extensions_controller.rb +1 -0
- data/app/controllers/admin/layouts_controller.rb +2 -1
- data/app/controllers/admin/resource_controller.rb +10 -1
- data/app/controllers/admin/sites_controller.rb +1 -0
- data/app/controllers/admin/snippets_controller.rb +2 -1
- data/app/controllers/admin/users_controller.rb +2 -1
- data/app/controllers/page_status_controller.rb +61 -0
- data/app/controllers/site_controller.rb +0 -15
- data/app/helpers/admin/pages_helper.rb +0 -5
- data/app/helpers/admin/users_helper.rb +2 -1
- data/app/helpers/application_helper.rb +2 -1
- data/app/models/admins_site.rb +6 -0
- data/app/models/page.rb +3 -10
- data/app/models/site.rb +2 -0
- data/app/models/status.rb +1 -5
- data/app/models/trusty_cms/config.rb +2 -1
- data/app/models/user.rb +15 -4
- data/app/views/admin/layouts/_choose_site.html.haml +5 -3
- data/app/views/admin/layouts/_site_chooser.html.haml +2 -2
- data/app/views/admin/pages/_fields.html.haml +15 -6
- data/app/views/admin/pages/_node.html.haml +1 -1
- data/app/views/admin/snippets/_choose_site.html.haml +2 -1
- data/app/views/admin/users/_choose_site.html.haml +2 -1
- data/app/views/admin/users/_form.html.haml +3 -1
- data/bin/rails +2 -2
- data/config/application.rb +1 -0
- data/config/initializers/devise.rb +1 -1
- data/config/locales/en.yml +11 -9
- data/config/routes.rb +1 -0
- data/db/migrate/20241108172942_create_site_users.rb +8 -0
- data/lib/login_system.rb +15 -15
- data/lib/trusty_cms/version.rb +1 -1
- data/spec/dummy/config/application.rb +2 -0
- data/spec/dummy/db/schema.rb +8 -1
- data/spec/factories/snippet.rb +10 -0
- data/spec/factories/user.rb +11 -11
- data/spec/models/snippets_spec.rb +29 -0
- data/spec/models/user_spec.rb +46 -0
- data/trusty_cms.gemspec +1 -1
- data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_model.rb +17 -11
- data/vendor/extensions/multi-site-extension/lib/multi_site/site_chooser_helper.rb +10 -10
- metadata +16 -6
- data/app/users/_choose_site.html.haml +0 -4
- /data/app/assets/stylesheets/admin/partials/{_dateinput.scss → _date_input.scss} +0 -0
data/config/locales/en.yml
CHANGED
@@ -140,7 +140,7 @@ en:
|
|
140
140
|
secret: 'Secret'
|
141
141
|
skip_filetype_validation: 'Skip Filetype Validation'
|
142
142
|
storage: 'Storage'
|
143
|
-
url: 'Url'
|
143
|
+
url: 'Url'
|
144
144
|
defaults:
|
145
145
|
locale: 'default language'
|
146
146
|
page:
|
@@ -159,17 +159,18 @@ en:
|
|
159
159
|
allow_password_reset?: "allow password reset"
|
160
160
|
content: 'Content'
|
161
161
|
content_type: 'Content‑Type'
|
162
|
+
content_editor: 'Content Editor'
|
162
163
|
creating_status: 'Creating %{model}…'
|
163
164
|
date:
|
164
|
-
abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
|
165
|
-
abbr_month_names: [~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
|
166
|
-
day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
|
165
|
+
abbr_day_names: [ Sun, Mon, Tue, Wed, Thu, Fri, Sat ]
|
166
|
+
abbr_month_names: [ ~, Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec ]
|
167
|
+
day_names: [ Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ]
|
167
168
|
formats:
|
168
169
|
default: "%Y-%m-%d"
|
169
170
|
long: "%B %e, %Y"
|
170
171
|
only_day: "%e"
|
171
172
|
short: "%e %b"
|
172
|
-
month_names: [~, January, February, March, April, May, June, July, August, September, October, November, December]
|
173
|
+
month_names: [ ~, January, February, March, April, May, June, July, August, September, October, November, December ]
|
173
174
|
order:
|
174
175
|
- :year
|
175
176
|
- :month
|
@@ -183,9 +184,10 @@ en:
|
|
183
184
|
designer: 'Designer'
|
184
185
|
draft: 'Draft'
|
185
186
|
edit: 'Edit'
|
187
|
+
editor: 'Editor'
|
186
188
|
edit_configuration: 'Edit Configuration'
|
187
189
|
edit_layout: 'Edit Layout'
|
188
|
-
edit_page:
|
190
|
+
edit_page: 'Edit Page'
|
189
191
|
edit_preferences: 'Edit Preferences'
|
190
192
|
edit_settings: 'Edit Settings'
|
191
193
|
edit_user: 'Edit User'
|
@@ -241,8 +243,8 @@ en:
|
|
241
243
|
preview: 'Preview'
|
242
244
|
published: 'Published'
|
243
245
|
published_at: 'Published at'
|
244
|
-
|
245
|
-
reference:
|
246
|
+
publish_datetime: 'Publish Date & Time'
|
247
|
+
reference: 'Reference'
|
246
248
|
remember_me: 'Remember me'
|
247
249
|
remember_me_in_this_browser: 'Remember me in this browser'
|
248
250
|
remove: 'Remove'
|
@@ -277,7 +279,7 @@ en:
|
|
277
279
|
snippets: 'Snippets'
|
278
280
|
snippet: 'Snippet'
|
279
281
|
status: 'Status'
|
280
|
-
|
282
|
+
# Warnings and info text:
|
281
283
|
testing: Testing
|
282
284
|
text:
|
283
285
|
layouts:
|
data/config/routes.rb
CHANGED
@@ -4,6 +4,7 @@ TrustyCms::Application.routes.draw do
|
|
4
4
|
as :user do
|
5
5
|
post 'authenticate', to: 'devise/sessions#create', as: :authenticate
|
6
6
|
end
|
7
|
+
post '/page-status/refresh' => 'page_status#refresh'
|
7
8
|
get '/rad_social/mail' => 'social_mailer#social_mail_form', as: :rad_social_mail_form
|
8
9
|
post '/rad_social/mail' => 'social_mailer#create_social_mail', as: :rad_create_social_mail
|
9
10
|
TrustyCms::Application.config.enabled_extensions.each do |ext|
|
data/lib/login_system.rb
CHANGED
@@ -40,27 +40,27 @@ module LoginSystem
|
|
40
40
|
true
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
# permissions = self.class.controller_permissions[action]
|
50
|
-
# flash[:error] = permissions[:denied_message] || 'Access denied.'
|
51
|
-
# respond_to do |format|
|
52
|
-
# format.html { redirect_to(permissions[:denied_url] || { :action => :index }) }
|
53
|
-
# format.any(:xml, :json) { head :forbidden }
|
54
|
-
# end
|
55
|
-
# false
|
56
|
-
# end
|
57
|
-
true
|
43
|
+
def authorize_role
|
44
|
+
action = action_name.to_s.intern
|
45
|
+
return true if user_has_access_to_action?(action)
|
46
|
+
|
47
|
+
handle_unauthorized_access(action)
|
48
|
+
false
|
58
49
|
end
|
59
50
|
|
60
51
|
def user_has_access_to_action?(action)
|
61
52
|
self.class.user_has_access_to_action?(current_user, action, self)
|
62
53
|
end
|
63
54
|
|
55
|
+
def handle_unauthorized_access(action)
|
56
|
+
permissions = self.class.controller_permissions[action]
|
57
|
+
flash[:error] = permissions[:denied_message] || 'Access denied.'
|
58
|
+
respond_to do |format|
|
59
|
+
format.html { redirect_to(permissions[:denied_url] || { action: :index }) }
|
60
|
+
format.any(:xml, :json) { head :forbidden }
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
64
|
def login_from_session
|
65
65
|
User.unscoped.find(session['user_id'])
|
66
66
|
rescue StandardError
|
data/lib/trusty_cms/version.rb
CHANGED
@@ -31,6 +31,8 @@ module TrustyCms
|
|
31
31
|
|
32
32
|
# Initialize extension paths
|
33
33
|
config.initialize_extension_paths
|
34
|
+
config.active_record.legacy_connection_handling = false
|
35
|
+
|
34
36
|
extension_loader = ExtensionLoader.instance { |l| l.initializer = self }
|
35
37
|
extension_loader.paths(:load).reverse_each do |path, value|
|
36
38
|
config.autoload_paths.unshift path
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema[7.0].define(version:
|
13
|
+
ActiveRecord::Schema[7.0].define(version: 2024_11_08_172942) do
|
14
14
|
create_table "active_storage_attachments", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
|
15
15
|
t.string "name", null: false
|
16
16
|
t.string "record_type", null: false
|
@@ -69,6 +69,13 @@ ActiveRecord::Schema[7.0].define(version: 2023_10_19_192097) do
|
|
69
69
|
t.datetime "updated_at", precision: nil, null: false
|
70
70
|
end
|
71
71
|
|
72
|
+
create_table "admins_sites", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
|
73
|
+
t.integer "admin_id", null: false
|
74
|
+
t.integer "site_id", null: false
|
75
|
+
t.index ["admin_id"], name: "index_admins_sites_on_admin_id"
|
76
|
+
t.index ["site_id"], name: "index_admins_sites_on_site_id"
|
77
|
+
end
|
78
|
+
|
72
79
|
create_table "assets", charset: "utf8mb4", collation: "utf8mb4_0900_ai_ci", force: :cascade do |t|
|
73
80
|
t.string "caption"
|
74
81
|
t.string "title"
|
data/spec/factories/user.rb
CHANGED
@@ -1,34 +1,34 @@
|
|
1
1
|
FactoryBot.define do
|
2
2
|
factory :user do
|
3
|
-
|
3
|
+
first_name { 'FirstName' }
|
4
|
+
last_name { 'LastName' }
|
4
5
|
email { 'email@test.com' }
|
5
|
-
|
6
|
-
password { 'password' }
|
6
|
+
password { 'ComplexPass1!' }
|
7
7
|
password_confirmation { password }
|
8
8
|
|
9
9
|
factory :admin do
|
10
|
-
|
11
|
-
|
10
|
+
first_name { 'FirstName' }
|
11
|
+
last_name { 'LastName' }
|
12
12
|
email { 'admin@example.com' }
|
13
13
|
admin { true }
|
14
14
|
end
|
15
15
|
|
16
16
|
factory :existing do
|
17
|
-
|
18
|
-
|
17
|
+
first_name { 'FirstName' }
|
18
|
+
last_name { 'LastName' }
|
19
19
|
email { 'existing@example.com' }
|
20
20
|
end
|
21
21
|
|
22
22
|
factory :designer do
|
23
|
-
|
24
|
-
|
23
|
+
first_name { 'FirstName' }
|
24
|
+
last_name { 'LastName' }
|
25
25
|
email { '' }
|
26
26
|
designer { true }
|
27
27
|
end
|
28
28
|
|
29
29
|
factory :non_admin do
|
30
|
-
|
31
|
-
|
30
|
+
first_name { 'FirstName' }
|
31
|
+
last_name { 'LastName' }
|
32
32
|
admin { false }
|
33
33
|
end
|
34
34
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Snippet do
|
4
|
+
|
5
|
+
let(:snippet) { FactoryBot.build(:snippet) }
|
6
|
+
|
7
|
+
describe 'name' do
|
8
|
+
it 'is invalid when blank' do
|
9
|
+
snippet = FactoryBot.build(:snippet, name: '')
|
10
|
+
snippet.valid?
|
11
|
+
expect(snippet.errors[:name]).to include("This field is required.")
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should validate uniqueness of' do
|
15
|
+
snippet = FactoryBot.build(:snippet, name: 'test_snippet', content: "Content!")
|
16
|
+
snippet.save!
|
17
|
+
other = FactoryBot.build(:snippet, name: 'test_snippet', content: "Content!")
|
18
|
+
expect { other.save! }.to raise_error(ActiveRecord::RecordInvalid)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should validate length of' do
|
22
|
+
snippet = FactoryBot.build(:snippet, name: 'x' * 100)
|
23
|
+
expect(snippet.errors[:name]).to be_blank
|
24
|
+
snippet = FactoryBot.build(:snippet, name: 'x' * 101)
|
25
|
+
expect { snippet.save! }.to raise_error(ActiveRecord::RecordInvalid)
|
26
|
+
expect(snippet.errors[:name]).to include("This must not be longer than 100 characters")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe User do
|
4
|
+
describe '#role?' do
|
5
|
+
let(:user) { create(:user) }
|
6
|
+
|
7
|
+
it 'returns true for admin role' do
|
8
|
+
user.admin = true
|
9
|
+
expect(user.role?(:admin)).to be true
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'returns false for non-admin role' do
|
13
|
+
user.admin = false
|
14
|
+
expect(user.role?(:admin)).to be false
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#password_complexity' do
|
19
|
+
let(:user) { build(:user) }
|
20
|
+
|
21
|
+
it 'is valid with a complex password' do
|
22
|
+
user.password = 'ComplexPass1!'
|
23
|
+
expect(user).to be_valid
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'is invalid with a simple password' do
|
27
|
+
user.password = 'simple'
|
28
|
+
user.valid?
|
29
|
+
expect(user.errors[:password]).to include('Complexity requirement not met. Length should be 12 characters and include: 1 uppercase, 1 lowercase, 1 digit and 1 special character.')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe '#password_required?' do
|
34
|
+
let(:user) { build(:user) }
|
35
|
+
|
36
|
+
it 'returns false if skip_password_validation is true' do
|
37
|
+
user.skip_password_validation = true
|
38
|
+
expect(user.password_required?).to be false
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'returns true if skip_password_validation is false' do
|
42
|
+
user.skip_password_validation = false
|
43
|
+
expect(user.password_required?).to be true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/trusty_cms.gemspec
CHANGED
@@ -43,7 +43,7 @@ a general purpose content management system--not merely a blogging engine.'
|
|
43
43
|
s.add_dependency 'mini_racer'
|
44
44
|
s.add_dependency 'mutex_m'
|
45
45
|
s.add_dependency 'mysql2'
|
46
|
-
s.add_dependency 'rack', '>= 2.0.1', '< 3.
|
46
|
+
s.add_dependency 'rack', '>= 2.0.1', '< 3.2.0'
|
47
47
|
s.add_dependency 'rack-cache', '~> 1.7'
|
48
48
|
s.add_dependency 'radius', '~> 0.7'
|
49
49
|
s.add_dependency 'rails', '~> 7.0.0'
|
@@ -17,7 +17,7 @@ module MultiSite
|
|
17
17
|
# that is, anything without a site is considered to be shared among all sites
|
18
18
|
# the default is false
|
19
19
|
|
20
|
-
def is_site_scoped(options={})
|
20
|
+
def is_site_scoped(options = {})
|
21
21
|
return if is_site_scoped?
|
22
22
|
|
23
23
|
options = {
|
@@ -25,7 +25,7 @@ module MultiSite
|
|
25
25
|
}.merge(options)
|
26
26
|
|
27
27
|
class_eval <<-EO
|
28
|
-
default_scope {where(site_scope_condition)}
|
28
|
+
#{ self == User ? 'default_scope { joins(user_scope_condition) }' : 'default_scope { where(site_scope_condition) }' }
|
29
29
|
extend MultiSite::ScopedModel::ScopedClassMethods
|
30
30
|
include MultiSite::ScopedModel::ScopedInstanceMethods
|
31
31
|
EO
|
@@ -52,8 +52,7 @@ module MultiSite
|
|
52
52
|
|
53
53
|
module ScopedClassMethods
|
54
54
|
|
55
|
-
|
56
|
-
def paginate_with_site(options={})
|
55
|
+
def paginate_with_site(options = {})
|
57
56
|
return paginate_without_site(options) unless sites?
|
58
57
|
where(site_scope_condition) do
|
59
58
|
paginate_without_site(options)
|
@@ -63,7 +62,7 @@ module MultiSite
|
|
63
62
|
%w{count average minimum maximum sum}.each do |getter|
|
64
63
|
define_method("#{getter}_with_site") do |*args|
|
65
64
|
return send("#{getter}_without_site".intern, *args) unless sites?
|
66
|
-
with_scope(:find => {:conditions => site_scope_condition}) do
|
65
|
+
with_scope(:find => { :conditions => site_scope_condition }) do
|
67
66
|
send "#{getter}_without_site".intern, *args
|
68
67
|
end
|
69
68
|
end
|
@@ -73,11 +72,11 @@ module MultiSite
|
|
73
72
|
# and should only be used in odd cases like migration.
|
74
73
|
def find_without_site(*args)
|
75
74
|
options = args.extract_options!
|
76
|
-
#set_readonly_option!(options)
|
75
|
+
# set_readonly_option!(options)
|
77
76
|
|
78
77
|
case args.first
|
79
|
-
|
80
|
-
|
78
|
+
when :first then find_initial_without_site(options) # defined here
|
79
|
+
when :all then all_without_site(options) # already defined by the alias chain
|
81
80
|
end
|
82
81
|
end
|
83
82
|
|
@@ -110,6 +109,12 @@ module MultiSite
|
|
110
109
|
condition
|
111
110
|
end
|
112
111
|
|
112
|
+
def user_scope_condition
|
113
|
+
return "" unless self.current_site
|
114
|
+
|
115
|
+
"INNER JOIN `admins_sites` ON `admins_sites`.`admin_id` = `admins`.`id` AND `admins_sites`.`site_id` = #{self.current_site.id}"
|
116
|
+
end
|
117
|
+
|
113
118
|
def plural_symbol_for_class
|
114
119
|
self.to_s.pluralize.underscore.intern
|
115
120
|
end
|
@@ -125,9 +130,10 @@ module MultiSite
|
|
125
130
|
|
126
131
|
module ScopedInstanceMethods
|
127
132
|
protected
|
128
|
-
|
129
|
-
|
130
|
-
|
133
|
+
|
134
|
+
def set_site
|
135
|
+
self.site ||= self.class.current_site! unless self.class.is_shareable?
|
136
|
+
end
|
131
137
|
end
|
132
138
|
end
|
133
139
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
module MultiSite::SiteChooserHelper
|
2
2
|
|
3
|
-
def sites_chooser_thing
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
end
|
3
|
+
def sites_chooser_thing
|
4
|
+
return "" unless current_user.admin? && defined?(Site) && defined?(controller) && controller.sited_model? && controller.template_name == 'index' && Site.several?
|
5
|
+
options = Site.all.map { |site| "<li>" + link_to(site.name, "#{request.path}?site_id=#{site.id}", :class => site == current_site ? 'fg' : '') + "</li>" }.join("")
|
6
|
+
chooser = %{<div id="site_chooser">}
|
7
|
+
# chooser << link_to("sites", admin_sites_url, {:id => 'show_site_list', :class => 'expandable'})
|
8
|
+
chooser << %{<ul id="nav"><li>Current Site: #{current_site.name}}
|
9
|
+
chooser << %{<ul class="expansion">#{options}</ul></li></ul>}
|
10
|
+
chooser << %{</div>}
|
11
|
+
chooser
|
12
|
+
end
|
13
13
|
|
14
14
|
end
|
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: 7.0.
|
4
|
+
version: 7.0.4
|
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:
|
11
|
+
date: 2025-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activestorage-validator
|
@@ -301,7 +301,7 @@ dependencies:
|
|
301
301
|
version: 2.0.1
|
302
302
|
- - "<"
|
303
303
|
- !ruby/object:Gem::Version
|
304
|
-
version: 3.
|
304
|
+
version: 3.2.0
|
305
305
|
type: :runtime
|
306
306
|
prerelease: false
|
307
307
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -311,7 +311,7 @@ dependencies:
|
|
311
311
|
version: 2.0.1
|
312
312
|
- - "<"
|
313
313
|
- !ruby/object:Gem::Version
|
314
|
-
version: 3.
|
314
|
+
version: 3.2.0
|
315
315
|
- !ruby/object:Gem::Dependency
|
316
316
|
name: rack-cache
|
317
317
|
requirement: !ruby/object:Gem::Requirement
|
@@ -653,6 +653,7 @@ files:
|
|
653
653
|
- app/assets/javascripts/admin/treetable.js
|
654
654
|
- app/assets/javascripts/admin/utilities.js
|
655
655
|
- app/assets/javascripts/admin/validation.js
|
656
|
+
- app/assets/javascripts/admin/validations/scheduled_status_validation.js
|
656
657
|
- app/assets/javascripts/admin/validations/user_validations.js
|
657
658
|
- app/assets/javascripts/ckeditor/config.js
|
658
659
|
- app/assets/javascripts/ckeditor/contents.css
|
@@ -673,7 +674,8 @@ files:
|
|
673
674
|
- app/assets/stylesheets/admin/modules/_links.scss
|
674
675
|
- app/assets/stylesheets/admin/partials/_actions.scss
|
675
676
|
- app/assets/stylesheets/admin/partials/_content.scss
|
676
|
-
- app/assets/stylesheets/admin/partials/
|
677
|
+
- app/assets/stylesheets/admin/partials/_date_input.scss
|
678
|
+
- app/assets/stylesheets/admin/partials/_datetime_input.scss
|
677
679
|
- app/assets/stylesheets/admin/partials/_drawer.scss
|
678
680
|
- app/assets/stylesheets/admin/partials/_dropdown.scss
|
679
681
|
- app/assets/stylesheets/admin/partials/_footer.scss
|
@@ -707,6 +709,7 @@ files:
|
|
707
709
|
- app/controllers/admin/snippets_controller.rb
|
708
710
|
- app/controllers/admin/users_controller.rb
|
709
711
|
- app/controllers/application_controller.rb
|
712
|
+
- app/controllers/page_status_controller.rb
|
710
713
|
- app/controllers/site_controller.rb
|
711
714
|
- app/controllers/social_mailer_controller.rb
|
712
715
|
- app/helpers/admin/configuration_helper.rb
|
@@ -730,6 +733,7 @@ files:
|
|
730
733
|
- app/mailers/application_mailer.rb
|
731
734
|
- app/mailers/devise_mailer.rb
|
732
735
|
- app/mailers/rad_social_mailer.rb
|
736
|
+
- app/models/admins_site.rb
|
733
737
|
- app/models/asset.rb
|
734
738
|
- app/models/asset_type.rb
|
735
739
|
- app/models/file_not_found_page.rb
|
@@ -753,7 +757,6 @@ files:
|
|
753
757
|
- app/models/trusty_cms/page_response_cache_director.rb
|
754
758
|
- app/models/user.rb
|
755
759
|
- app/models/user_action_observer.rb
|
756
|
-
- app/users/_choose_site.html.haml
|
757
760
|
- app/views/admin/assets/_asset.html.haml
|
758
761
|
- app/views/admin/assets/_asset_table.html.haml
|
759
762
|
- app/views/admin/assets/_errors.html.haml
|
@@ -908,6 +911,7 @@ files:
|
|
908
911
|
- db/migrate/20161027141250_add_position_to_pages.rb
|
909
912
|
- db/migrate/20200117141251_create_admin_users.rb
|
910
913
|
- db/migrate/20210331134718_create_active_storage_tables.active_storage.rb
|
914
|
+
- db/migrate/20241108172942_create_site_users.rb
|
911
915
|
- db/schema.rb
|
912
916
|
- lib/active_record_extensions/active_record_extensions.rb
|
913
917
|
- lib/annotatable.rb
|
@@ -1097,12 +1101,15 @@ files:
|
|
1097
1101
|
- spec/factories/layout.rb
|
1098
1102
|
- spec/factories/page.rb
|
1099
1103
|
- spec/factories/page_part.rb
|
1104
|
+
- spec/factories/snippet.rb
|
1100
1105
|
- spec/factories/user.rb
|
1101
1106
|
- spec/features/config_spec.rb
|
1102
1107
|
- spec/features/layouts_spec.rb
|
1103
1108
|
- spec/features/pages_spec.rb
|
1104
1109
|
- spec/fixtures/users.yml
|
1105
1110
|
- spec/models/layout_spec.rb
|
1111
|
+
- spec/models/snippets_spec.rb
|
1112
|
+
- spec/models/user_spec.rb
|
1106
1113
|
- spec/rails_helper.rb
|
1107
1114
|
- spec/spec_helper.rb
|
1108
1115
|
- spec/support/custom_actions.rb
|
@@ -1248,12 +1255,15 @@ test_files:
|
|
1248
1255
|
- spec/factories/layout.rb
|
1249
1256
|
- spec/factories/page.rb
|
1250
1257
|
- spec/factories/page_part.rb
|
1258
|
+
- spec/factories/snippet.rb
|
1251
1259
|
- spec/factories/user.rb
|
1252
1260
|
- spec/features/config_spec.rb
|
1253
1261
|
- spec/features/layouts_spec.rb
|
1254
1262
|
- spec/features/pages_spec.rb
|
1255
1263
|
- spec/fixtures/users.yml
|
1256
1264
|
- spec/models/layout_spec.rb
|
1265
|
+
- spec/models/snippets_spec.rb
|
1266
|
+
- spec/models/user_spec.rb
|
1257
1267
|
- spec/rails_helper.rb
|
1258
1268
|
- spec/spec_helper.rb
|
1259
1269
|
- spec/support/custom_actions.rb
|
File without changes
|