885 Commits (2c9e8657630bbbf896496b3b33c7b54bf6269c37)

Author SHA1 Message Date
Barış Soner Uşaklı cd2e68cb2d feat: remove unused code, add 2 tests 6 years ago
Barış Soner Uşaklı 53e1b349ae
Change post owner (#7752)
* feat: #7749, allow array of keys for setObject

* feat: sortedSetRemoveBulk

* feat: test for bulk remove

* feat: #7083, ability to change post ownership

* feat: #7083, fix tid:<tid>:posters

* feat: #7083, front end

* fix: #7752, psql methods

* fix: add missing await

* fix: maybe psql
6 years ago
Barış Soner Uşaklı 4170abfd6b feat: add utils.promiseParallel 6 years ago
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 cea206a9b8e6d8295310074b18cc82a504487862.

* 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
6 years ago
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
6 years ago
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
6 years ago
Barış Soner Uşaklı 3ecd703ea3 feat: #7707, added sortedSetAddBulk 6 years ago
Barış Soner Uşaklı a39f0ef592 fix: #5570, create per category user post zsets 6 years ago
Julian Lam 289dada5f7 fix(deps): update to eslint@6 6 years ago
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
6 years ago
Barış Soner Uşaklı 4b843ba16f fix: #7567, allow invite and approval at the same time 6 years ago
Baris Usakli 31ccc860d3 feat: allow multiple scores in sortedSetsAdd 6 years ago
Barış Soner Uşaklı 8aef689f05 fix: no need for moderate bit for global mods and admins 6 years ago
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
6 years ago
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.
6 years ago
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
6 years ago
Barış Soner Uşaklı b990312088 fix: test 6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
Barış Soner Uşaklı 2ee2cd528f feat: #7501 6 years ago
Barış Soner Uşaklı b52dba5c92 fix: #7508 6 years ago
Barış Soner Uşaklı c12e1d19a7 fix: tests 6 years ago
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
6 years ago
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
6 years ago
Baris Usakli f9d92db5d5 fix: typo 6 years ago
Baris Usakli e71ae80cbc fix: tests 6 years ago
Baris Usakli 23da300958 feat: pass options to digest 6 years ago
Julian Lam d3a10628e7 fix: broken 50% border radius on emails, failing tests 6 years ago
Julian Lam 3a7f1c192b fix: failing tests from revamped-emails branch 6 years ago
Barış Soner Uşaklı c6ad8fae2a fix: #7354 6 years ago
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
6 years ago
Julian Lam 0c09b7402d feat: logging password resets and errors into event log
closes #7343, also adds tests for password reset socket calls
6 years ago
Barış Soner Uşaklı c72da5595a fix: #6806
3 new global privileges
view:users
view:tags
view:groups
6 years ago
Barış Soner Uşaklı ae779ea4f9 fix: #7334 6 years ago
Barış Soner Uşaklı 9d1fcf4e36 fix: closes #7217 6 years ago
Barış Soner Uşaklı 5353960ae7 fix: #7316 6 years ago
Barış Soner Uşaklı bc41848adb fix: test 6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
Baris Usakli 7809ba2800 fix: #7193, closes #7194 6 years ago
Barış Soner Uşaklı 3917022a48 fix: #7139 6 years ago
Barış Soner Uşaklı 7e828404f6 fix: #7116
dont save relative_path in db for group covers
6 years ago
Baris Usakli 0c1ac4d6a2 feat: #7032 6 years ago
Barış Soner Uşaklı fef7e13c9e feat: small fixes 6 years ago
Barış Soner Uşaklı 99e0895e99 fix: move the check to get methods
all .post methods will have csrf
6 years ago
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
6 years ago
Barış Soner Uşaklı 263c918088
feat: remove uid:<uid>:ignored:cids (#7099)
use cid:<cid>:ignorers instead
6 years ago
Barış Soner Uşaklı 26ccd8f626 fix: db info page
if there is no connection to db, connect first
6 years ago
Barış Soner Uşaklı 81aa3a0b8a fix: don't crash in flags.validate if user blocked target 6 years ago
Barış Soner Uşaklı e55fb43703 fix: #7086 6 years ago
Baris Usakli e65d40c937 dont return undefined from sortedSetsCard if keys is empty or falsy 6 years ago
Baris Usakli 76af8caf58 add missing semicolon 6 years ago
Baris Usakli 420227faae parseFloat scores 6 years ago
Julian Lam 5f3d1c76c8
fix: #7038, autoLocale logic not playing nicely with no-refresh auths (#7059)
* fix: #7038, autoLocale logic not playing nicely with no-refresh auths

- on login, req.query.lang is deleted (since it seems to be left over)
- on logout, the middleware.autoLocale is executed, which resets
  req.query.lang
- middleware.autoLocale is new, just refactored existing logic in
  webserver.js into new middleware method.

* style: tests, use lodash

* fix: timeago strings not switching languages on login or out
6 years ago
Baris Usakli d3c6cba33f closes #7060 6 years ago
Barış Soner Uşaklı a63ddbe2aa fix: #7040
if category doesn't exist return null and 404
6 years ago
Barış Soner Uşaklı 1f918ca8f8
Home route (#7039)
* fix: WIP home fix

* remove console.log

* fix: #6949

on redis run all tests in subfolder /forum
fix URI errors
fix sping/ping
6 years ago
Baris Usakli cd46febdd0 fix lint 6 years ago
Baris Usakli b86f155690 fix: #7037 6 years ago
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences 6 years ago
Barış Soner Uşaklı 00a066985a cache categories:cid and cid:<cid>:children
these rarely change, no need to go to db for them
6 years ago
Barış Soner Uşaklı c240733aee fix logs test 6 years ago
Barış Soner Uşaklı 0361849bb1 check status code 6 years ago
Barış Soner Uşaklı 47b2057f20 #7007 6 years ago
Barış Soner Uşaklı 53ad2bbd6e
Categories optimize (#6999)
* WIP

* fix category page

* fix counts, and copyPrivileges

* fix lint

* more fixes,

* redis fix

* fix test

* fix  category test

* remove getParentsAndChildren
6 years ago
Barış Soner Uşaklı 9d28b935fd dont load uid 0, -1 from db 6 years ago
Barış Soner Uşaklı a6864a8055 add groupTitle test for guests 6 years ago
Barış Soner Uşaklı ca1e3a758b #6986 6 years ago
Baris Usakli b83e50f286 remove delayImageLoading from api @julianlam 6 years ago
Barış Soner Uşaklı afa84023a2 closes #6942 6 years ago
Barış Soner Uşaklı f8e219c323 handle empty set, add test 6 years ago
Barış Soner Uşaklı b6771836cf closes #6937 6 years ago
Baris Usakli 62787368c6 add searchonly option to searh api 6 years ago
Julian Lam da10ca084b fix: #6921, allow square brackets in usernames 6 years ago
renovate[bot] 64b9dabff8 chore(deps): update dependency eslint-config-airbnb-base to v13 (#6599)
* chore(deps): update dependency eslint-config-airbnb-base to v13

* chore: #6599, linting 😬
6 years ago
Barış Soner Uşaklı 75816deca7
add cache to redis (#6917)
* add cache to redis

move out cache module from mongo

* fix redis tests

* add callback noop

* fix typo

* del cache on field delete

* make redis/mongo caches separate
6 years ago
Julian Lam 501b3a79ca
Refactor skins to be built on server-side (#6849)
* WIP

* using bootswatch from npm instead of bootswatch CDN url

* feat: on-demand client css building for skins

* added ability for client-side to select a skin

* updated loading and saving logic of bootstrapSkin on client side user settings

* fix: broken test for #6849
6 years ago
Baris Usakli 3c611d85ed closes #6912
- on category setParent dialog do not show children of current category
- break recursion if category parentCid is equal to child cid to prevent
infinite loop
- dont allow setting the parentCid of a category to one of it's children
6 years ago
Peter Jaszkowiak 9a32118418 Enable `require.main.require` in tests (#6896) 6 years ago
Barış Soner Uşaklı d3e4daebec posts/delete cleanup 6 years ago
Barış Soner Uşaklı 7aa937a657 remove dupe code in mongodb sorted 6 years ago
Barış Soner Uşaklı ea1e8fb8fe Merge branch 'master' of https://github.com/NodeBB/NodeBB 6 years ago
Barış Soner Uşaklı 19e6c61244 add new test for queue 6 years ago
Barış Soner Uşaklı c27be9db5a
Recent refactor (#6879)
* wip

* fix inf scroll

* remove duplicated code

* remove dupe code in /unread

* use topicList

* update tag page to use topicList

* fix tests

* combine ifs

* remove more dupe code

* disable timeout
6 years ago
Baris Usakli 566564ed74 fix redis tests
fixed typo in groups/data.js
added postcount,viewcount to int fields
6 years ago
Barış Soner Uşaklı fb6067a7ca only parse if field is requested 6 years ago
Barış Soner Uşaklı f3a679e268 remove parseInts 6 years ago
Barış Soner Uşaklı 9c03881d5a add threshold for image resizing 6 years ago
Barış Soner Uşaklı 537b7ff7e8 remove more parseInts 6 years ago
Baris Usakli a228dc2de9 closes #6797 6 years ago
Barış Soner Uşaklı 175e13edf6 group data 6 years ago
Barış Soner Uşaklı c30ff42817 test for hooks page 6 years ago
Barış Soner Uşaklı c738dc7d3e remove some more parseInts 6 years ago
Barış Soner Uşaklı 7a44424214 parse '123' to 123 if it has no default 6 years ago
Barış Soner Uşaklı d07e3e6d97 if not in defaults use string 6 years ago
Barış Soner Uşaklı 4fff5e9baf closes #6855 6 years ago
Barış Soner Uşaklı ac39112271 remove more parseInts 6 years ago
Barış Soner Uşaklı 9c022afae1
Parse int (#6853)
* Store config fields as JSON in the db

Fewer parseInts

* Remove unnecessary parseInts

* remove some dupe code add tests

* remove console.log

* remove more parseInts

* WIP: read meta.configs defaults from defaults.json

remove more parseInts

* more work

* add log for failing test

* update admin pwd

* fix tests, dont require posts/cache before configs are initialized

* handle saves

* Test boolean conditions

* remove more parseInts

* Fix boolean values

* remove lots more parseInts

* removed json parsing

* renamed var to number

* categories dont have timestamp
6 years ago
Barış Soner Uşaklı ee2f9e9434 remove some parseInts 6 years ago
Barış Soner Uşaklı 26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
6 years ago
Barış Soner Uşaklı 038f97b0f5 more settings tests 6 years ago
Barış Soner Uşaklı 8c9754ecee add test for /admin/settings/user 6 years ago
Barış Soner Uşaklı 250e8c01ff closes #5008 6 years ago
Barış Soner Uşaklı da1a90a470 add search test 6 years ago
Baris Usakli baf91089a6 remove unused methods 6 years ago
Baris Usakli 74fdadf8a6 test pubsub cache 6 years ago
Baris Usakli 444fd70ba3 test pubsub 6 years ago
Barış Soner Uşaklı 986511e718 try with higher timeout 6 years ago
Barış Soner Uşaklı 1d15dc089b revert isCluster 6 years ago
Barış Soner Uşaklı aa567a5f2d print out connString and opts 6 years ago
Barış Soner Uşaklı 38ce83304d up widget essentials 6 years ago
Barış Soner Uşaklı 2d8d234c57 test mongodb again 6 years ago
Barış Soner Uşaklı 8f7482955d set cluster to false again 6 years ago
Barış Soner Uşaklı fd31ad3cfe disable busy check on tests 6 years ago
Barış Soner Uşaklı f4df89fe90 closes #6840 6 years ago
Barış Soner Uşaklı 5dbc7f032a reset post cache between each suite 6 years ago
Barış Soner Uşaklı fc68263f91 change to TEST_ENV 6 years ago
Barış Soner Uşaklı 45b6e56665 add node_env to tests 6 years ago
Barış Soner Uşaklı 85c60316ed
upgrade to winston 3.1, closes #6590 (#6838)
* upgrade to winston 3.1

* fix winston in web/install and tests
6 years ago
Barış Soner Uşaklı b57db7fd8e
update groups join to take array of group names (#6834)
* allow groups.join to take an array of group names

* pass an array to groups.join/leave in privileges

* split up groups/membership

* add hits/miss to group cache

* fix typo
6 years ago
Barış Soner Uşaklı c06480b82e add tests for blocked users teaser/unread 6 years ago
Barış Soner Uşaklı d4db8c2d42 removed reset 6 years ago
Barış Soner Uşaklı 1024a0efa1 add reset to pubsub for tests 6 years ago
Baris Usakli 7d8fc09226 add test for pubsub 6 years ago
Baris Usakli 28f2144933 remove time out on plugin upgrade test 6 years ago
Baris Usakli a867b77509 add assert message to test 6 years ago
Barış Soner Uşaklı e615391b22 convert values to string before removing 6 years ago
Barış Soner Uşaklı 5c7dd54815
fix zsets and update them on post move, closes #6823 (#6827) 6 years ago
Baris Usakli 5f49a1d82c disable timeout on build templates 6 years ago
Baris Usakli 9ed4239d8e small changes and test for user/:slug/categories 6 years ago
Barış Soner Uşaklı b58ab48485 add test for /sessions controller 6 years ago
Barış Soner Uşaklı a7c4c59121 change to series 6 years ago
Barış Soner Uşaklı 1bea247748 add username/email to user-delete event 6 years ago
Barış Soner Uşaklı f77091d1ed change user delete so it returns quickly 6 years ago
Barış Soner Uşaklı 805da98a36 remove unnecessary groups.resetCache calls 6 years ago
Barış Soner Uşaklı 061b279c48 Merge branch 'master' of https://github.com/NodeBB/NodeBB 6 years ago
Barış Soner Uşaklı 77beaf2e15
Allow local login,closes #6800 (#6803)
* WIP

* reset groups cache after every suite
6 years ago
Barış Soner Uşaklı 2bd02a7ae1 disable timeout on plugin installs 6 years ago
Barış Soner Uşaklı 944972c6f2 change to series 6 years ago
Barış Soner Uşaklı 18d0deeccb
update deprecated methods (#6794) 6 years ago
Barış Soner Uşaklı 1cb2e1e368 remove console.log switch to series 6 years ago
Barış Soner Uşaklı f618ba8e1e add private category test for unread tids 6 years ago
Barış Soner Uşaklı 95501e8fee
closes #6738 closes #6290 (#6785)
* closes #6738 closes #6290

* fix test, delete keys

* delete all bans on user delete

* fix upgrade script to actually read reason
6 years ago
Barış Soner Uşaklı 59b988a205 change test so it checks url 6 years ago
Barış Soner Uşaklı b7ead6dc9c
Replace jimp with sharp (#6774)
* add probe image size and max image size

* replace jimp and image-probe with sharp

* better name for test

* resize with just path

* resize thumb inplace

* use filename
6 years ago
Barış Soner Uşaklı ea1697d073 remove console.log 6 years ago
Barış Soner Uşaklı 25fed0aa8d change isPasswordCorrect to return false if user does not have password 6 years ago