Commit Graph

11323 Commits (252dddfc1049d5c7ddebf67c15077ea64dc5889f)

Author SHA1 Message Date
Julian Lam 14f9d8b0e5 feat: send back 403 on no-privileges error
Julian Lam 222b4c9533 fix: broken tests from api change
Julian Lam 2d252f2fa4 refactor: user bans to use api lib
Barış Soner Uşaklı 7d86be2bc2 fix: tests
Barış Soner Uşaklı e367c5403e refactor: move groups.leave, fix some tests
Barış Soner Uşaklı bbbd9fee85 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Julian Lam 960e925e40 refactor: change password/user follow to use api lib
Barış Soner Uşaklı 081c4fa6d4 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Julian Lam 430e7f5834 refactor: user deletion to use api lib
Barış Soner Uşaklı 8ae1f81cf4 feat: refactor groups.delete
Julian Lam 77481947f0 refactor: socket profile update to use api lib
Julian Lam 31ae8a8323 refactor: socket profile update to use api lib
Barış Soner Uşaklı d69e503d21 feat: move groups.join to api
Julian Lam d07f0081b7 fix: add missing file
Julian Lam 23086daead refactor: user create and profile update to use api lib
Barış Soner Uşaklı 5e2caf19f5 refactor: use single function for api code
Barış Soner Uşaklı 25e4a09816 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 4418ff0716 fix:
Julian Lam cc6e995ee2 fix: api bug where user profile editing continued even if not allowed
Barış Soner Uşaklı 43afe7ffab refactor: async/await src/user/approval
Barış Soner Uşaklı bae0f343e1 fix: module build
Barış Soner Uşaklı 1fd2eba6f2 refactor: async/await
src/cli/manage.js
src/meta/build.js
src/meta/css.js
src/meta/js.js
Barış Soner Uşaklı b295d15eae fix: tests
Barış Soner Uşaklı d89477cad0 refactor: use app.render
Julian Lam 9dd3cc0483 feat: allow plugins to define api routes
via new plugin hook static:api.routes
Julian Lam a4ba23899e feat: require https if nodebb is configured with https url
Barış Soner Uşaklı e6ea71c95a fix: test
Barış Soner Uşaklı 8c6a559188 fix: timestamp
Barış Soner Uşaklı 331d236f6e fix:
Barış Soner Uşaklı a481024d27 fix: lastonline again
Barış Soner Uşaklı 71d82ec8e0 fix: caret
Barış Soner Uşaklı 97628e2ff2 fix: lastonline values
Barış Soner Uşaklı 1289c10568 fix: upgrade script
Barış Soner Uşaklı 59bbede8c7 fix: cant join system groups
Barış Soner Uşaklı a411df1321 fix: tests
Barış Soner Uşaklı dd7424e5b5 refactor: remove unused search call
Barış Soner Uşaklı 2d6ea6e505 Merge branch 'master' into admin/users
Barış Soner Uşaklı a2edb86dfb feat: change user search to use filters array
Barış Soner Uşaklı 959314c921 feat: add filter
Julian Lam 1e07886f30 feat: require csrf token if not using bearer token
Barış Soner Uşaklı 933989e013 Merge branch 'master' into admin/users
Barış Soner Uşaklı 682e926c6b feat: , verified/unverified user groups
Julian Lam 30b3fedca4 fix: password reset to invalidate all existing reset tokens for that uid
Barış Soner Uşaklı 700e1e4340 feat: more fixes
Barış Soner Uşaklı 40a05b70ef feat: more work
Barış Soner Uşaklı b038ac07d8 feat: wip admin/users
Barış Soner Uşaklı 7beaf49028 feat: set unread false for guests
Barış Soner Uşaklı 30d6a2b84e fix: , pass missing req to mock
Barış Soner Uşaklı 1ee9384875 fix: , allow all slashes in category route
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module
Barış Soner Uşaklı bddfcb5867 feat: , add slugify module, deprecate utils.slugify
Barış Soner Uşaklı f16c8268cf feat: , move bootstrap-tagsinput to package.json
Barış Soner Uşaklı eab7489ec5 feat: , move deserialize/serialize to package.json
Barış Soner Uşaklı 948f26143c feat: , remove colorpicker
Barış Soner Uşaklı aedd28e0a6 fix: module name
Barış Soner Uşaklı cc705e5e2b feat: , move sortable to package.json
Barış Soner Uşaklı 300a87559f feat: , move bootbox to package.json
Barış Soner Uşaklı 420a312982 Merge branch 'master' of https://github.com/NodeBB/NodeBB
Barış Soner Uşaklı 3b231360d3 feat: load jquery-form before using
Barış Soner Uşaklı fda2aedfd8
feat: , jquery-ui, jquery-form, timeago ()
* feat: , jquery-ui, jquery-form, timeago

