Skip to content

Commit 9b1690d

Browse files
authored
Merge pull request #208 from DocNow/tos
Terms of Service
2 parents 883923f + a292457 commit 9b1690d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1264
-148
lines changed
102 KB
Loading
-16 KB
Binary file not shown.

dist/client/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@
1818
</head>
1919
<body>
2020
<div id="app"></div>
21-
<script type="text/javascript" src="/main-e577cd247b99ec8692c9.js"></script></body>
21+
<script type="text/javascript" src="/main-621c15ff9229e837e054.js"></script></body>
2222
</html>

dist/client/main-e577cd247b99ec8692c9.js renamed to dist/client/main-621c15ff9229e837e054.js

Lines changed: 22 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/client/main-621c15ff9229e837e054.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/client/main-e577cd247b99ec8692c9.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/server/api.js

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ app.put('/user', /*#__PURE__*/function () {
9999
case 3:
100100
user = _context.sent;
101101
newUser = _objectSpread(_objectSpread({}, user), {}, {
102-
email: req.body.email
102+
email: req.body.email,
103+
termsOfService: req.body.termsOfService,
104+
tweetQuota: req.body.tweetQuota
103105
});
104106
_context.next = 7;
105107
return db.updateUser(newUser);
@@ -213,7 +215,7 @@ app.put('/settings', /*#__PURE__*/function () {
213215
superUser = _context4.sent;
214216

215217
if (!(!superUser || req.user && req.user.isSuperUser)) {
216-
_context4.next = 34;
218+
_context4.next = 35;
217219
break;
218220
}
219221

@@ -230,11 +232,12 @@ app.put('/settings', /*#__PURE__*/function () {
230232
_context4.t10 = req.body.emailPassword;
231233
_context4.t11 = req.body.emailFromAddress;
232234
_context4.t12 = parseInt(req.body.defaultQuota, 10) || 50000;
233-
_context4.next = 19;
235+
_context4.t13 = req.body.termsOfService;
236+
_context4.next = 20;
234237
return (0, _twitter.isAcademic)(req.body.appKey, req.body.appSecret);
235238

236-
case 19:
237-
_context4.t13 = _context4.sent;
239+
case 20:
240+
_context4.t14 = _context4.sent;
238241
settings = {
239242
logoUrl: _context4.t0,
240243
instanceTitle: _context4.t1,
@@ -249,41 +252,42 @@ app.put('/settings', /*#__PURE__*/function () {
249252
emailPassword: _context4.t10,
250253
emailFromAddress: _context4.t11,
251254
defaultQuota: _context4.t12,
252-
academic: _context4.t13
255+
termsOfService: _context4.t13,
256+
academic: _context4.t14
253257
};
254-
_context4.prev = 21;
255-
_context4.next = 24;
258+
_context4.prev = 22;
259+
_context4.next = 25;
256260
return db.addSettings(settings);
257261

258-
case 24:
262+
case 25:
259263
(0, _auth.activateKeys)();
260264
res.json({
261265
status: 'updated'
262266
});
263-
_context4.next = 32;
267+
_context4.next = 33;
264268
break;
265269

266-
case 28:
267-
_context4.prev = 28;
268-
_context4.t14 = _context4["catch"](21);
269-
console.error(_context4.t14);
270+
case 29:
271+
_context4.prev = 29;
272+
_context4.t15 = _context4["catch"](22);
273+
console.error(_context4.t15);
270274
res.json({
271275
status: 'error'
272276
});
273277

274-
case 32:
275-
_context4.next = 35;
278+
case 33:
279+
_context4.next = 36;
276280
break;
277281

278-
case 34:
282+
case 35:
279283
notAuthorized(res);
280284

281-
case 35:
285+
case 36:
282286
case "end":
283287
return _context4.stop();
284288
}
285289
}
286-
}, _callee4, null, [[21, 28]]);
290+
}, _callee4, null, [[22, 29]]);
287291
}));
288292

