12752 Commits (9521c8deb76748d080f98e7613fe06a2b34fbeb4)

Author SHA1 Message Date
Julian Lam dcacd815a9 refactor: invert helmet configuration 3 years ago
Julian Lam 820bc994d8
feat: UI changes for ACP > Manage > Categories (#10782)
* Revert "Revert "feat: cross origin opener policy options (#10710)""

This reverts commit 46050ace1a.

* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""

This reverts commit 9f291c07d3.

* feat: closes #10719, don't trim children if category is marked section

* feat: fire hook to allow plugins to filter the pids returned in a user profile

/cc julianlam/nodebb-plugin-support-forum#14

* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints

* fix: better looking placeholder text for ACP search

* fix: bug where fallback to forum search was not working due to client-side error

* feat: allow plugins to toggle whether IPs are shown in the users CSV export

* feat: Allow defining active plugins in config (#10767)

* Revert "Revert "feat: cross origin opener policy options (#10710)""

This reverts commit 46050ace1a.

* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""

This reverts commit 9f291c07d3.

* feat: closes #10719, don't trim children if category is marked section

* feat: fire hook to allow plugins to filter the pids returned in a user profile

/cc julianlam/nodebb-plugin-support-forum#14

* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints

* feat: Allow defining active plugins in config

resolves #10766

* fix: assign the db result to files properly

* test: add tests with plugins in config

* feat: better theme change handling

* feat: add visual indication that plugins can't be activated

* test: correct hooks

* test: fix test definitions

* test: remove instead of resetting nconf to avoid affecting other tests

* test: ... I forgot how nconf worked

* fix: remove negation

* docs: improve wording of error message

* feat: reduce code duplication

* style: remove a redundant space

* fix: remove unused imports

* fix: use nconf instead of requiring config.json

* fix: await...

* fix: second missed await

* fix: move back from getActiveIds to getActive

* fix: use paths again?

* fix: typo

* fix: move require into the function

* fix: forgot to change back to getActive

* test: getActive returns only id

* test: accedently commented out some stuff

* feat: added note to top of plugins page if \!canChangeState

Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>

* feat: show an informative message when no plugins are found after filtering

fixes #10771

* Latest translations and fallbacks

* Latest translations and fallbacks

* chore(deps): bump ace-builds from 1.7.1 to 1.8.1 in /install

Bumps [ace-builds](https://github.com/ajaxorg/ace-builds) from 1.7.1 to 1.8.1.
- [Release notes](https://github.com/ajaxorg/ace-builds/releases)
- [Changelog](https://github.com/ajaxorg/ace-builds/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ajaxorg/ace-builds/compare/v1.7.1...v1.8.1)

---
updated-dependencies:
- dependency-name: ace-builds
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fix: swap out icons in ACP > Manage > Categories to more intuitive ones, remove extra placeholder div

* fix: hide expando button if no subcategories; remove attempt at establishing common vars, increased spacing between categories in list

* fix: buggy expando state on category drag/drop

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
Co-authored-by: Opliko <opliko.reg@protonmail.com>
Co-authored-by: Misty Release Bot <deploy@nodebb.org>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Julian Lam 6840a7423b feat: show an informative message when no plugins are found after filtering
fixes #10771
3 years ago
Opliko 23cb67a112 feat: Allow defining active plugins in config (#10767)
* Revert "Revert "feat: cross origin opener policy options (#10710)""

This reverts commit 46050ace1a.

* Revert "Revert "chore(i18n): fallback strings for new resources: nodebb.admin-settings-advanced""

This reverts commit 9f291c07d3.

* feat: closes #10719, don't trim children if category is marked section

* feat: fire hook to allow plugins to filter the pids returned in a user profile

/cc julianlam/nodebb-plugin-support-forum#14

* fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints

* feat: Allow defining active plugins in config

resolves #10766

* fix: assign the db result to files properly

* test: add tests with plugins in config

* feat: better theme change handling

* feat: add visual indication that plugins can't be activated

* test: correct hooks

* test: fix test definitions

* test: remove instead of resetting nconf to avoid affecting other tests

* test: ... I forgot how nconf worked

* fix: remove negation

* docs: improve wording of error message

* feat: reduce code duplication

* style: remove a redundant space

* fix: remove unused imports

* fix: use nconf instead of requiring config.json

* fix: await...

* fix: second missed await

* fix: move back from getActiveIds to getActive

* fix: use paths again?

* fix: typo

* fix: move require into the function

* fix: forgot to change back to getActive

* test: getActive returns only id

* test: accedently commented out some stuff

* feat: added note to top of plugins page if \!canChangeState

Co-authored-by: Julian Lam <julian@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
3 years ago
Julian Lam a6af47da02 feat: allow plugins to toggle whether IPs are shown in the users CSV export 3 years ago
Julian Lam 1b9c68196f fix: better looking placeholder text for ACP search 3 years ago
Julian Lam 0529f2fb5d fix: use `user.hidePrivateData();` more consistently across user retrieval endpoints 3 years ago
Julian Lam c26be43ac5 feat: fire hook to allow plugins to filter the pids returned in a user profile
/cc julianlam/nodebb-plugin-support-forum#14
3 years ago
Barış Soner Uşaklı 7e80cc1033 feat: closes #10719, don't trim children if category is marked section 3 years ago
Julian Lam ad072c03d1 Revert "Revert "feat: cross origin opener policy options (#10710)""
This reverts commit 46050ace1a.
3 years ago
Tong Ho bbc7f2afba fix: cannot turn off all networks 3 years ago
Tong Ho 2e088a8ef0 fix: cannot setting networks for sharing posts 3 years ago
Julian Lam c93bd0105e fix: expire email validation tokens on password change 3 years ago
Julian Lam 0d58e8a6af fix: remove extraneous console.log 3 years ago
Julian Lam 3c41ae04cd fix: #10733, extraneous apostrophes in plugin upgrader 3 years ago
Julian Lam 60114219c1 fix: get version from install/package.json instead 3 years ago
Julian Lam 8d701ec3e2 fix: #10739, always re-add theme to active plugins, on theme set 3 years ago
Julian Lam f38b2a737a fix: improper handling of single vs. multiple inputs for hidePrivateData 3 years ago
Julian Lam ecf0e8ce22 fix: observe user-specific and ACP-specific hiding rules for fullname 3 years ago
Julian Lam 3f5ae893c6 refactor: allow user.hidePrivateData() to handle an array of `userData` 3 years ago
Julian Lam 17e44ff5c9 feat: fire hook to allow plugins to filter the pids returned in a user profile
/cc julianlam/nodebb-plugin-support-forum#14
3 years ago
Barış Soner Uşaklı be917e8d39 feat: closes #10719, don't trim children if category is marked section 3 years ago
Julian Lam 0d68643bcb Revert "Revert "feat: cross origin opener policy options (#10710)""
This reverts commit 46050ace1a.
3 years ago
Julian Lam 43f9e6c8e4 fix: handle ENOENT on file deletion, closes #10645 3 years ago
Julian Lam 46050ace1a Revert "feat: cross origin opener policy options (#10710)"
This reverts commit 881323583f.
3 years ago
Barış Soner Uşaklı 881323583f
feat: cross origin opener policy options (#10710) 3 years ago
Julian Lam 22368b996e refactor: move orphan cleaning logic to its own method, added tests for getOrphans and cleanOrphans 3 years ago
Julian Lam 88aee43947 feat: new cronjob and ACP option to delete orphans after configurable number of days, closes #10659 3 years ago
Julian Lam bef236f371 chore: remove unnecessary `affected` set from deprecated plugin hook 3 years ago
Julian Lam b9d4724e0f feat: allowed plugins to modify email verification details prior to db saving or email send/plugin fire
+ new hook `filter:user.verify`
- hook `filter:user.verify.code`
3 years ago
Julian Lam 3a015eb8e3 fix: no need to pass in empty Set in deprecated hooks 3 years ago
Barış Soner Uşaklı b6f8e2fd05 fix: #10692 3 years ago
Julian Lam a04da673fa fix: #10690, all uploads in `uploads/files` showing orphaned 3 years ago
Julian Lam 7f870beb59 fix: bug where post associations are not shown when the directory is `files` 3 years ago
Julian Lam ece733eddc feat: pass absolute url to post into post tools response, #10566 3 years ago
Julian Lam a35642601c fix: buildBreadcrumbs naively prepending relative path even if absolute paths are passed in 3 years ago
Barış Soner Uşaklı 191fb9f443 test: fix tests again 3 years ago
Barış Soner Uşaklı e802fab87f fix: get rid of math.random in utils.generateUUID 3 years ago
Barış Soner Uşaklı 7e4d2852f6 fix: #10528, gray out disabled nav items
use enabled property if present
change default to true, so added nav items are enabled by default
3 years ago
Barış Soner Uşaklı 0084b563f3 fix: #10631, fix user digest setting display acp 3 years ago
Julian Lam 54ff768f51 chore: remove optional `middleware` parameter from setupPageRoute and setupAdminPageRoute calls 3 years ago
Barış Soner Uşaklı c926358d73 feat: add mute history, closes #10596 3 years ago
Barış Soner Uşaklı 9acdc6808c feat: allow unban/unmute on flag details page. closes #10593 3 years ago
Barış Soner Uşaklı b17a81bfb0 fix: translate api error messages to user lang, closes #10623, 3 years ago
Barış Soner Uşaklı 3a009f96cd fix: closes #10621, convert \r\n to \n so it isn't counted as 2 characters 3 years ago
Barış Soner Uşaklı b860c2605c feat: paginaton for admins-mods, closes #10610
ability to select categoriest to see children
3 years ago
Julian Lam 1411059698 feat: fix typo, show route in deprecation notice for third-param removal in `setupPageRoute` 3 years ago
Barış Soner Uşaklı 3a77e71443 lint: fix semicolon 3 years ago
Barış Soner Uşaklı a583141252 feat: add button to see category children, closes #10606 3 years ago
Barış Soner Uşaklı 0e60a704a5 fix: 'unread' postIndex regression closes #10607 3 years ago
Barış Soner Uşaklı f07b4484cf feat: add post to hook params 3 years ago
Julian Lam e2ff1e39b1 fix: #10588 exit code 1 on failed plugin activation 3 years ago
Barış Soner Uşaklı 5e7d366f55 fix: #10584, dont show backlinks if you dont have read privilege 3 years ago
Julian Lam 0c19b1e57c feat: send back missing parameters as array of missing properties, in API response 3 years ago
Barış Soner Uşaklı 323dbc9789 feat: add hook for user invite 3 years ago
Barış Soner Uşaklı 84f2726391
refactor: deprecate middleware param (#10513)
* refactor: deprecate middleware param

make middlewares optional

* chore: add node 18 again
3 years ago
Barış Soner Uşaklı ea01ba0152 fix: #10569, fix category move event text 3 years ago
Barış Soner Uşaklı 23175110a2 feat: post queue bulk actions closes #10520, fix #10555, 3 years ago
Barış Soner Uşaklı d20b07cfea
Webpack5 (#10311)
* feat: webpack 5 part 1

* fix: gruntfile fixes

* fix: fix taskbar warning

add app.importScript
copy public/src/modules to build folder

* refactor: remove commented old code

* feat: reenable admin

* fix: acp settings pages, fix sortable on manage categories

embedded require in html not allowed

* fix: bundle serialize/deserizeli so plugins dont break

* test: fixe util tests

* test: fix require path

* test: more test fixes

* test: require correct utils module

* test: require correct utils

* test: log stack

* test: fix db require blowing up tests

* test: move and disable bundle test

* refactor: add aliases

* test: disable testing route

* fix: move webpack modules necessary for build, into `dependencies`

* test: fix one more test

remove 500-embed.tpl

* fix: restore use of assets/nodebb.min.js, at least for now

* fix: remove unnecessary line break

* fix: point to proper ACP bundle

* test: maybe fix build test

* test: composer

* refactor: dont need dist

* refactor: more cleanup

use everything from build/public folder

* get rid of conditional import in app.js

* fix: ace

* refactor: cropper alias

* test: lint and test fixes

* lint: fix

* refactor: rename function to app.require

* refactor: go back to using app.require

* chore: use github branch

* chore: use webpack branch

* feat: webpack webinstaller

* feat: add chunkFile name with contenthash

* refactor: move hooks to top

* refactor: get rid of template500Function

* fix(deps): use webpack5 branch of 2factor plugin

* chore: tagging v2.0.0-beta.0 pre-release version 💥 :shipit: 🎉 🚀

* refactor: disable cache on templates

loadTemplate is called once by benchpress and the result is cache internally

* refactor: add server side helpers.js

* feat: deprecate /plugins shorthand route, closes #10343

* refactor: use build/public for webpack

* test: fix filename

* fix: more specific selector

* lint: ignore

* refactor: fix comments

* test: add debug for random failing test

* refactor: cleanup

remove test page, remove dupe functions in utils.common

* lint: use relative path  for now

* chore: bump prerelease version

* feat: add translateKeys

* fix: optional params

* fix: get rid of extra timeago files

* refactor: cleanup, require timeago locale earlier

remove translator.prepareDOM, it is in header.tpl html tag

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels (#10378)

* refactor: privileges system to use a Map in the backend instead of separate objects for keys and labels

- Existing hooks are preserved (to be deprecated at a later date, possibly)
- New init hooks are called on NodeBB start, and provide a one-stop shop to add new privileges, instead of having to add to four different hooks

* docs: fix typo in comment

* test: spec changes

* feat: allow app.require('bootbox'/'benchpressjs')

* refactor: require server side utils

* test: jquery ready

* change istaller to use build/public

* test: use document.addEventListener

* refactor: closes #10301

* refactor: generateTopicClass

* fix: column counts for other privileges

* fix: #10443, regression where sorted-list items did not render into the DOM in the predicted order [breaking]

* fix: typo in hook name

* refactor: introduce a generic autocomplete.init() method that can be called to add nodebb-style autocompletion but using different data sources (e.g. not user/groups/tags)

* fix: crash if `delay` not passed in (as it cannot be destructured)

* refactor: replace substr

* feat: set --panel-offset style in html element based on stored value in localStorage

* refactor: addDropupHandler() logic to be less naive

- Take into account height of the menu
- Don't apply dropUp logic if there's nothing in the dropdown
- Remove 'hidden' class (added by default in Persona for post tools) when menu items are added

closes #10423

* refactor: simplify utils.params [breaking]

Retrospective analysis of the usage of this method suggests that the options passed in are superfluous, and that only `url` is required. Using a browser built-in makes more sense to accomplish what this method sets out to do.

* feat: add support for returning full URLSearchParams for utils.params

* fix: utils.params() fallback handling

* fix: default empty obj for params()

* fix: remove \'loggedin\' and \'register\' qs parameters once they have been used, delay invocation of messages until ajaxify.end

* fix: utils.params() not allowing relative paths to be passed in

* refactor(DRY): new assertPasswordValidity utils method

* fix: incorrect error message returned on insufficient privilege on flag edit

* fix: read/update/delete access to flags API should be limited for moderators to only post flags in categories they moderate

- added failing tests and patched up middleware.assert.flags to fix

* refactor: flag api v3 tests to create new post and flags on every round

* fix: missing error:no-flag language key

* refactor: flags.canView to check flag existence, simplify middleware.assert.flag

* feat: flag deletion API endpoint, #10426

* feat: UI for flag deletion, closes #10426

* chore: update plugin versions

* chore: up emoji

* chore: update markdown

* chore: up emoji-android

* fix: regression caused by utils.params() refactor, supports arrays and pipes all values through utils.toType, adjusts tests to type check

Co-authored-by: Julian Lam <julian@nodebb.org>
3 years ago
Julian Lam e4a9c07817 feat: output canonical URL as last line on NodeBB boot 3 years ago
Barış Soner Uşaklı 82389469f6 feat: make it simpler to use redis sentinels 3 years ago
Barış Soner Uşaklı d98ca43799 Revert "refactor: closes #10509"
This reverts commit 7f241dbbe6.
3 years ago
Barış Soner Uşaklı 7f241dbbe6 refactor: closes #10509
deprecate third param(middleware) to setupPageRoute/setupAdminPageRoute
make middlewares optional on all 3 helpers
3 years ago
Barış Soner Uşaklı ac125538d0 refactor: show invalid uri 3 years ago
Barış Soner Uşaklı a8e642ade2 refactor: skip content length check if submitting from post-queue 3 years ago
Barış Soner Uşaklı b9f9164308 fix: #10502, allow unblocking admin/mod
if they were blocked before becoming admin/mod it wasn't possible to unblock them
3 years ago
Barış Soner Uşaklı b28f9f776a feat: closes #10501, minimum reputation to chat 3 years ago
Barış Soner Uşaklı 5316029f91 fix: dont add caller to arrays 3 years ago
Barış Soner Uşaklı c52401da02 fix: #10491, don't leak deleted message in cleanedContent 3 years ago
Julian Lam 9f91db16cb fix: #10473, trim trailing slashes on config url 3 years ago
Barış Soner Uşaklı 398777633f fix: closes #10436, fix DST issue on acp dashboard 3 years ago
Barış Soner Uşaklı 767973717b
perf: WIP #10449, allow array of pids for posts.purge (#10465)
* perf: WIP #10449, allow array of pids for posts.purge

* refactor: deletePostDiffs

* perf: deletePostFromReplies/deletePostFromGroups

* refactor: upload

* refactor: deleteFromCategoryRecentPosts

deleteFromUsersBookmarks
deleteFromUsersVotes

* feat: closes #10468, add incrObjectFieldByBulk

* refactor: allow nids for notifications.rescind

* refactor: allow uids array for user.updatePostCount

* refactor: rewrite deleteFromTopicUserNotification to work with an array

* feat: deprecate action:post.purge as well

* lint: add missing comma
3 years ago
Barış Soner Uşaklı 799e94e02e feat: #10460, add cutoff to suggested topics 3 years ago
Barış Soner Uşaklı e8058ca35c feat: add response:helpers.notAllowed 3 years ago
Barış Soner Uşaklı b8765df5f4 feat: add filter:image.stripEXIF 3 years ago
CommanderRoot 200f0b2e4f
refactor: replace deprecated String.prototype.substr() (#10432)
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
3 years ago
chadjw fe072d6091
Allows socket authentication to be handled within plugins (#10428) 3 years ago
Barış Soner Uşaklı 002a241cc5 fix: delete history as well 3 years ago
Barış Soner Uşaklı 93b6053284 fix: handle purge posts as well 3 years ago
Barış Soner Uşaklı 31251282ad feat: delete flagId field from post/user on flag purge 3 years ago
Barış Soner Uşaklı 03fdb5bede fix: byCid removal, targetCid not stored in flagObj 3 years ago
Barış Soner Uşaklı 3b529b84b5 feat: add flags.purge 3 years ago
Barış Soner Uşaklı 9abe22a04b refactor: remove some verbose logging 3 years ago
Barış Soner Uşaklı 29b86b3276 refactor: :trollface: 3 years ago
Barış Soner Uşaklı 421ba6e1a2 feat: new admin events, closes #10405 3 years ago
Barış Soner Uşaklı 55be42026c fix: upgrade script 3 years ago
Barış Soner Uşaklı dab22d5fd0 perf: #10410, faster upgrade script 3 years ago
Julian Lam 38ca73c493 fix(security): explicitly declare cache-control header instead of using middleware
This commit reverts 1f6f389ff2
3 years ago
Julian Lam 1f6f389ff2 fix(security): cache-control on all pages using setupPageRoute or setupApiRoute, and 404 controllers.
This commit also reverts e39cdd490b
3 years ago
Julian Lam e39cdd490b fix(security): explicitly set cache-control 'private' on any page where a header is built 3 years ago
Julian Lam 2b9b2b4a25 fix: column counts for other privileges 3 years ago
Barış Soner Uşaklı 3935a86b83 fix: topic events if there is a blocked user in topic 3 years ago
Barış Soner Uşaklı 2808c952c5 fix: topic events disappearing if there are queued posts 3 years ago
Julian Lam cd687cff06 fix: #10393, move 'Create User' control to overflow menu 3 years ago
Barış Soner Uşaklı 7c946570d5 feat: on online users page override timeago cutoff to 24 hours 3 years ago
Barış Soner Uşaklı 7d063d731e fix: global privs 3 years ago
Barış Soner Uşaklı be6bbabd0e feat: ability to mute users
new mute privilege
3 years ago
Julian Lam cb113208bb fix: #10384 -- mixed up sizes for fallback touch icons 3 years ago
Barış Soner Uşaklı c8e986d61c refactor: closes #10301 3 years ago
Barış Soner Uşaklı 3414a23bce feat: min:rep:upvote, and other limits similar to downvotes
closes #10380
3 years ago
Barış Soner Uşaklı 2056ac04e0 feat: post-queue hooks, closes #10381 3 years ago
Barış Soner Uşaklı df46ab4874 feat: add hook filter:posts.getUserInfoForPosts 3 years ago
Julian Lam 83fd4311b2 chore: delay `filter:email.send` removal to v2.0.0 3 years ago
Julian Lam 93b80f170b refactor: show a louder deprecation notice, alert once for each hook, not per plugin per hook 3 years ago
Julian Lam a3b4c668d5 fix: apply some DRY 3 years ago
Barış Soner Uşaklı 371b46581a fix: #10366, remove dupe /files
dont display duplicate thumb og:image items
3 years ago
gasoved 62187caa67
feat: post auto flagging on downvotes #10029 (#10367)
* feat: post auto flagging on downvotes

* fix: just get one admin
3 years ago
Barış Soner Uşaklı 56345777ce fix: always show self on /users?online 3 years ago
Barış Soner Uşaklı 21cd1e612f fix: db call 3 years ago
Barış Soner Uşaklı cc665fd614 fix: lastonline timestamps and display for guests 3 years ago
Barış Soner Uşaklı eac9cd03ca feat: closes #10324, show recently online users as well 3 years ago
Barış Soner Uşaklı 50ed3a324c test: possible fix random psql test failure 3 years ago
Barış Soner Uşaklı 7ee4e4e004 fix: #10357 3 years ago
Julian Lam 5479f36443 fix: #10358, bad uploads path 3 years ago
Barış Soner Uşaklı 0e12f82dd8 fix: dont overwrite asset_base_url if its set 3 years ago
Barış Soner Uşaklı e0b1c374e4 feat: resolve paths for staticDirs as well 3 years ago
Barış Soner Uşaklı 6b22d0e15f fix: #10334, use the correct env vars for web install 3 years ago
Barış Soner Uşaklı 5694e62e59 fix: #10322 3 years ago
Julian Lam 17836f2a3a
Re-introduce lodash into src/package-install.js (#10315)
* test: add failing test for if package.json is non-existant, fix tests' beforeEach method

* Revert "fix: #10289, remove lodash dependency in src/cli/package-install.js"

This reverts commit 81fa2e22bc.

* fix: regression caused by 94b79ce402

`./nodebb setup` was no longer able to be called without arguments or env vars

* fix: .updatePackageFile() throwing if no package.json

* fix: removing unneeded code in src/cli/index.js that seemed to be used to handle cases where package.json was missing (initial install)

... However, as .updatePackageFile() now handled cases where there is no package.json, it should be ok to remove this code

* fix: handle missing package.json or node_modules/
3 years ago
Julian Lam 4164898d85 fix: regression caused by 94b79ce402
`./nodebb setup` was no longer able to be called without arguments or env vars
3 years ago
Barış Soner Uşaklı 3acd2ac850 refactor: wrap around if at end
remove debug log
dont focus input on mobile
3 years ago
Barış Soner Uşaklı b517b376ac feat: ability to go through your posts in a topic
because I am 👴 useful for large topics
3 years ago
Barış Soner Uşaklı e9e48a756f feat: delete diffs on post purge, closes #10291 3 years ago
Barış Soner Uşaklı 9205169f00 fix: one last try 3 years ago
Barış Soner Uşaklı 2f64d63369 fix: doggy.gif 3 years ago
Barış Soner Uşaklı cfdfbf3280 fix: one more fix 3 years ago
Barış Soner Uşaklı 770fcd9ea8 fix: dupe key errors 3 years ago
Barış Soner Uşaklı dbf7a45828 fix: #10292, delete missing fields 3 years ago
Barış Soner Uşaklı 58b5781cea feat: closes #10296
asset_base_url in nconf
keep assetBaseUrl in config for backwards compat
3 years ago
ppenguin 94b79ce402
Allow NodeBB setup with env vars (#9850)
* initial try [WIP]

* typo; add test start script; initial Dockerfile mod with integrated setup [WIP]

* minor fixes

* add some winston debug...

* typos

* fix pass confirm setup

* more fixes

* fix entrypoint

* cleanup

* remove echo sensitive setupVal

* remove obsolete code and comments

* fix linting errors

* Merge branch 'additional-fixes'

* Merge branch 'pitaj-suggested-fixes'

* Merge branch 'pitaj-fixes2'

* merge checkSetup functions (env vars and flags)

* comment (lint)

* remove tab

* finalise PR; tested ok locally (setup json overrides env vars)
3 years ago
Julian Lam fb78570c13 test: fix topic thumb tests and topic thumbs to work properly with post upload assoc. 3 years ago
Julian Lam d5ed8736aa feat: deleting a user upload dissociates from posts, and vice versa 3 years ago
Julian Lam 8c2752bab1 test: user uploads.js tests 3 years ago
Julian Lam 11275d6809 test: testing user upload methods, already fixed one bug 3 years ago
Julian Lam 5d7e1ebc68 style: linting errors 3 years ago
Julian Lam b9edee143e fix: local deleteUploads() method in `src/user/delete.js` to call `User.deleteUpload()` 3 years ago
Julian Lam 7ef9c7d220 refactor: .deleteUpload() to accept array of paths 3 years ago
Julian Lam ea36016d87 refactor: fix user uploads paths, and associate uid with user uploads 3 years ago
Julian Lam 6489e9fd9e refactor: change the post uploads' hash seeds to have the `files/` prefix 3 years ago
Julian Lam 84dfda59e6 fix: #10144, automatically delete uploads from disk on post purge, ACP option to keep uploads on disk if desired 3 years ago
Julian Lam aad0c5fd51 refactor: abstract some common code out to local utility methods 3 years ago
Julian Lam 9aa3e442d0 fix: four-space indents in package.json 3 years ago
Julian Lam 81fa2e22bc fix: #10289, remove lodash dependency in src/cli/package-install.js 3 years ago
Julian Lam 6aae2e5d89 Revert "fix: proactively guard against homograph characters in website values"
This reverts commit fa7dcdb968.
3 years ago
Barış Soner Uşaklı 489c0d3015 refactor: remove extra zset remove, closes #10277 3 years ago
Julian Lam 1c7fb8fe11 fix: non-functional upgrade script 3 years ago
Barış Soner Uşaklı 350052ec50 fix: language keys 3 years ago
Barış Soner Uşaklı d70ce3a937 fix: #10273, properly calculate item count for best/controversial 3 years ago
Barış Soner Uşaklı b98758d30a chore: add missing quote 3 years ago
Julian Lam a2c7d69e1b fix: remove extraneous devDependencies on package merge
/cc @pitaj
3 years ago
Barış Soner Uşaklı 5143ca33f3 feat: handle array of keys in psql exists for zsets 3 years ago
Julian Lam 0ac2843587 feat: upgrade script to clean up leftover :thumb zsets 3 years ago
Julian Lam 0f788b8eaa fix: #10257, topic thumbs not deleting on topic deletion 3 years ago
Julian Lam 606808760e
test: add test to verify that a sorted set is automatically deleted if its last element is removed (#10261)
* test: add test to verify that a sorted set is automatically deleted if its last element is removed

* fix: remote empty zsets when all elements have been removed #yolo

* Revert "fix: remote empty zsets when all elements have been removed #yolo"

This reverts commit 0ac73244bb6ffd802007a252a35844c589ce8721.

* fix: altered behaviour in module.exists instead of zrem
3 years ago
Barış Soner Uşaklı 08f2a05053 fix: #10255, create verified/unverified groups on install 3 years ago
Barış Soner Uşaklı 6be330f2d6 lint: remove unused require 3 years ago
Barış Soner Uşaklı b548083b24 perf: increase batch size 3 years ago
Barış Soner Uşaklı 079c487dcb fix: controversial posts/bests posts not showing anything
fix upgrade script so posts with negative votes are stored, a post can have 10 upvotes and 2 downvotes
fix missing negative votes checks
remove unnecessary pids flters since the cids are only already filtered by topics:read
3 years ago
Julian Lam d34471f69f fix: regression in package.json merging logic that caused extraneous packages to not be removed 3 years ago
Julian Lam 689c125cd3 fix: #10229, package merging should deep merge nested objects
+ tests
3 years ago
Julian Lam cf88483fee feat: upgrade script to store downvotes posts in the user :votes sorted set 3 years ago
Julian Lam 5cff6e3f95 fix: bug where .reduce() exploded due to no initial value, if input value was an empty array 3 years ago
Julian Lam 5afd5de07d feat: new accounts route to show most downvoted ('controversial') posts 3 years ago
Barış Soner Uşaklı 45ca046533 Merge branch 'master' of https://github.com/NodeBB/NodeBB 3 years ago
Barış Soner Uşaklı dcb201dfa8 fix: https://github.com/NodeBB/NodeBB/issues/10242 3 years ago
Julian Lam ad63517511 fix: missing early return 3 years ago
Julian Lam 936562c3cb fix: handle case where email is explicitly passed into user.create, and thus is set in user hash, but confirmation request may have expired 3 years ago
Julian Lam 0322e984e0 fix: #10236, don't check email:uid, instead verify an email confirmation is active 3 years ago
Barış Soner Uşaklı 9883910857 fix: don't crash if requestedFields is undefined 3 years ago
Barış Soner Uşaklı 7f1c4477e3 feat: allow gif profile images, sharp 0.30.0 supports gifs 3 years ago
Julian Lam 8ba9e67cbd feat: detect alternative package managers based on lockfile
If a package manager is not explicitly set in config.json or passed-in via argv/env, NodeBB will now check for the presence of alternative package managers' lockfiles and adjust the package manager to-be-used accordingly. If the standard npm lockfile exists, npm will always be used.
3 years ago
Julian Lam 9a1690857d refactor: updated package-install.js exports style, new exported method 'getPackageManager' for use in cases where nconf is unreliable, fix bug where nconf was not correctly set up in cli tools, proper installation of dev dependencies based on global env value 3 years ago
Julian Lam c869d7dbb3 docs: some tweaks to cli help 3 years ago
Julian Lam c3d926ff7e fix: a missed invocation of colors 3 years ago
Julian Lam cf8f62aed9
feat: remove colors in favour of chalk (#10142)
* feat: remove colors in favour of chalk

* fix: bad conversion from colors to chalk in src/cli/index.js

* fix: padWidth calculation to account for control characters

* fix: termWidth calculation, but swapped one problem for another

* fix: formatItem, implement my own padRight to take control characters into account
3 years ago
Julian Lam fa7dcdb968 fix: proactively guard against homograph characters in website values 3 years ago
Barış Soner Uşaklı 1d01741ae7 fix: #10208, don't use leading slash in directory names
change to use decodeURIComponent in utils.params
3 years ago
Julian Lam dee9cca3c8 fix: email ban tests 3 years ago
Julian Lam e25c0313d1 Revert "refactor: emailer.send and emailer.sendToEmail returns Boolean based on message being successfully sent"
This reverts commit f0e32ff182.
3 years ago
Julian Lam 165a1d8b76 Revert "fix: update usage of emailer.send to not catch (as errors are no longer thrown), email error throttler"
This reverts commit d4e5259fcf.
3 years ago
Julian Lam d4e5259fcf fix: update usage of emailer.send to not catch (as errors are no longer thrown), email error throttler 3 years ago
Julian Lam b3f7b742c1 fix: derp 3 years ago
Julian Lam ea27eaf166 feat: no more sending emails to banned users, + feature flag 3 years ago
Julian Lam f0e32ff182 refactor: emailer.send and emailer.sendToEmail returns Boolean based on message being successfully sent
Note that of course this doesn't mean the message was _delivered_, just sent off.

This will stop issues where emailer errors crash NodeBB
3 years ago
Barış Soner Uşaklı 2a89ad8288 fix: use escaped group names in invite modal 3 years ago
Julian Lam e1e1d5223e feat: push the theme name into body class 3 years ago
Julian Lam d91aeea3c3 feat: add ACP toggles for COEP and CORP headers 3 years ago
Julian Lam d098e26f82
User Email and email validation API (#10160)
* feat: wip user emails api

* fix: allow admins with manage-users access to email confirmation api as well

* fix: wrong route path

* docs: openapi spec
3 years ago
Barış Soner Uşaklı 10949184ca
test: add failing guest csrf test (#10169)
* test: add failing guest csrf test

* test: use correct var

* fix: use applyCsrf for guests as well
3 years ago
Barış Soner Uşaklı 2835966518 fix: urls used when recent/unread/popular/top is used as the homepage
if recent is used as the homepage then changing the selected category or filters was redirecting the user to forum.com/recent?cid=1 instead of staying at forum.com/?cid=1

also fix unread page mark read button showing the selected category
3 years ago
Barış Soner Uşaklı c1ec20470b fix: catch exceptions from sendNotifications 3 years ago
Barış Soner Uşaklı 3e8cb732c5 fix: multiple cid filter on flags page
if multiple categories were selected it wasnt applied because of typeof string check
3 years ago
Magnus 7bd3e31dec
Fullname in notifications (#10157)
* init - fullname notifications setting

* fullname in topic reply

* fullname for group-request-membership

* fullname for group-leave notification

* fullname for new-post-flag & new-user-flag

* removed log

* fullname for user follow

* fullname in message notification

* fullname in follow

* fullname for sendNotificationToPostOwner

* fullname in sendNotificationToTopicOwner

* fullname in doExport

* shorthand name set

* shorter name set

* fullname in notifications

* displayname for notifications

* removed unused require
3 years ago
Barış Soner Uşaklı f9279b636b fix: post indices if there is a blocked user in topic 3 years ago
Barış Soner Uşaklı 3b72ff8742 fix: dont add duplicate link backs 3 years ago
Barış Soner Uşaklı b06c6329e4 fix: #10175, fix topic linkbacks duplicating on post edit 3 years ago
Barış Soner Uşaklı d1eb21c56d fix: #10173, don't show optional message if email is required 3 years ago
Barış Soner Uşaklı 6a75ed50fa fix: #10172, fix postqueue accept/reject notification text 3 years ago
Barış Soner Uşaklı 4799efc790 fix: #10167, fix regression prevent guest post 3 years ago
Julian Lam 31ea2266a6 feat: nicer error handling for bad jwt in unsubscribe template 3 years ago
Barış Soner Uşaklı c9fabb0e1d refactor: add method to error messages 3 years ago
Julian Lam e9ee843b27
fix: CSRF handler to go back to saving in session (#10159) 3 years ago
Julian Lam 6ca216ab6e feat: revoke user sessions on successful password reset 3 years ago
Julian Lam be4dbe3441 chore: org; merge consecutive await calls into one Promise.all 3 years ago
Julian Lam ffdf26afef docs: comment hint :shipit: 3 years ago
Barış Soner Uşaklı afc75ba48a lint: remove unused 3 years ago
Barış Soner Uşaklı 9b75b1ede2 test: update tag tests, fix linux symlink error 3 years ago
Barış Soner Uşaklı c9592e173c fix: lint 3 years ago
Barış Soner Uşaklı a75a043b61 feat: allow % in tags, #10135 3 years ago
Barış Soner Uşaklı 42caef7fa7 fix: #10143, add back ace editor searchbox 3 years ago
Barış Soner Uşaklı cc27a324b5 fix: notice links in subfolder installs 3 years ago
Julian Lam d89fc44c03 fix: move authenticateRequest before interstitial and maintenance mode middlewares, allowed plugins to disable authentication on certain routes
fixes #10112
3 years ago
Barış Soner Uşaklı 0d9ec9d30e test: fix restore test 3 years ago
Julian Lam b5b188fd53 feat: allow isCluster, isPrimary, and jobsDisabled to be passed in as numbers in addition to string/bool
/cc @barisusakli
3 years ago
Barış Soner Uşaklı 07232a8cf6 fix: retry incrObjtFieldBy 3 years ago
Julian Lam d960f601a1 style: eslint 3 years ago
Julian Lam 2fe53cf849 feat: `GET /api/v3/chats/:roomId/messages` 3 years ago
Julian Lam d95b4ee29a fix: assertion check to ensure messages are in the room when editing/deleting, etc 3 years ago
Julian Lam aaa6f752d0 refactor: put message api calls behind `/messages` prefix, #10097 3 years ago
Julian Lam aeb43b9bb1 fix: rename language key for incorrect parameter type error 3 years ago
Julian Lam 16ba16cdc4 fix: deprecate chats.leave 3 years ago
Julian Lam fe17c94c35 feat: `DELETE /api/v3/chats/:roomId/users` and `DELETE /api/v3/chats/:roomId/users/:uid` 3 years ago
Julian Lam 6294beea0b fix: re-allow kicking of the other party in a 1-to-1 chat 3 years ago
Julian Lam d62ee84637 feat: `POST /chats/:roomId/users` 3 years ago
Julian Lam 6eea6451d2 feat: `GET /chats/:roomId/users` [breaking] 3 years ago
Julian Lam d5fd098ecf feat: `POST /chats/:roomId/:mid` and `DELETE /chats/:roomId/:mid` 3 years ago
Julian Lam 90fcbe4416 feat: middleware.assert.message 3 years ago
Julian Lam b292960594 feat: `GET /chats/:roomId/:mid` 3 years ago
Julian Lam f48ed3658a feat: `PUT /chats/:roomId/:mid` 3 years ago
Julian Lam 140f9d2481 fix: isFinite check for room assertion, more test migrating 3 years ago
Julian Lam e745e21242 chore: use apiv3 for room rename tests 3 years ago
Julian Lam 74f1905ea8 feat: allow API checkRequired middleware error to be internationalized 3 years ago
Julian Lam 9a4fd5dc7e feat: `PUT /api/v3/chats/:roomId` 3 years ago
Julian Lam eeffb9d978 feat: `POST /api/v3/chats/:roomId` 3 years ago
Julian Lam 09cf9c7770 feat: `GET /api/v3/chats/:roomId` 3 years ago
Julian Lam 40b4544e70 feat: `POST /api/v3/chats`, chat room creation, plus openAPI docs update 3 years ago
Julian Lam 94bead71fe feat: `GET /api/v3/chats` 3 years ago
Julian Lam 02e878be72 feat: stub code for v3 chats api 3 years ago
Barış Soner Uşaklı 35fea58a57 refactor: only write analytics data on nbb that has runJobs=true
prevents mongodb index error when lots of nodebbs try to write to the same key
3 years ago
Barış Soner Uşaklı 42781467d2 refactor: remove knonwOwner param 3 years ago
Barış Soner Uşaklı 8fb89d761a fix: don't crash server if analytics fails to save
fixes
MongoBulkWriteError: E11000 duplicate key error collection:
 community.objects index: _key_1_value_-1 dup key: { _key: "analytics:pageviews", value: "1639807200000" }
3 years ago
Barış Soner Uşaklı e332acf3f7 fix: upgrade script to handle strings as well 3 years ago
Barış Soner Uşaklı 4e1d421722 refactor: remove unused validator 3 years ago
Barış Soner Uşaklı c4042c70de feat: #9506, allow seeing and editing your queued posts
allow regular users access to post queue
allow regular users to edit their queued post/topic title
allow regular users to remove their post from post queue
ability to send a notification to user without removing from post queue
allow accessing single post queue items from notifications
3 years ago
Barış Soner Uşaklı b8896d1328 refactor: only pass qs 3 years ago
Barış Soner Uşaklı 599bffd8e0 feat: pass in all query params to category search filter 3 years ago
Barış Soner Uşaklı c4156bdd7b feat: add data param to filter:categories.search
so plugins can do custom search for categories
3 years ago
Barış Soner Uşaklı 1e60ae8703 refactor: change error message 3 years ago
Barış Soner Uşaklı 1264dcb555 test: add email interstitial tests 3 years ago
Barış Soner Uşaklı 1f063058f0 breaking: remove socket.emit('user.exists')
remove socket.emit('user.deleteAccount')
remove socket.emit('user.follow')
remove socket.emit('user.unfollow')
remove socket.emit('user.saveSettings')
3 years ago
Barış Soner Uşaklı 6b45dee9c5 breaking: remove socket.emit('user.changeUsernameEmail')
remove socket.emit('user.changePassword')
remove socket.emit('user.updateProfile')
3 years ago
Barış Soner Uşaklı cc0a087a70 fix: prevent crash if groups is not valid json 3 years ago
Barış Soner Uşaklı 968d461692 fix: upgrade script 3 years ago
Barış Soner Uşaklı 737e1c191e fix: delete left over nav items after removal of some 3 years ago
Barış Soner Uşaklı 10e890e41f fix: targetBlank/dropdown not getting cleared
show caret if nav item is dropdown
3 years ago
Barış Soner Uşaklı 69c96078ea breaking: #10077, store nav items in objects 3 years ago
Barış Soner Uşaklı 3b0c42a591 fix: prettier bulk method usage 3 years ago
Julian Lam 42959df053 fix: bug where groupChat property was not set for chat rooms 3 years ago
Barış Soner Uşaklı f918a38164 breaking: remove socket.emit('topics.follow')
remove socket.emit('topics.changeWatching')
3 years ago
Barış Soner Uşaklı 6ad0472106 breaking: remove socket.emit('topics.post')
remove socket.emit('topics.search')
remove socket.emit('topics.getTopic')
3 years ago
Barış Soner Uşaklı 49641a3217 breaking: remove socket.emit('user.banUsers');
remove socket.emit('user.unbanUsers');
3 years ago
Barış Soner Uşaklı 4604a5724c breaking: remove socket.emit('posts.reply')
remove socket.emit('posts.getPost')
3 years ago
Barış Soner Uşaklı 6d95684bc8 breaking: remove socket.emit('user.changePicture') 3 years ago
Barış Soner Uşaklı 0d694c781c breaking: remove socket.emit('user.search') 3 years ago
Barış Soner Uşaklı 99f865c618 breaking: remove socketHelpers.setDefaultPostData 3 years ago
Barış Soner Uşaklı 02ea17ea1b breaking: remove deprecated groups socket calls
socket.emit('groups.join') removed use `PUT /api/v3/groups/:slug/membership/:uid`
socket.emit('groups.leave') removed use `DELETE /api/v3/groups/:slug/membership/:uid`
socket.emit('groups.grant') removed, `PUT /api/v3/groups/:slug/ownership/:uid`
socket.emit('groups.rescind') removed, `DELETE /api/v3/groups/:slug/ownership/:uid`
socket.emit('groups.update') removed, `PUT /api/v3/groups/:slug`
socket.emit('groups.create') removed, `POST /api/v3/groups`
socket.emit('groups.delete') removed, `DELETE /api/v3/groups`
3 years ago
Julian Lam bc7707aa88 fix: #9484 show user history only to admins and gmods 3 years ago
Baris Usakli 0d1e57dce0 breaking: remove deprecated methods
socket.emit('topics.delete') removed use `DELETE /api/v3/topics/state`
socket.emit('topics.restore') removed use `PUT /api/v3/topics/state`
socket.emit('topics.purge') removed use `DELETE /api/v3/topics`
socket.emit('topics.lock') removed use `PUT /api/v3/topics/lock`
socket.emit('topics.unlock') removed use `DELETE /api/v3/topics/lock`
socket.emit('topics.pin') removed use `PUT /api/v3/topics/pin`
socket.emit('topics.unpin') removed use `DELETE /api/v3/topics/pin`
3 years ago
Julian Lam 45c9dde319 fix: no need to pass 'img' to teaser tags stripping as images are already converted to alt text 3 years ago
Barış Soner Uşaklı bd1cb2d4f9 breaking: remove socket.emit('posts.delete')
remove socket.emit('posts.restore')
remove socket.emit('posts.purge')
remove socket.emit('posts.deletePosts')
remove socket.emit('posts.purgePosts')
3 years ago
Barış Soner Uşaklı ec1d5e38da breaking: remove socket.emit('posts.upvote')
socket.emit('posts.downvote')
socket.emit('posts.unvote')
3 years ago
Barış Soner Uşaklı 8427c5d9db breaking: remove socket.emit('posts.move') 3 years ago
Barış Soner Uşaklı 4247f62441 breaking: remove socket.emit('posts.edit') 3 years ago
Barış Soner Uşaklı f7418ccd47 breaking: remove socket.emit('posts.bookmark/unbookmark') 3 years ago
Barış Soner Uşaklı 5c3d5f1f40 test: make it async 3 years ago
Barış Soner Uşaklı cfd474487a refactor: async 3 years ago
Barış Soner Uşaklı f0394c4965 refactor: async 3 years ago
Barış Soner Uşaklı 8491f67daf refactor: use async 3 years ago
Barış Soner Uşaklı 07e2741ea6 breaking: remove deprecated admin.groups methods 3 years ago
Barış Soner Uşaklı a8afdc6019 fix: #10069, don't modify fields array
use a single setObjectFields for the profile update
3 years ago
Barış Soner Uşaklı 45d8157fee fix: tests 3 years ago
Barış Soner Uşaklı 9627fa9029 refactor: always returns array 3 years ago
Barış Soner Uşaklı 830166d120 fix: #10067, count posts instead of incr/decr 3 years ago
Barış Soner Uşaklı f4aa249d8c refactor: use async/await 3 years ago
Barış Soner Uşaklı cbf198fe9b lint: remove unused 3 years ago
Barış Soner Uşaklı 45d755b6ae breaking: remove socket.emit('categories.getCategory') 3 years ago
Barış Soner Uşaklı cc3f82bc83 breaking: remove socket.emit('admin.categories.setPrivilege') and socket.emit('admin.categories.getPrivilegeSettings') 3 years ago
Barış Soner Uşaklı 0b9c01f9a0 breaking: remove deprecated socket.emit('admin.categories.update') 3 years ago
Barış Soner Uşaklı ba5d2e7b81 breaking: remove deprecated socket.emit('admin.categories.purge') 3 years ago
Barış Soner Uşaklı b335372348 breaking: remove deprecated socket.emit('admin.categories.create') 3 years ago
Barış Soner Uşaklı 10c19af2ad breaking: remove deprecated socket.emit('admin.categories.getAll') 3 years ago
Barış Soner Uşaklı a20abdce02 lint: remove unused 3 years ago
Barış Soner Uşaklı 36eb47d9a0 refactor: change var name 3 years ago
Barış Soner Uşaklı 170e5dd941 breaking: remove getTopicPosts(tid, ...) usage 3 years ago
Barış Soner Uşaklı 906dc5675e fix: handle start=0 stop=0 for topics.getTopicPosts
add more tests
3 years ago
Julian Lam fa01801f64 fix: don't throw on invalid session, just return early so socket is not opened.
Also updated the plugin hook call to `static:sockets.validateSession` to not return a result, because in static calls that result is always null anyway
3 years ago
Barış Soner Uşaklı a29535833f fix: #10052, dont use spaces in tag class name 3 years ago
Barış Soner Uşaklı 41db9436e8 perf: only add middleware if relativePath is set 3 years ago
Julian Lam a3bdb70617 feat: ensure that all requests handled by NodeBB fall under the relative_path as configured 3 years ago
Barış Soner Uşaklı 2bb0828af6 refactor: dont need local function 3 years ago
sadaszewski a1c9a69cd3
incr by bulk. (#9952)
* incr by bulk.

* Update analytics.js

* Update analytics.js

* lint: fix

Co-authored-by: Barış Soner Uşaklı <baris@nodebb.org>
Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
3 years ago
Barış Soner Uşaklı 6ea3b51f12
Zincrybulk (#9975)
* feat: zincry bulk

* feat: psql bulk incr placeholder

* test: redis test fix

* test: redis test
3 years ago
Barış Soner Uşaklı d9c42c000c feat: show 10 members 3 years ago
Barış Soner Uşaklı 1cdb0b1e19 fix: don't crash if tid is falsy 3 years ago
Barış Soner Uşaklı 0414356cf7 perf: don't load all set members to get count 3 years ago
Barış Soner Uşaklı 50063fe238 fix: regression from 27c05448e1 3 years ago
Barış Soner Uşaklı 82b72f7edc lint: remove unused utils 3 years ago
Barış Soner Uşaklı 5843122178 test: add missing tests 3 years ago
Barış Soner Uşaklı 8117b7f22f breaking: remove deprecated post diff socket calls 3 years ago
Barış Soner Uşaklı 324262cbb5 refactor: DRY 3 years ago
Barış Soner Uşaklı 1a7fffc7e9 breaking: remove deprecated user middlewares 3 years ago
Barış Soner Uşaklı 941ecaf899 fix: keep query params on /me redirects 3 years ago
Barış Soner Uşaklı 65c5504193 fix: 403/400/500 page not generating csrf_token 3 years ago
Barış Soner Uşaklı 3dd681ebce fix: error pages dont have config.csrf_token 3 years ago
Barış Soner Uşaklı 7434cbf66f test: add api token tests 3 years ago
Barış Soner Uşaklı 1e53552874 feat: closes #10018 3 years ago
Baris Usakli 06bfec8840 feat: #10018 add href 3 years ago
Baris Usakli 0f14f23b2a feat: #10018 , wip 3 years ago
Julian Lam 6c07433dea
refactor: use routePrefixMap instead of routeRegexpMap, +tests (#10035)
* refactor: use routePrefixMap instead of routeRegexpMap, +tests

Currently tests fail because privilege pages resolve if passed garbage... hmm

* fix: priv check paths

remove /v3 from path as well

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
3 years ago
Barış Soner Uşaklı daf385cd42 refactor: use hasOwnProprety 3 years ago
Barış Soner Uşaklı 404a877408 test: add missing tests 3 years ago
Barış Soner Uşaklı 6dcdf1d342 breaking: remove setTopicSort/setCategorySort 3 years ago
Barış Soner Uşaklı 7aa85882d5 chore: right dropdown 3 years ago
Barış Soner Uşaklı a998cc1c47 chore: right dropdown 3 years ago
Barış Soner Uşaklı a7d1dfb65c breaking: remove deprecated socket user create/delete functions
add missing tests
3 years ago
Barış Soner Uşaklı a0e2704da1 Merge branch 'master' of https://github.com/NodeBB/NodeBB 3 years ago
Barış Soner Uşaklı c93d7fdbdd breaking: remove deprecated uploads.delete 3 years ago
Julian Lam e0caa5e0c4 fix: removed unused var 3 years ago
Julian Lam 01bd8a8694
remove email only login (#10030)
* feat: remove ACP option for email-only logins

* feat: remove email-only login, upgrade script to fix config
3 years ago
Barış Soner Uşaklı 79de48c57f breaking: remove deprecated methods 3 years ago
Barış Soner Uşaklı 2473d5d873 fix: #10027, properly auto confirm first user 3 years ago
Barış Soner Uşaklı 71e34be565 fix: cli password reset 3 years ago
Barış Soner Uşaklı d375dcb873 test: submitUsage 3 years ago
Barış Soner Uşaklı 29b3587d91 test: middleware/expose.js 3 years ago
Barış Soner Uşaklı c5f08fdc81 breaking: remove socket.io/flags.js
refactor: helpers.loginUser returns a single object {jar, csrf_token}
3 years ago
Julian Lam f0d192fbfd feat: autocomplete for activate/reset
useless features™️
3 years ago
Julian Lam 5b42b6b369
API route for returning tracked analytics keys (#10019)
* feat: track metrics saved by NodeBB (and assoc. plugins), #9949

* feat: route to retrieve analytics keys, closes #9949
3 years ago
Julian Lam 449366ca83 fix: consolidate plugin reset logic 3 years ago
Barış Soner Uşaklı 9245f71a66 fix: search crash 3 years ago
Barış Soner Uşaklı fb363957d1 refactor: tab rules 3 years ago
Barış Soner Uşaklı c26870d227 feat: #10008, add history entry for note deletion 3 years ago
Barış Soner Uşaklı 697dd37670 refactor: change category feed so it is not updated on every reply
allow cid query param for recent/top/popular feeds
3 years ago
Barış Soner Uşaklı d5bfd51267 fix: #10010, handle reverse sorting for topic events
dont add events to dom if sort is most votes
if sorting is reverse add new events after the main post or at the top instead of bottom
3 years ago
Barış Soner Uşaklı e368feef51 refactor: dont expost entire res._locals to client side 3 years ago
Barış Soner Uşaklı 190532b3b4 refactor: shorter meta.settings.get 3 years ago
Barış Soner Uşaklı 51cbeccb08 refactor: clone settings before returning
prevents plugins from mistakenly modifying saved settings in cache
3 years ago
Barış Soner Uşaklı 27c05448e1 refactor: remove another async.series 3 years ago
Barış Soner Uşaklı 0532c1b2a1 feat: #9957, don't remove existing fields form config.json 3 years ago
Barış Soner Uşaklı 047f031dd7 fix: #10006, dont allow new rooms or adding to a room if target is blocked 3 years ago
Barış Soner Uşaklı f729e51921 refactor: clone before returning 3 years ago
Barış Soner Uşaklı 258f368e32 refactor: add filter:topic.getPosts
this hook only fires when loading the posts of a topic cold load + infinite scroll
do not remove posts if they have index =-1
use topics.getTopicPosts instead of getMainPostAndReplies
3 years ago
Barış Soner Uşaklı 8379c11b22 refactor: setObjectBulk to match sortedSetAddBulk 3 years ago
Baris Usakli d412ba4411 perf: closes #9994, bulk methods for settings 3 years ago
Julian Lam 09e0c6d503 feat: add feature flag to disable verification emails, closes #9996 3 years ago
Barış Soner Uşaklı d196409580 refactor: remove more async.eachSeries/mapSeries 3 years ago
Barış Soner Uşaklı 8750ee04a6 refactor: make a single call to set widgets per template 3 years ago
Barış Soner Uşaklı 80f9963bed refactor: remove jshint, remove async.parallel 3 years ago
Barış Soner Uşaklı 61d1f56500 test: socket.emit doesnt exist in tests 3 years ago
Julian Lam 1719bff89c feat: use auto-generated meta and link tags in ACP, closes #9991 3 years ago
Barış Soner Uşaklı 8b4510cc70 refactor: deprecate app.logout
use logout module instead
move header related code out of app.js
3 years ago
Barış Soner Uşaklı 1a9b15989b refactor: move search functions from app.js to search module
deprecate:
app.handleSearch, use search.init(options) instead
app.enableTopicSearch, use search.enableQuickSearch(options) instead
app.prepareSearch, use search.showAndFocusInput() instead
3 years ago
Barış Soner Uşaklı 518552543d refactor: move warnings/messages out of app.js 3 years ago
Julian Lam c1ac291284 fix: ability to enumerate email via updateProfile method 3 years ago
Julian Lam b912a564e3 fix: accidentally not clearing email when said email is confirmed for a different uid 3 years ago
Barış Soner Uşaklı 4b738c8cd3 refactor: cleanup info, better cpu usage % 3 years ago
Barış Soner Uşaklı 890bf03fcc refactor: acp only uses 3 modes and a single theme
so only copy 7 files to build folder instead of 400+
3 years ago
Barış Soner Uşaklı 28dd31a8e7 fix: #9976 3 years ago
Barış Soner Uşaklı 9bfb6c7281 fix: #9976, handle array or object 3 years ago
Barış Soner Uşaklı 66e7cdac7a fix: #9973, ignore if assigning to same parent 3 years ago
Barış Soner Uşaklı d27c9696e3
feat: add node 16 (#9847)
* feat: add node 16

* fix: check errors in fork

* test: add use-spawn

* test: another test

* Revert "test: another test"

This reverts commit 606efe26fe1decd5d9269d63d5b649441ba2203b.

* test: another test

* fix: lint

* fix: remove spawn-wrap

* test: comment out plugin installs

* fix: lint

* test: uncomment all tests except npm i

* fix: lint

* test: bring back tests

* test: remove leftover override
3 years ago
Barış Soner Uşaklı 67cb249122 fix: #9972 3 years ago
Barış Soner Uşaklı 2e623dd271 feat: #9967, allow dropdowns in navigation 3 years ago
Barış Soner Uşaklı b916e42f40 feat: show number of events per type in acp 3 years ago
Barış Soner Uşaklı 8c67031609 feat: show posts previews if enabled on mouse over 3 years ago
Barış Soner Uşaklı 3d611ab70e fix: events for just topic with main post 3 years ago
Barış Soner Uşaklı 89399c0ed5 fix: #9954, get next post timestamp
fixes topic events being inserted in after first page but at the wrong spot
3 years ago
Julian Lam 485b6ced1d fix: broken post uploads due to 6a976a9db0 3 years ago
Julian Lam 0ee85d5a0b fix: #9950, rename account export routes to remove `uid/` prefix 3 years ago
Julian Lam 60352eca54
fix: double invocation of authenticateRequest 3 years ago
Julian Lam 6a976a9db0 fix: #9945, call authenticateRequest middleware for mount points in /api 3 years ago
Barış Soner Uşaklı bc4b19b4d7 fix: typo in flags 3 years ago
Barış Soner Uşaklı 8f08d9cac0 fix: handle undefined data.query 3 years ago
Julian Lam 28efcb59cb chore: remove .opacity() mixin as it is supported cross-browser 3 years ago
Barış Soner Uşaklı c428ba80aa refactor: wider value field 3 years ago
Barış Soner Uşaklı c7e078d495 refactor: dont save partial searches 3 years ago
Julian Lam 80ea12c1c1 feat: new ACP option `emailPrompt`
... which allows administrators to disable the client-side prompt to
encourage users to enter or confirm their email addresses
3 years ago
Barış Soner Uşaklı 64192731a0 refactor: use search api for topic search 3 years ago
Barış Soner Uşaklı 6cfaea06f0 fix: undefined query showing in searches 3 years ago
Barış Soner Uşaklı 0926ae6ecf fix: api session revoke test 3 years ago
Barış Soner Uşaklı da64810a4a fix: crash 3 years ago
Barış Soner Uşaklı a528790615 refactor: typo 3 years ago
Barış Soner Uşaklı ee8e048015 fix: move record to controller 3 years ago
Barış Soner Uşaklı f4cf482a87 feat: show popular searches 3 years ago
Barış Soner Uşaklı 63572c23ce fix: profile edit fields showing translated values 3 years ago
Barış Soner Uşaklı 719cfc0d57 breaking: disable javascript in custom less tab 3 years ago
Barış Soner Uşaklı 04dab1d550 fix: token verify 3 years ago
Barış Soner Uşaklı 1783f918bc fix: guard against prototype pollution 3 years ago
Barış Soner Uşaklı c8b2fc46dc fix: translator path traversal 3 years ago
Barış Soner Uşaklı e62948f73d fix: there is no alltime digest, fixes translation in test email
there is no digest.title.alltime
3 years ago
Julian Lam 506c34a84d refactor: simplified utilities API > login rout
Removed continueLogin override in favour of a simpler `redirectAfterLogin` override
Use passport to authenticate username and password instead of duplicated logic.
3 years ago