get rid of forum/footer.js move that code to app.js & wait for app to load before calling ajaxify.end
make sockets.js a requirejs module
move jquery-ui to node_modules and load via requirejs
move jquery-form to node_modules and load via requirejs
move timeago to node_modules and load via requirejs
only include the css for needed jquery-ui widgets

* feat: keep socket/io global for backwards compat

* refactor: move socket listener to chat
Barış Soner Uşaklı ae3a231fce feat: , remove semver.browser
use compare-versions as a module
psychobunny 9a5b8a798a fix: category RSS feed was displaying deleted topics
Barış Soner Uşaklı 2c1897b373 feat: , move slideout to package.json
Barış Soner Uşaklı 9c157de05d feat: , move tinycon to package.json
Barış Soner Uşaklı 45e8a4d588 fix: make nprogress module
Barış Soner Uşaklı 43589a744d feat: , move visibilityjs to package.json
Julian Lam 8af30a51b5 fix: regression caused by 7545951725
/cc @psychobunny
Barış Soner Uşaklı a46cbb623d feat: , move nprogress to package.json
Barış Soner Uşaklı aa08f8826c feat: move r.js to package.json
cryptoethic b3ed26ac2c
feat: revoke user sessions above threshold ()
* feat: revoke user sessions above threshold

* fix: removed translations from en-US

* fix: defined default maxUserSessions in install\data\defaults.json
Julian Lam 4a63c20a72 chore: some optimizations for codeclimate
Julian Lam b8703ba9f6 fix(writeapi): tests
Julian Lam 8ecef7b891 refactor: middleware.assert.*
Julian Lam cfee431c53 feat(writeapi): commented-out stub code for file upload
Julian Lam f870721fca feat(writeapi): file deletion route
Julian Lam a55b381791 feat(writeapi): admin settings update route
Julian Lam 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates
Julian Lam c7d15dfa94 feat: filter:settings.get plugin hook
Julian Lam 3ea1aa4780 refactor(writeapi): update route prefix to api/v3, default error option
Julian Lam f67824719c chore(writeapi): cleanup
Julian Lam 0973feea16 feat(writeapi): post bookmarking
Julian Lam 9942c248eb feat(writeapi): post voting
Julian Lam 5e2a3ea6ec refactor(writeapi): post.tools.purge no longer a method
Julian Lam 414169fdfa feat(writeapi): post delete/restore/purge
Julian Lam f66c2fb60f feat(writeapi): post editing
Julian Lam 1605e5e443 feat(writeapi): topic tags
Julian Lam 9be5629458 feat(writeapi): topic follow/ignore
Julian Lam da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock
Julian Lam 675a62dadd fix: remove debug log
Julian Lam 5fc7e7bfd0 feat: add new api page to ACP menu
Julian Lam 49652e6f1b feat: management of API tokens via ACP
Julian Lam 8e89f34dbf fix: bad logic in group assertion middleware
Julian Lam 8e7baac6ef fix(writeapi): calls to profile editing routes 200 even if user DNE
Julian Lam 7757f965eb fix: errors thrown if no password sent in to profile edit route
Julian Lam 549ca11056 fix: bug where middlewares seemingly ran in parallel
Julian Lam 6096f74ab2 feat(writeapi): adding missing files
Julian Lam 4c833d0bf0 feat(writeapi): topic posting and replying
Julian Lam 40dc1c38d3 feat(writeapi): added DELETE /groups/:slug/membership/:uid route
Julian Lam 68ecf41ecf fix(writeapi): client-side group join API call
Julian Lam 952dc211dd feat(writeapi): added group joining and deletion
Julian Lam d044c3223e feat(writeapi): abstracted ajax calls out to new api module
Julian Lam ba345e53e8 feat(writeapi): added POST /api/v1/groups
Julian Lam 49994f3a15 fix(openapi): moved write-api to public/openapi
Julian Lam 3072de4812 feat: added DELETE /api/v1/categories/:cid route
Julian Lam e942ad8101 feat: added PUT /api/v1/categories/:cid route
Deprecated admin.categories.update socket call
Showing stack trace in console for errors, when in development mode
Julian Lam dc666fd8a9 feat: added POST /api/v1/categories route
Julian Lam a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes
Julian Lam db5c5b2cfb fix: follow route to match spec
Julian Lam b5bbcbaeaa feat: added POST and DELETE /api/v1/users/:uid/follow routes
Julian Lam 7aed174ebc feat: added PUT /api/v1/users/:uid/password route
Julian Lam a1ddc210b2 feat: added DELETE /api/v1/users/:uid and DELETE /api/v1/users
Julian Lam d15d9e4492 fix(refactor): patching helpers.tryRoute for API routes, some re-org
Thanks @barisusakli for the tip
Julian Lam d8879d21db fix: error handling with POST /api/v1/users
Julian Lam 58043e07ba fix: use POST call for user creation in ACP
- Not entirely sure about error handling yet, more research needed
- Also added socket method deprecation utility method
Julian Lam bba2a4638c fix: user creation POST route returns user data, updated openapi spec
Julian Lam 7b6d43bcc8 feat: added checkRequired middleware for API calls
Julian Lam fd67355b03 fix(writeapi): authenticate middleware logic to work better with await
Julian Lam f6433ef2c5 fix(refactor): merging write-api auth middlewares with core middlewares
Julian Lam ec5c48b188 feat: migrating write-api skeleton into core
Barış Soner Uşaklı 264818e517 fix: use proper api url
no need to parse all tags since https://api.github.com/repos/NodeBB/NodeBB/releases/latest gives the latest non-prerelease, non-draft releases
Barış Soner Uşaklı 8eb62e2210 fix: tests, get latest release tag recursively
psychobunny cdb794888d style: linting
Barış Soner Uşaklı ed092bf6b5 refactor: remove posts.tools.purge
moved the check to socketPosts.purge
Julian Lam dde5b6b814 fix: unable to register async method as response hook listener
Also fixes , /api/config now runs middleware.authenticateOrGuest
Barış Soner Uşaklı cb2f6f7c4a fix: test
Barış Soner Uşaklı 7bf6d3b8eb fix: dont let mods load postqueue for a cid they are not a mod of
Barış Soner Uşaklı 2ea9768e00 fix: show disabled categories in admin&mods
Barış Soner Uşaklı fbd85680fb fix: spec
Barış Soner Uşaklı 5d9a868142
feat: category filter on post queue ()
* feat: category filter on post queue