289293
return function (_x7, _x8) {

dist/server/auth.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,10 @@ app.get('/twitter/callback', _passport["default"].authenticate('twitter', {
110110
case 2:
111111
user = _context.sent;
112112

113-
if (user.active || req.query.dest) {
114-
res.redirect(req.query.dest || '/');
113+
if (req.query.dest) {
114+
res.redirect(req.query.dest);
115+
} else if (user.active && user.termsOfService) {
116+
res.redirect('/');
115117
} else {
116118
res.redirect('/profile/');
117119
}

dist/server/db.js

Lines changed: 45 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
1919

2020
require("../env");
2121

22+
var _fs = _interopRequireDefault(require("fs"));
23+
24+
var _path = _interopRequireDefault(require("path"));
25+
2226
var _knex = _interopRequireDefault(require("knex"));
2327

2428
var _moment = _interopRequireDefault(require("moment"));
@@ -198,7 +202,7 @@ var Database = /*#__PURE__*/function () {
198202
key: "getSettings",
199203
value: function () {
200204
var _getSettings = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
201-
var settings, rows, _iterator, _step, row;
205+
var settings, rows, _iterator, _step, row, defaultTermsFile;
202206

203207
return _regenerator["default"].wrap(function _callee4$(_context4) {
204208
while (1) {
@@ -229,9 +233,14 @@ var Database = /*#__PURE__*/function () {
229233
settings.instanceTweetText = "I'm creating a collection of tweets that match {query}. You can learn more about why I'm creating it and specify your terms of your consent here {collection-url}";
230234
}
231235

236+
if (!settings.termsOfService) {
237+
defaultTermsFile = _path["default"].resolve(__dirname, '../../userData/terms-of-service.md');
238+
settings.termsOfService = _fs["default"].readFileSync(defaultTermsFile, 'utf8').toString();
239+
}
240+
232241
return _context4.abrupt("return", settings);
233242

234-
case 9:
243+
case 10:
235244
case "end":
236245
return _context4.stop();
237246
}
@@ -249,7 +258,7 @@ var Database = /*#__PURE__*/function () {
249258
key: "addUser",
250259
value: function () {
251260
var _addUser = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(user) {
252-
var settings, su, newUser;
261+
var settings, superUserExists, newUser;
253262
return _regenerator["default"].wrap(function _callee5$(_context5) {
254263
while (1) {
255264
switch (_context5.prev = _context5.next) {
@@ -259,45 +268,54 @@ var Database = /*#__PURE__*/function () {
259268

260269
case 2:
261270
settings = _context5.sent;
262-
user.tweetQuota = user.tweetQuota || settings.defaultQuota; // first user is the super user (and an admin)
271+
user.tweetQuota = user.tweetQuota || settings.defaultQuota; // first user is the super user, an admin and active
263272

264273
_context5.next = 6;
265274
return this.getSuperUser();
266275

267276
case 6:
268-
su = _context5.sent;
269-
user.isSuperUser = su ? false : true;
270-
user.admin = user.isSuperUser;
271-
_context5.prev = 9;
272-
_context5.next = 12;
277+
superUserExists = _context5.sent;
278+
279+
if (!superUserExists) {
280+
user.isSuperUser = true;
281+
user.admin = true;
282+
user.active = true;
283+
} else {
284+
user.isSuperUser = false;
285+
user.admin = false;
286+
user.active = false;
287+
}
288+
289+
_context5.prev = 8;
290+
_context5.next = 11;
273291
return _User["default"].query().insert(user);
274292

275-
case 12:
293+
case 11:
276294
newUser = _context5.sent;
277295

278296
if (!newUser.isSuperUser) {
279-
_context5.next = 16;
297+
_context5.next = 15;
280298
break;
281299
}
282300

283-
_context5.next = 16;
301+
_context5.next = 15;
284302
return this.loadPlaces();
285303

286-
case 16:
304+
case 15:
287305
return _context5.abrupt("return", newUser);
288306

289-
case 19:
290-
_context5.prev = 19;
291-
_context5.t0 = _context5["catch"](9);
307+
case 18:
308+
_context5.prev = 18;
309+
_context5.t0 = _context5["catch"](8);
292310

293311
_logger["default"].error(_context5.t0);
294312

295-
case 22:
313+
case 21:
296314
case "end":
297315
return _context5.stop();
298316
}
299317
}
300-
}, _callee5, this, [[9, 19]]);
318+
}, _callee5, this, [[8, 18]]);
301319
}));
302320

303321
function addUser(_x3) {
@@ -1949,13 +1967,13 @@ var Database = /*#__PURE__*/function () {
19491967
tweetsEnd = (0, _moment["default"])().subtract(1, 'minutes');
19501968

19511969
if ((0, _moment["default"])(lastQuery.value.endDate) < tweetsEnd) {
1952-
tweetsEnd = lastQuery.value.endDate;
1970+
tweetsEnd = (0, _moment["default"])(lastQuery.value.endDate);
19531971
}
19541972

1955-
tweetsStart = lastQuery.value.startDate;
1973+
tweetsStart = (0, _moment["default"])(lastQuery.value.startDate);
19561974

19571975
if (!(tweetsStart < tweetsEnd)) {
1958-
_context34.next = 13;
1976+
_context34.next = 15;
19591977
break;
19601978
}
19611979

@@ -1974,9 +1992,13 @@ var Database = /*#__PURE__*/function () {
19741992

19751993
_logger["default"].info("adding job ".concat(job.id, " to search job queue"));
19761994

1977-
return _context34.abrupt("return", this.redis.lpushAsync(_redis.startSearchJobKey, job.id));
1995+
_context34.next = 14;
1996+
return this.redis.lpushAsync(_redis.startSearchJobKey, job.id);
19781997

1979-
case 13:
1998+
case 14:
1999+
return _context34.abrupt("return", job);
2000+
2001+
case 15:
19802002
case "end":
19812003
return _context34.stop();
19822004
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
"use strict";
2+
3+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4+
5+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6+
7+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8+
9+
exports.up = /*#__PURE__*/function () {
10+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(knex) {
11+
return _regenerator["default"].wrap(function _callee$(_context) {
12+
while (1) {
13+
switch (_context.prev = _context.next) {
14+
case 0:
15+
_context.next = 2;
16+
return knex.schema.alterTable('user', function (table) {
17+
table["boolean"]('termsOfService').defaultsTo(false);
18+
});
19+
20+
case 2:
21+
case "end":
22+
return _context.stop();
23+
}
24+
}
25+
}, _callee);
26+
}));
27+
28+
return function (_x) {
29+
return _ref.apply(this, arguments);
30+
};
31+
}();
32+
33+
exports.down = /*#__PURE__*/function () {
34+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(knex) {
35+
return _regenerator["default"].wrap(function _callee2$(_context2) {
36+
while (1) {
37+
switch (_context2.prev = _context2.next) {
38+
case 0:
39+
return _context2.abrupt("return", knex.schema.alterTable('user', function (table) {
40+
table.dropColumn('termsOfService');
41+
}));
42+
43+
case 1:
44+
case "end":
45+
return _context2.stop();
46+
}
47+
}
48+
}, _callee2);
49+
}));
50+
51+
return function (_x2) {
52+
return _ref2.apply(this, arguments);
53+
};
54+
}();

0 commit comments

Comments
 (0)