579 Commits (d1ea5d157de5b5336d553c038a5f5f69326bfcce)

Author SHA1 Message Date
Julian Lam 4fba1492c1 feat: added new middleware authenticateOrGuest 7 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
7 years ago
Julian Lam a07d9898df fix: #7071 buildSkinAsset won't rebuild continuously 7 years ago
Baris Usakli 67ac8e3d06 closes #7053 7 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
Barış Soner Uşaklı ae0f1847ae allow multiple origins for access-control-allow-origin header
add access-control-allow-credentials header to acp
7 years ago
Peter Jaszkowiak eaae5b52cd ACP quick actions (#6374)
* ACP quick actions

- Moved restart, build & restart, and logout into separate buttons
- Moved buttons on mobile into the side menu
- Added version and upgrade alert to header / mobile menu
- Moved version checking to server-side with a cache for rate limiting
- Changed "reload" translations to "rebuild and restart"

* Change info alert to black-on-white to match focused search bar

* Fix tests

* Fallback for failed fetch of latest version
7 years ago
Baris Usakli 52ab0a00d9 use the acp config for homePageTitle 7 years ago
Barış Soner Uşaklı 245e1a9159 closes #6334 7 years ago
Barış Soner Uşaklı 5069892b97 pass correct uid to client side
-1 spider,0 guest, >0 regular user
7 years ago
Julian Lam c25d752573 Merge remote-tracking branch 'origin/master' into develop 7 years ago
Julian Lam 98b0bdc7e1 added helmet for better standard of protection across the board 7 years ago
Julian Lam 7edc58b727 stricter Referrer-Policy to reduce unintended information leakage 7 years ago
Julian Lam 9a1f722a05 appending X-Upstream-Hostname header in dev mode 7 years ago
Barış Soner Uşaklı c707e98423 closes #6331 7 years ago
Barış Soner Uşaklı e36657d48c add tpl path to error messages 7 years ago
Julian Lam 1ce448f2a1 Merge remote-tracking branch 'origin/master' into develop 7 years ago
Barış Soner Uşaklı 575b70b5ab add some checks to templatesOnDemand 7 years ago