category filter module

* feat: add spec
psychobunny 7545951725 chore: refactor src/emailer.js
Peter Jaszkowiak 1aa336d837
refactor: shared constants ()
define plugin name and theme name regexs in one location for consistency

define various shared paths in one place for consistency
Barış Soner Uşaklı e60357d20d
feat: , add top/popular sections to digest email ()
Peter Jaszkowiak 55d5cccf2e
Document deprecations and remove old ones ()
* chore: document deprecation removal versions

* chore: remove deprecations 2+ versions old
Peter Jaszkowiak 017af63fb0
fix: , deprecate `plugin.json/library` ()
and also fix deprecated hooks with no alternative
psychobunny 5441651ea7 fix: update "install plugins" link to go to the download tab
Julian Lam 38f88fc563 fix: tags route is case sensitive, though tags are not
psychobunny f4d76f1edd feat: move service-worker.js into its own file
psychobunny 14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
Julian Lam 7f58e3ab09 fix: error on `reset -p` if plugin is not active
No need to throw error if plugin was not active, just silently OK
Renovate Bot 1e5621c049 fix(deps): update dependency sanitize-html to v2
psychobunny 9c5b690799 feat: up recommended size to 512x512 + ACP labels for PWA
psychobunny 6478b32d0e feat: upload maskable icon for PWA
Julian Lam b12e8d6312 feat: show top 5 trending plugins in new tab in Extend > Plugins
Julian Lam 07af621381 fix: typo in getCompatiblePlugins
psychobunny 54705cc432 fix: typo
psychobunny 5172d73137 feat: add theme-color meta tag for browser address bar
psychobunny f69697b3fa feat: basic service worker, minimum requirement for for a2hs; see
psychobunny 31528a5202 fix: manifest - use absolute URL for start_url
psychobunny 46800b6639 fix: prefer webmanifest extension over json
https://w3c.github.io/manifest/#media-type-registration
psychobunny 4fc84e9f5c chore: lint notifications.js
psychobunny 5b427a0c3b feat: option in ACP to configure notification/email delay for chats
Timothy Fike f85fe7faff
don't invite an already invited email ()
* don't invite an already invited email

