card 1.99.2 → 1.99.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/card.rb +1 -1
- data/lib/card/auth/permissions.rb +0 -5
- data/lib/card/content.rb +3 -3
- data/mod/account/set/type/signup.rb +2 -1
- data/mod/admin/set/self/admin_info.rb +26 -44
- data/mod/basic_formats/set/all/base.rb +0 -1
- data/mod/basic_formats/set/self/head.rb +1 -1
- data/mod/core/set/abstract/haml_file.rb +4 -0
- data/mod/history/set/all/history/last.rb +2 -2
- data/mod/recaptcha/config/initializers/recaptcha.rb +54 -0
- data/mod/recaptcha/set/self/admin_info.rb +33 -0
- data/mod/{admin → recaptcha}/set/self/recaptcha_proxy.rb +0 -0
- data/mod/{admin → recaptcha}/set/self/recaptcha_secret_key.rb +0 -0
- data/mod/{admin → recaptcha}/set/self/recaptcha_settings.rb +0 -0
- data/mod/{admin → recaptcha}/set/self/recaptcha_site_key.rb +0 -0
- metadata +10 -9
- data/config/initializers/recaptcha.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 105d1d50c75e755f5fe1de82ab785a8cf386e31d4c7da52d1147239852dfdaf3
|
4
|
+
data.tar.gz: 3be62099be33d1a2eb38bd534e6bdb43a60b5845402a6b01f4df81ad2e6cb119
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c49d546abd8cabfa8bc9bbb7b70eb0d9e78d85e0c02f6d22932d099b2ff08054cf0499f353e1d46bb0ff5bc784fee8c4b0b3a066966435e045aa730e4e4007d5
|
7
|
+
data.tar.gz: 697da3c3241d60ac22fa6bd68accda4efd7bd49392649537b2dd1cdbf077da06654d4698e66b74bec9c90fcca505bd3a30f0979fdfdbe1f096c8e79dedd13688
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.3
|
data/lib/card.rb
CHANGED
@@ -96,7 +96,7 @@ class Card < ApplicationRecord
|
|
96
96
|
extend ::Card::Dirty::MethodFactory
|
97
97
|
include ::Card::Dirty
|
98
98
|
|
99
|
-
Card::Cache
|
99
|
+
Card::Cache # trigger autoload
|
100
100
|
|
101
101
|
has_many :references_in, class_name: :Reference, foreign_key: :referee_id
|
102
102
|
has_many :references_out, class_name: :Reference, foreign_key: :referer_id
|
@@ -2,11 +2,6 @@ class Card
|
|
2
2
|
module Auth
|
3
3
|
# singleton permission methods
|
4
4
|
module Permissions
|
5
|
-
RECAPTCHA_DEFAULTS = {
|
6
|
-
recaptcha_site_key: "6LdoqpgUAAAAAEdhJ4heI1h3XLlpXcDf0YubriCG",
|
7
|
-
recaptcha_secret_key: "6LdoqpgUAAAAAP4Sz1L5PY6VKum_RFxq4-awj4BH"
|
8
|
-
}.freeze
|
9
|
-
|
10
5
|
# user has "root" permissions
|
11
6
|
# @return [true/false]
|
12
7
|
def always_ok?
|
data/lib/card/content.rb
CHANGED
@@ -10,7 +10,7 @@ class Card
|
|
10
10
|
extend Clean
|
11
11
|
extend Truncate
|
12
12
|
|
13
|
-
Chunk
|
13
|
+
Chunk # trigger autoload
|
14
14
|
|
15
15
|
attr_reader :revision, :format, :chunks, :opts
|
16
16
|
|
@@ -99,13 +99,13 @@ class Card
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def without_nests
|
102
|
-
without_chunks
|
102
|
+
without_chunks Chunk::Nest do |content|
|
103
103
|
yield content
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
107
|
def without_references
|
108
|
-
without_chunks
|
108
|
+
without_chunks Chunk::Nest, Chunk::Link do |content|
|
109
109
|
yield content
|
110
110
|
end
|
111
111
|
end
|
@@ -31,7 +31,8 @@ event :approve_without_verification, :validate, on: :update, trigger: :required
|
|
31
31
|
end
|
32
32
|
|
33
33
|
event :act_as_current_for_integrate_stage, :integrate, on: :create do
|
34
|
-
|
34
|
+
# needs justification!
|
35
|
+
Auth.current_id = id
|
35
36
|
end
|
36
37
|
|
37
38
|
def account_subfield
|
@@ -1,36 +1,38 @@
|
|
1
|
+
basket :warnings
|
2
|
+
|
3
|
+
# For each warning in the basket (eg :my_warning), the core view
|
4
|
+
# will run a test by appending a question mark (eg #my_warning?).
|
5
|
+
# If it fails it will generate a message by appending message
|
6
|
+
# (eg #my_warning_message).
|
7
|
+
|
8
|
+
add_to_basket :warnings, :no_email_delivery
|
9
|
+
|
10
|
+
def no_email_delivery?
|
11
|
+
Card.config.action_mailer.perform_deliveries == false
|
12
|
+
end
|
13
|
+
|
1
14
|
def clean_html?
|
2
15
|
false
|
3
16
|
end
|
4
17
|
|
5
18
|
format :html do
|
6
19
|
view :core do
|
7
|
-
warnings =
|
8
|
-
|
9
|
-
if Card.config.recaptcha_site_key ==
|
10
|
-
Card::Auth::Permissions::RECAPTCHA_DEFAULTS[:recaptcha_site_key] &&
|
11
|
-
card.rule(:captcha) == "1"
|
12
|
-
warnings << recaptcha_warning
|
13
|
-
end
|
14
|
-
return "" if warnings.empty?
|
15
|
-
|
16
|
-
alert :warning, true do
|
17
|
-
warning_list warnings
|
20
|
+
warnings = card.warnings.map do |warning|
|
21
|
+
card.send("#{warning}?") ? send("#{warning}_message") : nil
|
18
22
|
end
|
23
|
+
warnings.compact!
|
24
|
+
warnings.empty? ? "" : warning_alert(warnings)
|
19
25
|
end
|
20
26
|
|
21
|
-
def
|
22
|
-
# 'ADMINISTRATOR WARNING'
|
27
|
+
def warning_alert warnings
|
23
28
|
admin_warn = I18n.t(:admin_warn, scope: "mod.admin.set.self.admin_info")
|
24
|
-
"<h5>#{admin_warn}</h5>" + list_tag(warnings)
|
25
|
-
end
|
26
|
-
|
27
|
-
def warning_list_with_auto_scope warnings
|
28
29
|
# 'ADMINISTRATOR WARNING'
|
29
|
-
|
30
|
-
|
30
|
+
alert :warning, true do
|
31
|
+
"<h5>#{admin_warn}</h5>" + list_tag(warnings)
|
32
|
+
end
|
31
33
|
end
|
32
34
|
|
33
|
-
def
|
35
|
+
def no_email_delivery_message
|
34
36
|
# "Email delivery is turned off."
|
35
37
|
# "Change settings in config/application.rb to send sign up notifications."
|
36
38
|
I18n.t(:email_off,
|
@@ -38,29 +40,9 @@ format :html do
|
|
38
40
|
path: "config/application.rb")
|
39
41
|
end
|
40
42
|
|
41
|
-
def
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
# This is fine for a local installation, but you will need new
|
46
|
-
# recaptcha keys if you want to make this site public.)
|
47
|
-
I18n.t(:captcha_temp, scope: "mod.admin.set.self.admin_info",
|
48
|
-
recaptcha_link: add_recaptcha_keys_link)
|
49
|
-
else
|
50
|
-
# %(You are configured to use [[*captcha]], but for that to work
|
51
|
-
# you need new recaptcha keys.)
|
52
|
-
I18n.t(:captcha_keys, scope: "mod.admin.set.self.admin_info",
|
53
|
-
recaptcha_link: add_recaptcha_keys_link,
|
54
|
-
captcha_link: link_to_card(:captcha))
|
55
|
-
end
|
56
|
-
<<-HTML
|
57
|
-
<p>#{warning}</p>
|
58
|
-
HTML
|
59
|
-
end
|
60
|
-
|
61
|
-
def add_recaptcha_keys_link
|
62
|
-
nest :recaptcha_settings,
|
63
|
-
view: :edit_link, title: I18n.t(:recaptcha_keys,
|
64
|
-
scope: "mod.admin.set.self.admin_info")
|
43
|
+
def warning_list_with_auto_scope warnings
|
44
|
+
# 'ADMINISTRATOR WARNING'
|
45
|
+
admin_warn = tr(:admin_warn)
|
46
|
+
"<h5>#{admin_warn}</h5>" + warnings.join("\n")
|
65
47
|
end
|
66
48
|
end
|
@@ -22,7 +22,6 @@ format do
|
|
22
22
|
view(:linkname, compact: true, perms: :none) { card.name.url_key }
|
23
23
|
view(:url, compact: true, perms: :none) { card_url _render_linkname }
|
24
24
|
|
25
|
-
|
26
25
|
view :url_link, compact: true, perms: :none do
|
27
26
|
link_to_resource card_url(_render_linkname)
|
28
27
|
end
|
@@ -14,7 +14,7 @@ def last_change_on field, opts={}
|
|
14
14
|
if no_last_change? action_id, opts[:before]
|
15
15
|
nil
|
16
16
|
elsif create_action_last_change? action_id
|
17
|
-
create_action
|
17
|
+
create_action&.change field
|
18
18
|
else
|
19
19
|
last_change_from_action_id action_id, field, opts
|
20
20
|
end
|
@@ -25,7 +25,7 @@ def no_last_change? action_id, before
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def create_action_last_change? action_id
|
28
|
-
action_id == create_action
|
28
|
+
action_id == create_action&.id || (!action_id && create_action&.sole?)
|
29
29
|
end
|
30
30
|
|
31
31
|
def last_change_from_action_id action_id, field, opts
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
# This initializer module is mostly here to avoid adding methods/vars to the Object
|
4
|
+
# namespace
|
5
|
+
module RecaptchaCard
|
6
|
+
@deprecated = {
|
7
|
+
recaptcha_site_key: :recaptcha_public_key,
|
8
|
+
recaptcha_secret_key: :recaptcha_private_key
|
9
|
+
}
|
10
|
+
@defaults = {
|
11
|
+
recaptcha_site_key: "6LdoqpgUAAAAAEdhJ4heI1h3XLlpXcDf0YubriCG",
|
12
|
+
recaptcha_secret_key: "6LdoqpgUAAAAAP4Sz1L5PY6VKrum_RFxq4-awj4BH"
|
13
|
+
}
|
14
|
+
|
15
|
+
mattr_accessor :using_card_defaults
|
16
|
+
|
17
|
+
class << self
|
18
|
+
def load_recaptcha_config setting
|
19
|
+
setting = "recaptcha_#{setting}".to_sym
|
20
|
+
Cardio.config.send "#{setting}=", recaptcha_setting_value(setting)
|
21
|
+
end
|
22
|
+
|
23
|
+
def using_defaults?
|
24
|
+
Cardio.config.recaptcha_site_key == @defaults[:recaptcha_site_key]
|
25
|
+
end
|
26
|
+
|
27
|
+
# card config overrides application.rb config overrides default
|
28
|
+
def recaptcha_setting_value setting
|
29
|
+
card_value(setting) || # card content
|
30
|
+
config_value(setting) || # application.rb (current setting)
|
31
|
+
config_value(@deprecated[setting]) || # application.rb (deprecated setting)
|
32
|
+
@defaults[setting]
|
33
|
+
end
|
34
|
+
|
35
|
+
def config_value setting
|
36
|
+
Cardio.config.send setting
|
37
|
+
end
|
38
|
+
|
39
|
+
def card_value setting
|
40
|
+
return unless Card::Codename.exist? setting # prevents breakage in migrations
|
41
|
+
value = Card[setting]&.content
|
42
|
+
value if value.present?
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
ActiveSupport.on_load :after_card do
|
48
|
+
Recaptcha.configure do |config|
|
49
|
+
%i[site_key secret_key].each do |setting|
|
50
|
+
config.send "#{setting}=", RecaptchaCard.load_recaptcha_config(setting)
|
51
|
+
end
|
52
|
+
config.verify_url = "https://www.google.com/recaptcha/api/siteverify"
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
add_to_basket :warnings, :recaptcha_config_issues
|
2
|
+
|
3
|
+
def recaptcha_config_issues?
|
4
|
+
RecaptchaCard.using_defaults?
|
5
|
+
end
|
6
|
+
|
7
|
+
format :html do
|
8
|
+
def recaptcha_config_issues_message
|
9
|
+
warning =
|
10
|
+
if Card::Env.localhost?
|
11
|
+
# %(Your captcha is currently working with temporary settings.
|
12
|
+
# This is fine for a local installation, but you will need new
|
13
|
+
# recaptcha keys if you want to make this site public.)
|
14
|
+
I18n.t(:captcha_temp, scope: "mod.admin.set.self.admin_info",
|
15
|
+
recaptcha_link: add_recaptcha_keys_link)
|
16
|
+
else
|
17
|
+
# %(You are configured to use [[*captcha]], but for that to work
|
18
|
+
# you need new recaptcha keys.)
|
19
|
+
I18n.t(:captcha_keys, scope: "mod.admin.set.self.admin_info",
|
20
|
+
recaptcha_link: add_recaptcha_keys_link,
|
21
|
+
captcha_link: link_to_card(:captcha))
|
22
|
+
end
|
23
|
+
<<-HTML
|
24
|
+
<p>#{warning}</p>
|
25
|
+
HTML
|
26
|
+
end
|
27
|
+
|
28
|
+
def add_recaptcha_keys_link
|
29
|
+
nest :recaptcha_settings,
|
30
|
+
view: :edit_link, title: I18n.t(:recaptcha_keys,
|
31
|
+
scope: "mod.admin.set.self.admin_info")
|
32
|
+
end
|
33
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: card
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.99.
|
4
|
+
version: 1.99.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ethan McCutchen
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2020-02-
|
14
|
+
date: 2020-02-14 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: cardname
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.9.
|
22
|
+
version: 0.9.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.9.
|
29
|
+
version: 0.9.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: haml
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -371,7 +371,6 @@ files:
|
|
371
371
|
- config/initializers/mime_types.rb
|
372
372
|
- config/initializers/notification.rb
|
373
373
|
- config/initializers/patches.rb
|
374
|
-
- config/initializers/recaptcha.rb
|
375
374
|
- config/initializers/uuid_state_file.rb
|
376
375
|
- config/initializers/zeitwerk.rb
|
377
376
|
- config/locales/de.yml
|
@@ -1202,10 +1201,6 @@ files:
|
|
1202
1201
|
- mod/admin/set/self/admin.rb
|
1203
1202
|
- mod/admin/set/self/admin_info.rb
|
1204
1203
|
- mod/admin/set/self/debugger.rb
|
1205
|
-
- mod/admin/set/self/recaptcha_proxy.rb
|
1206
|
-
- mod/admin/set/self/recaptcha_secret_key.rb
|
1207
|
-
- mod/admin/set/self/recaptcha_settings.rb
|
1208
|
-
- mod/admin/set/self/recaptcha_site_key.rb
|
1209
1204
|
- mod/admin/set/self/trash.rb
|
1210
1205
|
- mod/admin/set/self/version.rb
|
1211
1206
|
- mod/admin/spec/set/self/admin_info_spec.rb
|
@@ -5301,7 +5296,13 @@ files:
|
|
5301
5296
|
- mod/prosemirror_editor/set/self/script_prosemirror.rb
|
5302
5297
|
- mod/prosemirror_editor/set/self/script_prosemirror_config.rb
|
5303
5298
|
- mod/prosemirror_editor/set/self/style_prosemirror.rb
|
5299
|
+
- mod/recaptcha/config/initializers/recaptcha.rb
|
5304
5300
|
- mod/recaptcha/set/all/recaptcha.rb
|
5301
|
+
- mod/recaptcha/set/self/admin_info.rb
|
5302
|
+
- mod/recaptcha/set/self/recaptcha_proxy.rb
|
5303
|
+
- mod/recaptcha/set/self/recaptcha_secret_key.rb
|
5304
|
+
- mod/recaptcha/set/self/recaptcha_settings.rb
|
5305
|
+
- mod/recaptcha/set/self/recaptcha_site_key.rb
|
5305
5306
|
- mod/rules/lib/javascript/script_rules.js.coffee
|
5306
5307
|
- mod/rules/set/right/self.rb
|
5307
5308
|
- mod/rules/set/rstar/rule_user.rb
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# -*- encoding : utf-8 -*-
|
2
|
-
|
3
|
-
DEPRECATED = { site_key: :public_key, secret_key: :private_key }
|
4
|
-
|
5
|
-
# card config overrides application.rb config overrides default
|
6
|
-
def load_recaptcha_config setting
|
7
|
-
setting = "recaptcha_#{setting}".to_sym
|
8
|
-
Cardio.config.send(
|
9
|
-
"#{setting}=", load_recaptcha_card_config(setting) || # card content
|
10
|
-
Cardio.config.send(setting) || # application.rb
|
11
|
-
(DEPRECATED[setting] && Cardio.config.send(DEPRECATED[setting])) ||
|
12
|
-
default_setting(setting)
|
13
|
-
)
|
14
|
-
end
|
15
|
-
|
16
|
-
def default_setting setting
|
17
|
-
# when creating the database (with `decko seed`) this is called
|
18
|
-
# but fails because Card::Auth doesn't exist
|
19
|
-
return unless Card.const_defined? "Auth"
|
20
|
-
Card::Auth::Permissions::RECAPTCHA_DEFAULTS[setting]
|
21
|
-
end
|
22
|
-
|
23
|
-
def card_table_ready?
|
24
|
-
# FIXME: this test should be more generally usable
|
25
|
-
ActiveRecord::Base.connection.table_exists?("cards") &&
|
26
|
-
Card.ancestors.include?(ActiveRecord::Base)
|
27
|
-
end
|
28
|
-
|
29
|
-
# use if card with value is present
|
30
|
-
def load_recaptcha_card_config setting
|
31
|
-
card = Card.find_by_codename setting
|
32
|
-
card&.db_content.present? && card.db_content
|
33
|
-
end
|
34
|
-
|
35
|
-
ActiveSupport.on_load :after_card do
|
36
|
-
Recaptcha.configure do |config|
|
37
|
-
# the seed task runs initializers so we have to check
|
38
|
-
# if the cards table is ready before we use it here
|
39
|
-
if card_table_ready?
|
40
|
-
%i[site_key secret_key].each do |setting|
|
41
|
-
config.send "#{setting}=", load_recaptcha_config(setting)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
config.verify_url = "https://www.google.com/recaptcha/api/siteverify"
|
45
|
-
end
|
46
|
-
end
|