Commit Graph

932 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
805dcd7ca2 Async refactor in place (#7736)
* feat: allow both callback&and await

* feat: ignore async key

* feat: callbackify and promisify in same file

* Revert "feat: callbackify and promisify in same file"

This reverts commit cea206a9b8.

* feat: no need to store .callbackify

* feat: change getTopics to async

* feat: remove .async

* fix: byScore

* feat: rewrite topics/index and social with async/await

* fix: rewrite topics/data.js

fix issue with async.waterfall, only pass result if its not undefined

* feat: add callbackify to redis/psql

* feat: psql use await

* fix: redis 🌋

* feat: less returns

* feat: more await rewrite

* fix: redis tests

* feat: convert sortedSetAdd

rewrite psql transaction to async/await

* feat: 🐶

* feat: test

* feat: log client and query

* feat: log bind

* feat: more logs

* feat: more logs

* feat: check perform

* feat: dont callbackify transaction

* feat: remove logs

* fix: main functions

* feat: more logs

* fix: increment

* fix: rename

* feat: remove cls

* fix: remove console.log

* feat: add deprecation message to .async usage

* feat: update more dbal methods

* fix: redis :voodoo:

* feat:  fix redis zrem, convert setObject

* feat: upgrade getObject methods

* fix: psql getObjectField

* fix: redis tests

* feat: getObjectKeys

* feat: getObjectValues

* feat: isObjectField

* fix: add missing return

* feat: delObjectField

* feat: incrObjectField

* fix: add missing await

* feat: remove exposed helpers

* feat: list methods

* feat: flush/empty

* feat: delete

* fix: redis delete all

* feat: get/set

* feat: incr/rename

* feat: type

* feat: expire

* feat: setAdd

* feat: setRemove

* feat: isSetMember

* feat: getSetMembers

* feat: setCount, setRemoveRandom

* feat: zcard,zcount

* feat: sortedSetRank

* feat: isSortedSetMember

* feat: zincrby

* feat: sortedSetLex

* feat: processSortedSet

* fix: add mising await

* feat: debug psql

* fix: psql test

* fix: test

* fix: another test

* fix: test fix

* fix: psql tests

* feat: remove logs

* feat: user arrow func

use builtin async promises

* feat: topic bookmarks

* feat: topic.delete

* feat: topic.restore

* feat: topics.purge

* feat: merge

* feat: suggested

* feat: topics/user.js

* feat: topics modules

* feat: topics/follow

* fix: deprecation msg

* feat: fork

* feat: topics/posts

* feat: sorted/recent

* feat: topic/teaser

* feat: topics/tools

* feat: topics/unread

* feat: add back node versions

disable deprecation notice
wrap async controllers in try/catch

* feat: use db directly

* feat: promisify in place

* fix: redis/psql

* feat: deprecation message

logs for psql

* feat: more logs

* feat: more logs

* feat: logs again

* feat: more logs

* fix: call release

* feat: restore travis, remove logs

* fix: loops

* feat: remove .async. usage
2019-07-09 12:46:49 -04:00
Julian Lam
8a6a58ee43 feat: added new admin option newbiePostEditDuration (#7737)
* feat: added new admin option newbiePostEditDuration

Also:
  - Grammar-checked a couple language strings
  - Moved a couple form inputs around in new user restrictions
  - Added a test for the new option
  - fix: 'defore' typo
2019-07-04 13:28:36 -04:00
Barış Soner Uşaklı
bd640a1107 Topic await errors (#7727)
* feat: derp await

* feat: restore user.getSettings

* feat: cleanup

* feat: make tid const

* feat: cleanup

* fix: tests

* feat: deprecate filter:controllers.topic.get

* feat: rewrite post-index logic

* feat: change calculation to match others

* fix: use .async

* feat: remove try/catch wrapper
2019-07-03 12:48:26 -04:00
Barış Soner Uşaklı
3ecd703ea3 feat: #7707, added sortedSetAddBulk 2019-06-24 17:48:13 -04:00
Barış Soner Uşaklı
a39f0ef592 fix: #5570, create per category user post zsets 2019-06-24 15:21:43 -04:00
Julian Lam
289dada5f7 fix(deps): update to eslint@6 2019-06-22 21:23:32 -04:00
Aziz Khoury
a6436716ea feat: hooks can now return promise or call callbacks
* hooks can now return promise or call callbacks, either way works

* cleanups

* moar cleanups and fix callback 1st null arg

* rm unnessesary spread
2019-06-10 12:05:27 -04:00
Barış Soner Uşaklı
4b843ba16f fix: #7567, allow invite and approval at the same time 2019-06-04 11:10:20 -04:00
Baris Usakli
31ccc860d3 feat: allow multiple scores in sortedSetsAdd 2019-05-31 15:44:50 -04:00
Barış Soner Uşaklı
8aef689f05 fix: no need for moderate bit for global mods and admins 2019-05-30 20:12:04 -04:00
Barış Soner Uşaklı
035f624758 Remove implicit mod privs. closes #6345 (#7648)
* feat: add upgrade script to give mods privs

* feat: give all privileges when making a moderator

* feat: remove implicit privs

* feat: give global mods default privs

* feat: more priv fixes

* feat: use lodash

* fix: remove implicit mod priv from topic delete

* fix: more privs

* fix: posts.canEdit

* fix: canDelete and canEdit

* fix: tests, remove console.log

* feat: shorter functions

* feat: add tests

* fix: uids

* fix: redis random test fail
2019-05-30 19:30:47 -04:00
Baris Usakli
64679b37cc fix: #7647, fix getModeratorUids
sets.groupNames is an array that contains other arrays of groupnames so passing it to getMembersOfGroups returned wrong results when there were more than 1 element in it.
2019-05-29 15:44:33 -04:00
Barış Soner Uşaklı
dfab231afd Copy group privs (#7610)
* feat: ability to copy a groups privileges

ability to copy a group's privileges to all categories, or children of current category

* feat: switch to dropdown

added copy from category to groups

* fix: indents
2019-05-15 20:56:23 -04:00
Barış Soner Uşaklı
b990312088 fix: test 2019-04-29 10:59:52 -04:00
Barış Soner Uşaklı
2c98dd5f9d Object cache refactor (#7558)
* fix: cache refactor

db.getObjectField no longer loads entire object
db.getObjectsFields only clones data once
more tests

* feat: add back cache to redis

db.getObjectField no longer loads entire object
2019-04-24 14:38:46 -04:00
Julian Lam
808c4909a4 fix: #6438 only apply whitelist when fields request empty (#7528)
* fix: #6438 only apply whitelist when fields request empty

* feat: explicit password retrieval denied via getUsersFields
2019-04-10 13:55:53 -04:00
Aziz Khoury
3fbb6faf28 feat: update unban logic/invocation and refactor User.bans module
* auto unban when User.getUsersFields is called and the user is banned but has expired

* cleanups and removal of expiry_readable

* expiry_readable make an alias for backward compatibility

* User.bans.func vs User.*ban*Func

* console.log cleanups, plus todo message added

* use code util.deprecate

* fix: remove ununsed winston require
2019-04-05 14:14:48 -04:00
Barış Soner Uşaklı
2ee2cd528f feat: #7501 2019-04-02 11:56:03 -04:00
Barış Soner Uşaklı
b52dba5c92 fix: #7508 2019-04-01 08:27:37 -04:00
Barış Soner Uşaklı
c12e1d19a7 fix: tests 2019-03-19 11:51:40 -04:00
Julian Lam
697a6597f3 fix: #7444 Re-factor handling of og:image tags (#7463)
* fix: display proper site logo or og-image with sizes in head

* fix: refactor og:image logic, #7444

- Updated logic to set additional og:image tags based on more
  factors
- logo.png fallback

* feat: save image sizes on post upload, re: #7444

* fix: awaiting addTags in topic controller

* fix: pass strings to meta tags object

* fix: sending absolute image url to meta tag

* fix: removed unneeded async and requiring sync db

* feat: upgrade to calculate image sizes for all post uploads tracked

* fix: tests
2019-03-18 12:09:10 -04:00
Julian Lam
745a9589e9 Use topics:read privilege for topic filtering use cases (#7462)
* fix: use topics:read privilege for topic filtering use cases

* fix: tests

* fix: more broken tests
2019-03-16 14:51:46 -04:00
Baris Usakli
f9d92db5d5 fix: typo 2019-03-08 15:47:00 -05:00
Baris Usakli
e71ae80cbc fix: tests 2019-03-08 14:26:11 -05:00
Baris Usakli
23da300958 feat: pass options to digest 2019-02-22 14:39:05 -05:00
Julian Lam
d3a10628e7 fix: broken 50% border radius on emails, failing tests 2019-02-22 12:01:18 -05:00
Julian Lam
3a7f1c192b fix: failing tests from revamped-emails branch 2019-02-21 12:55:09 -05:00
Barış Soner Uşaklı
c6ad8fae2a fix: #7354 2019-02-11 14:29:25 -05:00
Barış Soner Uşaklı
5917dec288 fix: only allow numbers as scores (#7356)
* zadd score checks

* fix: only allow numbers as scores

* fix: convert values to strings
2019-02-11 11:23:18 -05:00
Julian Lam
0c09b7402d feat: logging password resets and errors into event log
closes #7343, also adds tests for password reset socket calls
2019-02-08 10:51:10 -05:00
Barış Soner Uşaklı
c72da5595a fix: #6806
3 new global privileges
view:users
view:tags
view:groups
2019-02-05 12:08:18 -05:00
Barış Soner Uşaklı
ae779ea4f9 fix: #7334 2019-02-04 23:50:21 -05:00
Barış Soner Uşaklı
9d1fcf4e36 fix: closes #7217 2019-02-04 14:16:47 -05:00
Barış Soner Uşaklı
5353960ae7 fix: #7316 2019-01-29 13:11:45 -05:00
Barış Soner Uşaklı
bc41848adb fix: test 2019-01-24 15:17:24 -05:00
renovate[bot]
8a64667ff8 fix(deps): update dependency sharp to v0.21.3 (#7267)
* fix(deps): update dependency sharp to v0.21.3

* fix: tests for new sharp version errors
2019-01-19 12:44:14 -05:00
Julian Lam
c831ff0de3 fix: removal of timeago fallback middleware (#7259)
* fix: removal of timeago fallback middleware

Instead of loading English fallback on missing language, we opt
to not send a script tag for a missing language to begin with.

Timeago already loads with English as default, so it will just
continue to use English.

* fix: check userLang against supported language codes

* fix: cleaned up code as per @pitaj

* fix: added comments

* fix: more fixes as per @pitaj

* feat: added addl. test for timeago locales, fixed broken test
2019-01-17 12:25:53 -05:00
Julian Lam
70a87d4399 feat: support for one-click unsubscribe from email clients (#7203)
* feat: sending notifs via ACP creates real notification

re: #7202

* feat: basic integration for one-click unsubscription #7202

* feat: tests for #7202 + bugfix

* feat: added and organized digest unsub tests

closes #7202
2019-01-08 13:56:11 -05:00
renovate[bot]
84e228bbb8 fix(deps): update dependency diff to v4 (#7198)
* fix(deps): update dependency diff to v4

* chore(deps): +diff@4.0.1

* fix: test for #7198
2019-01-07 12:07:28 -05:00
Baris Usakli
7809ba2800 fix: #7193, closes #7194 2019-01-04 13:27:41 -05:00
Barış Soner Uşaklı
3917022a48 fix: #7139 2018-12-19 11:09:19 -05:00
Barış Soner Uşaklı
7e828404f6 fix: #7116
dont save relative_path in db for group covers
2018-12-18 19:43:28 -05:00
Baris Usakli
0c1ac4d6a2 feat: #7032 2018-12-18 13:44:03 -05:00
Barış Soner Uşaklı
fef7e13c9e feat: small fixes 2018-12-17 18:56:09 -05:00
Barış Soner Uşaklı
99e0895e99 fix: move the check to get methods
all .post methods will have csrf
2018-12-14 23:38:05 -05:00
Barış Soner Uşaklı
eb7ae54f81 Category watch state (#7109)
* feat: wip, category watch change

* feat: pass data to client

* feat: allow changing state

* fix: account page categories

* fix: show in unread if topic is followed or category is watched

* feat: add default watch state to acp

* feat: save user category watch state

* feat: update unread recent pages

* fix: remove dupe code

* fix: flip conditions

* fix: handle empty arrays

* fix: ignore/watch on others profile

* feat: upgrade script for category states

if there are any users ignoring categories set their state in new zset and delete cid:<cid>:ignorers

* fix: upgrade

* fix: tests

* fix: redis count

* fix: more tests
2018-12-14 16:24:17 -05:00
Barış Soner Uşaklı
263c918088 feat: remove uid:<uid>:ignored:cids (#7099)
use cid:<cid>:ignorers instead
2018-12-12 11:15:34 -05:00
Barış Soner Uşaklı
26ccd8f626 fix: db info page
if there is no connection to db, connect first
2018-12-10 15:30:10 -05:00
Barış Soner Uşaklı
81aa3a0b8a fix: don't crash in flags.validate if user blocked target 2018-12-09 15:25:43 -05:00
Barış Soner Uşaklı
e55fb43703 fix: #7086 2018-12-08 19:36:38 -05:00