Skip to content

Commit a953ceb

Browse files
committed
GDPR14
* Modal donation buttons with a confirmation prompt * Increase security on referrer and opener for payment processors. If it doesn't work then you won't be returned. Current PP policy is to handle the "callback" *(similar to the auth strategies)* in the account. e.g. no need to let PP, and others know where you are coming from. * Remove flag UI notice if not able to... this should be in line with comments so they don't accidently/purposely get turned on without establishing owner approval. Modal is still output because of a logic error in what comes first versus the view... probably in the controller as a post op outside of `modelParser`... omitting for now. * Change text for PP as it may not be safe in other countries. Never liked the stock PP text in the first place. * Rework some icons... form values can't accept static HTML so stripping it out and placing in modal titlebar * Rework some mustache names from prior PR. Easier to distinguish/search from a human perspective e.g. code readability Applies to OpenUserJS#1538 OpenUserJS#1537 ... loosely related to OpenUserJS#1385
1 parent 397dfb6 commit a953ceb

9 files changed

Lines changed: 72 additions & 19 deletions

libs/modelParser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ var parseScript = function (aScript) {
301301
contributionURL = findMeta(script.meta, 'UserScript.contributionURL.0.value');
302302
if (contributionURL) {
303303
if (isFQUrl(contributionURL, { isSecure: true })) {
304-
script.hasContribution = true;
304+
script.canDonate = true;
305305
script.contribution = [{
306306
url: contributionURL,
307307
text: decode(contributionURL)

views/includes/footer.html

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,10 @@
33
<div class="container-fluid">
44
<div class="navbar-header">
55
<button type="button" data-toggle="collapse" data-target=".navbar-collapse-bottom" class="navbar-toggle" onclick="$('html, body').animate({scrollTop: $(document).height()}, 'slow')"><i class="fa fa-bars"></i></button>
6-
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
7-
<input type="hidden" name="cmd" value="_s-xclick">
8-
<input type="hidden" name="hosted_button_id" value="F359CDZSR6L7W">
9-
<input type="submit" value="Donate" class="btn btn-donate" title="Donations for the site are greatly appreciated via PayPal - A safer, easier, way to donate online.">
10-
<a href="https://github.com/OpenUserJs" class="navbar-brand">&copy; 2013+ OpenUserJS</a>
11-
</form>
6+
<a rel="external noreferrer noopener nofollow" referrerpolicy="same-origin" href="#" data-toggle="modal" data-target="#donateSiteModal" class="btn btn-donate" title="Monetary donations for this site">
7+
<i class="fa fa-fw fa-money"></i><span class=""> Donate</span>
8+
</a>
9+
<a href="https://github.com/OpenUserJs" class="navbar-brand">&copy; 2013+ OpenUserJS</a>
1210
</div>
1311
<div class="navbar-collapse navbar-collapse-bottom collapse">
1412
<ul class="nav navbar-nav navbar-right">
@@ -28,6 +26,7 @@
2826
<script type="text/javascript" charset="UTF-8" src="/redist/npm/jquery/dist/jquery.js"></script>
2927
<script type="text/javascript" charset="UTF-8" src="/redist/npm/bootstrap/dist/js/bootstrap.js"></script>
3028

29+
{{> includes/siteModals.html }}
3130
{{> includes/scripts/hideReminders.html }}
3231

3332
{{^isDev}}

views/includes/scriptModals.html

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,37 @@ <h4 class="modal-title">Flag {{script.fullName}}</h4>
1919
</div>
2020
</div>
2121
</div>
22+
{{#script.canDonate}}
23+
<div class="modal fade" id="donateScriptModal">
24+
<div class="modal-dialog">
25+
<div class="modal-content">
26+
<div class="modal-header">
27+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
28+
<h4 class="modal-title"><i class="fa fa-fw fa-money"></i> Donate for {{script.fullName}}</h4>
29+
</div>
30+
<div class="modal-body">
31+
<p>Are you sure you want to go to an external site to donate a monetary value?</p>
32+
<div class="alert alert-warning" role="alert">
33+
<i class="fa fa-fw fa-exclamation-triangle"></i> WARNING: Some countries laws may supersede the payment processors policy such as the GDPR and PayPal. While it is highly appreciated to donate, please check with your countries privacy and identity laws regarding privacy of information first. Use at your utmost discretion.
34+
</div>
35+
</div>
36+
<div class="modal-footer">
37+
<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-fw fa-close"></i> Close</button>
38+
{{#script.contribution}}
39+
<a rel="external noreferrer noopener nofollow" referrerpolicy="same-origin" href="{{url}}" class="btn btn-danger" role="button" title="Send a monetary Thank You!">Donate</a>
40+
{{/script.contribution}}
41+
</div>
42+
</div>
43+
</div>
44+
</div>
45+
{{/script.canDonate}}
2246
{{#authorTools}}
2347
<div class="modal fade" id="deleteScriptModal">
2448
<div class="modal-dialog">
2549
<div class="modal-content">
2650
<div class="modal-header">
2751
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
28-
<h4 class="modal-title">Delete {{script.fullName}}</h4>
52+
<h4 class="modal-title"><i class="fa fa-fw fa-trash-o"></i> Delete {{script.fullName}}</h4>
2953
</div>
3054
<div class="modal-body">
3155
<p>Are you sure you want to delete this script? You cannot undo this.</p>
@@ -34,7 +58,7 @@ <h4 class="modal-title">Delete {{script.fullName}}</h4>
3458
<form action="{{{script.scriptEditMetadataPageUrl}}}" method="post">
3559
<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-fw fa-close"></i> Close</button>
3660
<input type="hidden" name="remove" value="true">
37-
<button type="submit" class="btn btn-danger"><i class="fa fa-fw fa-trash-o"></i> Delete</button>
61+
<button type="submit" class="btn btn-danger">Delete</button>
3862
</form>
3963
</div>
4064
</div>

views/includes/scriptUserToolsPanel.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<div style="width: {{script.flagsPercent}}%" class="progress-bar progress-bar-danger">{{#script.flags.critical}}{{script.flags.critical}} <i class="fa fa-fw fa-flag-o"></i>{{/script.flags.critical}}</div>
1212
</div>
1313
</div>
14+
{{#canFlag}}
1415
<ul class="nav nav-pills nav-justified">
1516
<li>
1617
<div class="text-center">
@@ -26,5 +27,6 @@
2627
</div>
2728
</li>
2829
</ul>
30+
{{/canFlag}}
2931
</div>
3032
</div>

views/includes/siteModals.html

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<div class="modal fade" id="donateSiteModal">
2+
<div class="modal-dialog">
3+
<div class="modal-content">
4+
<div class="modal-header">
5+
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
6+
<h4 class="modal-title"><i class="fa fa-fw fa-money"></i> Donate for the site OpenUserJS</h4>
7+
</div>
8+
<div class="modal-body">
9+
<p>Are you sure you want to go to an external site to donate a monetary value?</p>
10+
<div class="alert alert-warning" role="alert">
11+
<i class="fa fa-fw fa-exclamation-triangle"></i> WARNING: Some countries laws may supersede the payment processors policy such as the GDPR and PayPal. While it is highly appreciated to donate, please check with your countries privacy and identity laws regarding privacy of information first. Use at your utmost discretion.
12+
</div>
13+
</div>
14+
<div class="modal-footer">
15+
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
16+
<input type="hidden" name="cmd" value="_s-xclick">
17+
<input type="hidden" name="hosted_button_id" value="F359CDZSR6L7W">
18+
<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-fw fa-close"></i> Close</button>
19+
<input type="submit" value="Donate" class="btn btn-danger" title="Send a monetary Thank You via PayPal!">
20+
</form>
21+
</div>
22+
</div>
23+
</div>
24+
</div>

views/includes/userModals.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="modal-content">
44
<div class="modal-header">
55
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
6-
<h4 class="modal-title">Flag {{user.name}}</h4>
6+
<h4 class="modal-title"><i class="fa fa-fw fa-flag"></i> Flag {{user.name}}</h4>
77
</div>
88
<div class="modal-body">
99
<p>Are you sure you want to flag this user for potential inspection by a Moderator?</p>
@@ -13,7 +13,7 @@ <h4 class="modal-title">Flag {{user.name}}</h4>
1313
<input type="text" class="form-control" name="reason" placeholder="Reason for moderation inspection.">
1414
<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-fw fa-close"></i> Close</button>
1515
<input type="hidden" name="flag" value="true">
16-
<button type="submit" class="btn btn-danger{{^canFlag}} disabled{{/canFlag}}"><i class="fa fa-fw fa-flag"></i> Flag</button>
16+
<button type="submit" class="btn btn-danger{{^canFlag}} disabled{{/canFlag}}">Flag</button>
1717
</form>
1818
</div>
1919
</div>
@@ -25,7 +25,7 @@ <h4 class="modal-title">Flag {{user.name}}</h4>
2525
<div class="modal-content">
2626
<div class="modal-header">
2727
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
28-
<h4 class="modal-title">Remove {{user.name}}</h4>
28+
<h4 class="modal-title"><i class="fa fa-fw fa-ban"></i> Remove {{user.name}}</h4>
2929
</div>
3030
<div class="modal-body">
3131
<p>Are you sure you want to remove this user? You cannot undo this.</p>
@@ -41,7 +41,7 @@ <h4 class="modal-title">Remove {{user.name}}</h4>
4141
<br />
4242
<button type="button" class="btn btn-default" data-dismiss="modal"><i class="fa fa-fw fa-close"></i> Close</button>
4343
<input type="hidden" name="remove" value="true">
44-
<button type="submit" class="btn btn-danger"><i class="fa fa-fw fa-ban"></i> Remove</button>
44+
<button type="submit" class="btn btn-danger">Remove</button>
4545
</form>
4646
</div>
4747
</div>

views/includes/userUserToolsPanel.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
{{#canFlag}}
12
<div class="panel panel-default">
23
<div class="panel-body">
34
<ul class="nav nav-pills nav-justified">
@@ -17,3 +18,4 @@
1718
</ul>
1819
</div>
1920
</div>
21+
{{/canFlag}}

views/pages/scriptIssueListPage.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,22 @@
5656
<li class="{{#allIssues}}active{{/allIssues}}"><a href="{{{category.categoryPageUrl}}}/all">All</a></li>
5757
</ul>
5858
</div>
59-
{{#script.hasContribution}}
59+
{{#script.canDonate}}
6060
{{#script.contribution}}
6161
<div class="panel-footer">
6262
<div class="btn-group btn-group-justified">
63-
<a rel="external nofollow" referrerpolicy="strict-origin" href="{{{url}}}" class="btn btn-donate" title="External web payment processor URL for monetary donations to this Author">
63+
<a rel="external noreferrer noopener nofollow" referrerpolicy="same-origin" href="#" data-toggle="modal" data-target="#donateScriptModal" class="btn btn-donate" title="Monetary donations for this Author">
6464
<i class="fa fa-fw fa-money"></i><span class=""> Donate</span>
6565
</a>
6666
</div>
6767
</div>
6868
{{/script.contribution}}
69-
{{/script.hasContribution}}
69+
{{/script.canDonate}}
7070
</div>
7171
</div>
7272
</div>
7373
</div>
74+
{{> includes/scriptModals.html }}
7475
{{> includes/footer.html }}
7576
{{> includes/scripts/tableTrLinkScript.html }}
7677
{{#paginationRendered}}

views/pages/scriptIssuePage.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,24 @@
5555
</div>
5656
<div class="container-fluid col-sm-4">
5757
{{> includes/searchBarPanel.html }}
58-
{{#script.hasContribution}}
58+
{{#script.canDonate}}
5959
{{#script.contribution}}
6060
<div class="panel">
6161
<div class="panel-body">
6262
<div class="btn-group btn-group-justified">
63-
<a rel="external nofollow" referrerpolicy="strict-origin" href="{{{url}}}" class="btn btn-donate" title="External web payment processor URL for monetary donations to this Author">
63+
<a rel="external noreferrer noopener nofollow" referrerpolicy="same-origin" href="#" data-toggle="modal" data-target="#donateScriptModal" class="btn btn-donate" title="Monetary donations for this Author">
6464
<i class="fa fa-fw fa-money"></i><span class=""> Donate</span>
6565
</a>
6666
</div>
6767
</div>
6868
{{/script.contribution}}
69-
{{/script.hasContribution}}
69+
{{/script.canDonate}}
7070
</div>
7171
</div>
7272
</div>
7373
</div>
7474

75+
{{> includes/scriptModals.html }}
7576
{{> includes/footer.html }}
7677
{{#paginationRendered}}
7778
{{> includes/scripts/showTopPagination.html }}

0 commit comments

Comments
 (0)