* add email-invited translation string
Timothy Fike 5078a8df25
ttl/pttl ()
Barış Soner Uşaklı 16039b1117 refactor: post edit
psychobunny b6f2f0e5d0 fix: change owner modal's search should check if user is banned
Julian Lam 5ddf70221c feat: upon plugin installation via ACP, check against nbbpm first
Julian Lam 0fffe28941 fix: issue where the last flag filter could not be removed
Barış Soner Uşaklı 83d4e7efaa feat: add number of posters to topic
Julian Lam 81595095da feat: allow plugins to override tags and tag counts
Barış Soner Uşaklı bbf6889ecc fix: topic count on category page if filter is author
Barış Soner Uşaklı ac43cd8b6f fix: , trim email before checking validity
Barış Soner Uşaklı e72fe25920 fix: editing posts saving uncessary data
Barış Soner Uşaklı 4f14dc7a58 fix: , add bookmarks to intFields
Barış Soner Uşaklı af43f0e48e fix: , rename /api/me to /api/self
Julian Lam 43571bac38 feat: hotkey "/" to open ACP search
Barış Soner Uşaklı 22cd265434 fix: tests
Barış Soner Uşaklı 220297d501 fix: use correct topic count for category
Barış Soner Uşaklı 437424375e feat: expose calculateTopicPostCount and getChildrenTree
Julian Lam 4fca79380a fix: tests, because redis is TOO FAST
Julian Lam 29b357bc66 refactor: expose new method for appending moderation note
Barış Soner Uşaklı de824007d9 feat: allow custom req.query.filter on /unread /recent
Barış Soner Uşaklı 38d3982bf1 fix:
allow updating other profile fields when username isnt being changed
Barış Soner Uşaklı 4be693f2e7
feat: fullname search ()
* feat: fullname search

* fix: take last element

* fix: attempt to fix psql like query

* feat: upgrade sript, another fix attempt

* fix: psql test

* fix: psql scan

* feat: add debug for test

* feat: test collate

* feat: cleanup

* fix: upgrade script
Julian Lam 0891236142 fix: typo
Julian Lam 7e7366be13 fix: remove toolsVisible in post tools' menu [breaking]
Barış Soner Uşaklı 65d049c6f9 fix: tests
Barış Soner Uşaklı 2d5bd153e0 fix: check if unread_tids are followed
Barış Soner Uşaklı c1c617b323 feat: add topicIndex to category page
Barış Soner Uşaklı a78e1df965 fix: use text-right
Barış Soner Uşaklı 5a40d26b44 feat: , new move posts modal
Barış Soner Uşaklı a34b685c65 fix: remove lang keys, remove sounds menu
Barış Soner Uşaklı 5f10d67db5
Remove sounds ()
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
Barış Soner Uşaklı 4bace773f9 fix: wider widget area
Barış Soner Uşaklı 19c448612d feat: remove global RELATIVE_PATH
Barış Soner Uşaklı 46ab2711d4 fix: , add CSP frame-ancestors
Barış Soner Uşaklı 6fc31df033 feat: use const/let
Barış Soner Uşaklı 4588e52120 fix: allow setting maximumAboutMeLength to 0
psychobunny a38784f567 fix: additional commit for CF rocket loader
psychobunny 4d6659553b feat: allow nbb to work with cloudflare rocket loader 🚀
Barış Soner Uşaklı 53a5f1516e feat: move code
Barış Soner Uşaklı b6917b9dee feat: , dont send emails to unconfirmed addresses
Barış Soner Uşaklı 94da9fe55e feat: add partials/footer/js.tpl
add ajaxify.coldLoad which gets called from partials/footer/js.tpl
Barış Soner Uşaklı 4031a8cab1 fix: stack trace
Barış Soner Uşaklı 54b497258f feat: add missing name to profile image upload
Barış Soner Uşaklı b0a759223d feat: add action:user.removeCoverPicture
Barış Soner Uşaklı 962446a5ac feat: add user data to action:user.removeUploadedPicture
Barış Soner Uşaklı 9542ef1285 feat: add userData to action:user.delete
Barış Soner Uşaklı a263897627 fix:
Barış Soner Uşaklı 1e5981c0d6 feat: replace relative urls to absolute before sending email notifs
https://github.com/NodeBB/NodeBB/pull/8366/files
Julian Lam f743f92088
refactor: socket posts delete/restore/purge so tid is not necessary ()
* refactor: socket posts delete/restore/purge so tid is not necessary

* refactor: stop trying to be fancy

* fix: tests to not pass in tid into posts.deletePosts

* fix: some more unnecessary tid passing
Julian Lam 0c20351702 feat: additional sorting options for flags
+ upvotes, +downvotes, +replies
Barış Soner Uşaklı 896fe9d65e fix: don't crash on outdated redis instances
Julian Lam 0e58d2b866 fix: update post-queue hook names
Julian Lam 8cc36de284 feat: new filter hook prior to post queue addition
filter:post.queue
Julian Lam a9dfc9a74e feat: add replies to getPostSummaryByPids
Julian Lam e0c7d65a92 Revert "feat: add reply count to getPostSummaryByPids"
This reverts commit de0f4aadb8.
Julian Lam de0f4aadb8 feat: add reply count to getPostSummaryByPids
Barış Soner Uşaklı 9f9164a9be fix:
Julian Lam 56101ae5ae fix: ip-blacklist not working after
Kyle Farris 2b785628e7
fix: removed invalid options for the sendmail transport ()
* Removed invalid options for the sendmail transport that were causing Nodemailer to return the SMTPTransport instead.

