1180 Commits (9a7560049a33e7586faa14942c06c0705d06ce6f)

Author SHA1 Message Date
Barış Soner Uşaklı 873ec51978 fix: crash in feed 6 years ago
Barış Soner Uşaklı ec3b5dd95a refactor: async/await routes/feeds 6 years ago
Julian Lam 52a2e5d61d fix: #7816, adding GDPR and TOU interstitials earlier on route reloading
A use-case was presented that called for a theme to disable the
registration interstitials. However, the plugin hooks were always
fired first, and so the core interstitials could not be removed
at that time because they hadn't been added yet.

This change moved the interstitial adding to the earliest point
possible, right after plugins.loadedHooks is emptied in preparation
for plugin initialisation.
6 years ago
Barış Soner Uşaklı 0d047f4eb9 feat: #7743, webserver 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 a0c0ef1ba4
feat: ACP analytics API route (#7725)
* feat: added API route for retrieving analytics via REST API

* feat: sets is now optional, can pass in multiple sets

* fix: moved expand and added json button to panel header

* fix: matching api params to socket method

* fix: update json api button url on graph change

* fix: updated default counts based on passed in units
6 years ago
Barış Soner Uşaklı a251032f02 fix: typo 6 years ago
Barış Soner Uşaklı 3b0459a0a5 fix: do not prevent nbb from starting
if a plugin returns error for filter:auth.init
6 years ago
Andrew Rodrigues 740388492f fix: #7545 6 years ago
Andrew Rodrigues ddffc904f4 feat: allow file uploading on registration interstitial 6 years ago
Baris Usakli 8f55ab1340 fix: #7494 6 years ago
Julian Lam d2cfe6b946
Moved onSuccessfulLogin call from plugins to core, + auth verification hook (#7416)
* fix: #7412, calling controllers.onSuccessfulLogin in core

* feat: added plugin hook for auth validation
6 years ago
Julian Lam d722f3b8b6 fix: mounting of all-route middlewares to router instead of app
related to julianlam/nodebb-plugin-session-sharing#73
These three lines haven't changed in two years, but it makes more
sense for them to be called against the relative path router,
otherwise req.originalUrl contains the relative path, which is
not necessary.
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ı 5353960ae7 fix: #7316 6 years ago
Julian Lam 059a4be204 feat: explicit handling of SSO success and failure 6 years ago
Julian Lam 2b9322e1c2 feat: additional options for SSO plugins
+checkState property, pass Boolean false to skip nonce checking
+callbackMethod, default 'get', you can pass in 'post', etc.
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
Barış Soner Uşaklı d31684e8b8 fix: #7131 6 years ago
Barış Soner Uşaklı ae0fe5e880 feat: more naming 6 years ago
Barış Soner Uşaklı 9f5062682d fix: unread badge
- only increase unread badge if topic or category is watched
- fix logic for "there are new posts/topics" on /unread and /recent
6 years ago
Barış Soner Uşaklı 99e0895e99 fix: move the check to get methods
all .post methods will have csrf
6 years ago
Julian Lam 4fba1492c1 feat: added new middleware authenticateOrGuest 7 years ago
Julian Lam eeaee8ccef fix: not calling authenticate middleware on resource direct access
routes
7 years ago
Julian Lam a07d9898df fix: #7071 buildSkinAsset won't rebuild continuously 7 years ago
Barış Soner Uşaklı a63ddbe2aa fix: #7040
if category doesn't exist return null and 404
7 years ago
Barış Soner Uşaklı cb7c2d8c28 fix: add missing render function 7 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
7 years ago
Baris Usakli 8808a03307 fix: #7033 7 years ago
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences 7 years ago
Barış Soner Uşaklı 4b486a808e fix custom home 7 years ago
Barış Soner Uşaklı e17c4b2766 uid fixes 7 years ago
Barış Soner Uşaklı f1a6d39537 dont crash if a loginStrategies is undefined 7 years ago
Baris Usakli d0b67b00db closes #6949 7 years ago
Julian Lam f96208a0c8 fix(uploads): ugly filenames on uploaded asset downloading
During regular processing, a timestamp is prepended to the filename
for any uploaded files. We don't want this to be part of the filename
if an end-user elects to download the file.

This commit adds a middleware to strip out that portion of the
basename and adds the appropriate Content-Disposition header for
files in /uploads/files

Fixes #6953
7 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 😬
7 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
7 years ago
Barış Soner Uşaklı 412358b070 #6903 7 years ago
Barış Soner Uşaklı 67d3b29204 #6903 7 years ago
Barış Soner Uşaklı f3a679e268 remove parseInts 7 years ago
Barış Soner Uşaklı ebd4b19a65 moved req.user up 7 years ago
Barış Soner Uşaklı ab7657d445 closes #6854 7 years ago
Barış Soner Uşaklı ac39112271 remove more parseInts 7 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
7 years ago
Barış Soner Uşaklı 60c58870af
remove hotswap (#6835) 7 years ago
Barış Soner Uşaklı 92744a7200 closes #6852 7 years ago
André Zanghelini 523a2dc54c Add settings page to control watched categories (#6648)
* Add settings page to control watched categories

* Fix passing undefined to pushUnreadCount
7 years ago
Julian Lam 02046889ec closes #6691 7 years ago
LudwikJaniuk c7f3b76b4e DRY req props that depend on auth (fix #6727) (#6731)
* DRY req props that depend on auth (fix #6727)

authentication leads to req.loggedIn and req.uid being set. However, a
later authentication event might outdate them. Here, I create one
function for setting those properties, and make sure it also is called
on the `action:middleware.authenticate` hook, which would be such an
authentication event. If there are other places, those should be added
as well.

* fix lint errors

* fix lint error

* change exports
7 years ago