Class: Decidim::SpamDetection::AbstractSpamUserCommand
- Inherits:
-
Object
- Object
- Decidim::SpamDetection::AbstractSpamUserCommand
show all
- Includes:
- FormFactory
- Defined in:
- lib/decidim/spam_detection/abstract_spam_user_command.rb
Constant Summary
collapse
- SPAM_USER =
{
name: ENV.fetch("SPAM_DETECTION_NAME", "spam detection bot"),
nickname: ENV.fetch("SPAM_DETECTION_NICKNAME", "Spam_detection_bot"),
email: ENV.fetch("SPAM_DETECTION_EMAIL", "spam_detection_bot@opensourcepolitcs.eu")
}.freeze
Instance Method Summary
collapse
Constructor Details
Returns a new instance of AbstractSpamUserCommand.
17
18
19
20
21
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 17
def initialize(user, probability)
@user = user
@probability = probability
@moderator = moderation_user
end
|
Instance Method Details
65
66
67
68
69
70
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 65
def add_spam_detection_metadata!(metadata)
@user.extended_data = @user.extended_data
.dup
.deep_merge("spam_detection" => metadata)
@user.save(validate: false)
end
|
#call ⇒ Object
23
24
25
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 23
def call
raise NotImplementedError
end
|
#create_moderation_admin(params) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 51
def create_moderation_admin(params)
password = ::Devise.friendly_token(::Devise.password_length.last)
additional_params = {
password: password,
password_confirmation: password,
tos_agreement: true,
email_on_moderations: false
}
moderation_admin = Decidim::User.new(params.merge(additional_params))
moderation_admin.skip_confirmation!
moderation_admin.save
moderation_admin
end
|
#details ⇒ Object
31
32
33
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 31
def details
raise NotImplementedError
end
|
#moderation_user ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 35
def moderation_user
moderation_admin_params = {
name: SPAM_USER[:name],
nickname: SPAM_USER[:nickname],
email: SPAM_USER[:email],
admin: true,
organization: @user.organization
}
moderation_admin = Decidim::User.find_by(moderation_admin_params)
return moderation_admin unless moderation_admin.nil?
create_moderation_admin(moderation_admin_params)
end
|
#reason ⇒ Object
27
28
29
|
# File 'lib/decidim/spam_detection/abstract_spam_user_command.rb', line 27
def reason
raise NotImplementedError
end
|