592 Commits (25e05805ad6a26e7f21cbcfe15e75fd3dc1aa84d)

Author SHA1 Message Date
Julian Lam d81e0a5f5b fix: #7146 Better RTL handling on (de-)authentication
- RTL is applied (or unapplied) on login and logout depending on
  user language/guest-detected language.
- config is automatically saved into res.locals.config whenever
  loadConfig is called
- On login/logout, buildHeader is called instead of getting config
- On logout, req.uid is deleted instead of set to 0
6 years ago
Barış Soner Uşaklı b2a74b4172 fix: remove cache 6 years ago
Barış Soner Uşaklı 0cb9bba4da feat: header 6 years ago
Barış Soner Uşaklı 60390c01f1 fix: loop 6 years ago
Barış Soner Uşaklı f88db22ca2 feat: give the rest of the middlewares names 6 years ago
Barış Soner Uşaklı fdfbcc6efe feat: give names to more middlewares 6 years ago
Barış Soner Uşaklı 53793e1603 feat: give names to middlewares 6 years ago
Barış Soner Uşaklı 4650a76036 fix: #7124 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 fbe6ccd773 style: lint fix 6 years ago
Barış Soner Uşaklı 989879a6b5 fix: #7115 6 years ago
Barış Soner Uşaklı 29b63ae7fb fix: #6979 6 years ago
Julian Lam 4fba1492c1 feat: added new middleware authenticateOrGuest 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
Julian Lam a07d9898df fix: #7071 buildSkinAsset won't rebuild continuously 6 years ago
Baris Usakli 67ac8e3d06 closes #7053 6 years ago
Peter Jaszkowiak ba619c7ec8 style(eslint): match operator-linebreak preferences 7 years ago
Barış Soner Uşaklı 9d28b935fd dont load uid 0, -1 from db 7 years ago
Barış Soner Uşaklı e17c4b2766 uid fixes 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
Barış Soner Uşaklı 69bb3293ee misc fixes
handle spider uids properly
7 years ago
Barış Soner Uşaklı b6771836cf closes #6937 7 years ago
Julian Lam a5022ce425 fix: #6922, skin assets not including plugin LESS files 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
Julian Lam 84433f29ab
Do not require a full refresh on login/logout (#6841)
* no-refresh login as well, plus lots of fixes for missing config on login

* replace config with new set on logout as well

* passing new payload data into new action:app.loggedIn hook, and old action:app.loggedOut hook

* fixed issues with socket.io not properly representing uid on server

* some light refactoring and cleanup

* minor cleanup, fixed spa logout not working after login

* have reconnection handler for socket.io wait 2s to confirm disconnection before reporting -- stops flicker if reconnecting immediately

* Dynamically replace chat and slideout menu on updateHeader()

... instead of just the menu items.

* more efficient calls to Benchpress and translator /cc @pitaj

* fix: chats and notification handlers not working after login

* fix: accidentally calling cb multiple times
7 years ago
Barış Soner Uşaklı f3a679e268 remove 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ı 26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
7 years ago
Barış Soner Uşaklı 702be3f6de https://github.com/NodeBB/nodebb-theme-persona/issues/363 7 years ago
Julian Lam ebabcc5e3c if authenticate middleware is overridden by plugin, check for req.user and return notAllowed helper otherwise
/cc @LudwikJaniuk
7 years ago
Barış Soner Uşaklı cf75c79611
Unread changes closes #6781 (#6783)
* WIP

* more unread work

* faster teaser block handling

if user doesn't have anyone blocked don't check

* much faster filtering of blocked posts

* add missing uid

* add tidsByFilter to return

* dont load all pids to find previous non-blocked teaser

* fix unread filters

they no longer use unread/new unread/watched etc they are query strings now

* shorter nav item code

* add unreplied to filters

fix icons not clearing to 0
dont increment unread counters if there is a reply in a topic where you ignored the topic creator
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
Julian Lam 3522ad0e05 Revert "closes #6664"
This reverts commit f27a0d252c.
7 years ago
Julian Lam f27a0d252c closes #6664 7 years ago
Peter Jaszkowiak 04d31fe1d4 Precompile all templates
- Benchpress compilation is 33x faster now
- Native module with JS fallback and pre-built binaries
- Dev template build is <1sec now
- Minified template build is ~5sec (uglify accounts for almost all)
7 years ago
Barış Soner Uşaklı 85a55d1740 closes 7 years ago
Julian Lam 7a53fa9469 Added block and unblock button to profile dropdown menu, #6560 7 years ago
Barış Soner Uşaklı 5287c2ea08 #6554 7 years ago
Barış Soner Uşaklı 14f6e74bad closes #6556 7 years ago
Barış Soner Uşaklı d5e85c2eb3 closes #6476, closes #6546 7 years ago
Barış Soner Uşaklı d31d8fa806 move category pageview to controllers
so topic views are tracked as category views
7 years ago
Barış Soner Uşaklı 4f893d2aff closes #6535 7 years ago
Julian Lam 99f1a5380e closes #6483 7 years ago
Barış Soner Uşaklı beadcd7857 fix tests, remove dupe exposeUid 7 years ago
Julian Lam dc386b5b23 Merge branch 'master' into user-blocking 7 years ago
Julian Lam bfee23adee basic methods and initial integration for #6463 7 years ago
Barış Soner Uşaklı 0070f5c1b2 Merge remote-tracking branch 'refs/remotes/origin/master' into develop 7 years ago
Barış Soner Uşaklı e1df8bd0f0 closes #6390 7 years ago