Skip to content

Commit 4d3bea6

Browse files
committed
Fix invalid and dummy token issue
1 parent 1dcf2ce commit 4d3bea6

File tree

4 files changed

+42
-16
lines changed

4 files changed

+42
-16
lines changed

app/controllers/light/users_controller.rb

+31-10
Original file line numberDiff line numberDiff line change
@@ -43,22 +43,27 @@ def sendtest
4343
end
4444

4545
def unsubscribe
46-
unless(@user.is_subscribed)
47-
@message = 'You have already unsubscribed!!'
48-
else
46+
if @user.present? && @user.sidekiq_status == 'Subscribed'
4947
@user.update(is_subscribed: 'false',
50-
unsubscribed_at: DateTime.now,
51-
sidekiq_status: 'Unsubscribed')
48+
unsubscribed_at: DateTime.now,
49+
sidekiq_status: 'Unsubscribed')
5250
@message = 'Unsubscribed successfully!!'
51+
else
52+
@message = response_message('unsubscribed')
5353
end
5454
end
5555

5656
def subscribe
57-
@user.update(is_subscribed: 'true',
58-
sidekiq_status: 'Subscribed',
59-
subscribed_at: DateTime.now,
60-
remote_ip: request.remote_ip,
61-
user_agent: request.env['HTTP_USER_AGENT'])
57+
if @user.present? && @user.sidekiq_status == 'Unsubscribed'
58+
@user.update(is_subscribed: 'true',
59+
sidekiq_status: 'Subscribed',
60+
subscribed_at: DateTime.now,
61+
remote_ip: request.remote_ip,
62+
user_agent: request.env['HTTP_USER_AGENT'])
63+
@message = 'Subscribed successfully!!'
64+
else
65+
@message = response_message('subscribed')
66+
end
6267
end
6368

6469
def sendmailer
@@ -140,5 +145,21 @@ def users_params
140145
def user_with_token
141146
@user = Light::User.where(token: params[:token]).first
142147
end
148+
149+
def dummy_token?
150+
params[:token] == 'test_user_dummy_id'
151+
end
152+
153+
def response_message(status)
154+
if dummy_token?
155+
"#{status.capitalize} successfully!!"
156+
elsif @user.nil?
157+
"Hey, it seems request you are trying to access is invalid. If you have any " +
158+
"concerns about our newsletter's subscription, kindly get in touch with " +
159+
"<a href='mailto:[email protected]' class='email'>[email protected]</a>"
160+
else
161+
"You have already #{status}!!"
162+
end
163+
end
143164
end
144165
end

app/helpers/light/users_helper.rb

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
module Light
22
module UsersHelper
3+
def dummy_token?
4+
params[:token] == 'test_user_dummy_id'
5+
end
36
end
47
end
+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
%h2
22
%center
3-
Subscribed successfully!!
3+
= @message.html_safe
44
%br
5-
To unsubscribe again
6-
= link_to "CLICK HERE !!", main_app.users_unsubscribe_path(token: @user.token)
5+
- if @user.present? || dummy_token?
6+
To unsubscribe again
7+
= link_to "CLICK HERE !!", main_app.users_unsubscribe_path(token: @user.try(:token) || params[:token])
78

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
%h2
22
%center
3-
= @message
3+
= @message.html_safe
44
%br
5-
Would you like to subscribe again?
6-
= link_to "CLICK HERE !!", main_app.users_subscribe_path(token: @user.token)
5+
- if @user.present? || dummy_token?
6+
Would you like to subscribe again?
7+
= link_to "CLICK HERE !!", main_app.users_subscribe_path(token: @user.try(:token) || params[:token])

0 commit comments

Comments
 (0)