* Removed options for rate limiting in admin email interface. Added new option for toggling whether to use pooled connections.
Julian Lam b6b94a56dc refactor: moved ip-blacklist and post-queue styles/tpls to themes
This is a breaking change!, re: 
Julian Lam a4dbbc3749 feat: sort dependencies alphabetically
... when merging from install/package.json

/cc @pitaj
Barış Soner Uşaklı 55533b11e5 fix: dupes in unread followed topics
Barış Soner Uşaklı 39f4bbaa0e fix: wrong data passed to getCategories
Barış Soner Uşaklı 354e6ccc66 feat: banning a user will resolve their post flags
Barış Soner Uşaklı 91d9333a50 fix: username, email history disappering if content was deleted
Julian Lam 840cb5105f fix: package-install clobbering scoped nodebb plugins
Julian Lam 4b0cb26b34 fix: empty "manage" menu showing in ACP
... if no privileges corresponding to those menu items
are given
Julian Lam cc2686057c fix: hide nodebb version in ACP for non-superadmins
Julian Lam cf2f1e956a refactor: changed way middleware was exported
Julian Lam f00595b32d fix: change how admin middlewares are exported
Julian Lam ae68a254d7 fix: one less return, to appease codeclimate
Julian Lam 03bd76dea2 fix: inability to access /admin if not superadmin
There was an odd issue where non-superadmins could not use
the /admin route to access the ACP, even though they had
appropriate access. For whatever reason, it could not
be reliably reproduced on my dev. As it turns out, the
reason was because I was checking the wrong privilege,
and my dev database had this wrong privilege leftover
from the initial development of the ACP admin privileges
feature. Dumb.

Anyhow, that fixes this issue.
Barış Soner Uşaklı 29e3ab247d fix: , fix old upgrade script
db.connect no longer exists at the root
Julian Lam 6521e4dac4 Revert "feat: expose global/admin privileges to all routes"
This reverts commit 4737f937ee.
Julian Lam 4737f937ee feat: expose global/admin privileges to all routes
@barisusakli revert if necessary 😬
Andrew Rodrigues 7daba7ddc1
fix:
Julian Lam 3efe2362e2 fix: sorting the flags list by newest is not considered a filter
... as it is default
Julian Lam 334be11382 fix: no-widgets messaging in ACP + copy
Julian Lam 346db0d84d feat: flags list sorting, closes
Julian Lam cabe62a06c fix: perPage not acting like a filter
Barış Soner Uşaklı 35a538ec2a feat: allow adding multiple users to group
Barış Soner Uşaklı f1e82b6441 feat: add filter:group.getOwnersAndMembers
Julian Lam 9c70b6620e feat: pass uid into filter:flags.list
Barış Soner Uşaklı 31c2b7d946 fix:
Julian Lam 2adae87949 fix: progress bar clobbering upgrade script name
Julian Lam ac75c9a052 fix: tweak upgrade script progress bar to only update 100 times in total
Julian Lam 80a2a700ce fix: navigation title unescape upgrade script tweak
Julian Lam 7456a0e34e fix: new language key for error handling
Julian Lam de8eebbd7c fix: upgrade scripts not run properly if schemaDate is present
Only affected VERY old installs that don't use schemaLog
Barış Soner Uşaklı 0189945996 refactor: remove util.promisify calls
Barış Soner Uşaklı bfaf648ec3 fix: , catch errors from admin check
Barış Soner Uşaklı 326827382a fix: upgrade script for 1.15.0
Barış Soner Uşaklı 846b7d2430 refactor: change pwd change logic
add one more test
Julian Lam 16cee1b03b fix: improper targetUid check during password change
Julian Lam 0903eb4b8c feat: limit privileges column to superadmins only
Peter Jaszkowiak 1d170e0c1c
fix: , remove old deps during upgrade ()
Julian Lam 12edd18b46 feat: use nodebb-scoped bootswatch
closes 
Barış Soner Uşaklı 6e91885836 feat: use assetBaseUrl instead of hardcoding
Barış Soner Uşaklı 3f01f4a2b8 Revert "feat: load timeago strings client-side"
This reverts commit 558a2d739c.