2379 Commits (df8ea4bad3af3561703c2948e06114af04a0c7af)

Author SHA1 Message Date
Julian Lam 1cd2689cf6 refactor(api): deprecated groups update socket in favour of API lib 4 years ago
Julian Lam 438fa5c88f fix: send fewer items to client-side for ACP settings/email page 4 years ago
Barış Soner Uşaklı 4404e32ed9 fix: #9117, lower query before search 4 years ago
Barış Soner Uşaklı 8f938eba19 fix: #9074, fix svg uploads 4 years ago
Julian Lam ab98740821 fix: #9100 topic thumbs in OG image tags 4 years ago
Barış Soner Uşaklı 80de572aa1 feat: add user.email.confirmByUid for sso plugins 4 years ago
Julian Lam bd5c4a5cff fix: tests 4 years ago
Julian Lam 3e54b70c06 fix: #9092, Topic thumbnails do not work with third-party uploaders 4 years ago
Julian Lam a30c8ab5c8 feat: clent-side modal for managing topic thumbs
closes #9087
4 years ago
Julian Lam 67cf5e83b7 fix: changes to thumb resizing logic
- Resized thumb no longer skews aspect ratio
- Thumbs resized down to maximum thumb size by WIDTH only
- image.checkDimensions() now returns dimensions
4 years ago
Julian Lam c043cfebd6 fix: added back missing topic thumb tests that were removed in last commit 4 years ago
Julian Lam 340387c18a fix: #9055, non-standard API response from addThumbs route
Also removed old thumb upload router handler, and updated uploadPost handling in composer to match new response schema
4 years ago
Julian Lam 5950683316 feat: closes #9048, tests for topic thumbs routes, write API schema 4 years ago
Julian Lam 4152aa552e feat: tests for topic thumbs
Also added some error checking to addThumbs controller
4 years ago
Julian Lam ef7d6db912 feat: server-side work for #9047
- rename Thumbs.commit to Thumbs.migrate
- new PUT method that calls Thumbs.migrate
- `checkThumbPrivileges` now takes a single object parameter (ins. of req/res)
4 years ago
Julian Lam b5d910f53b feat: core work for #9042, thumb deletion now accepts uuids
+ common data validation for thumb addition and deletion
4 years ago
Julian Lam 90497e3ef5 feat: more work on topic thumbs refactor
- addThumb and deleteThumb are now protected routes (duh)
- new getThumbs route GET /api/v3/topics/<tid>/thumbs
- Updated `assert.path` middleware to better handle if relative paths are received with upload_url
- Slight refactor of thumbs lib to use validator to differentiate between tid and UUID
4 years ago
Julian Lam 708b1c338f fix: #9040 4 years ago
Julian Lam 7e9e08f718 feat: server-side routes for handling multiple topic thumbnails
closes #8994, requires 'topic-thumb-refactor' branch of composer-default
4 years ago
Julian Lam 98cd9e3549 feat: allow uploadThumb controller to be called in code
it, and uploadsController.upload() now return the results of their operation
4 years ago
Julian Lam efa4eca0fe fix: #9045, no post usage info if '/files/' path received 4 years ago
Barış Soner Uşaklı d2888d1d1f
Category tags (#8938)
* feat: wip category tags

* fix: tag search

* feat: remove debug

* fix: returns of searchTags and autocomplete

* fix: alpha sort

* fix: redis

* fix: delete zsets on category purge, fix another test

* fix: test
4 years ago
Barış Soner Uşaklı 648f6215ef fix: redirect external with absolute urls 4 years ago
Barış Soner Uşaklı 458bfc0faf fix: external path for subfolder installs 4 years ago
Barış Soner Uşaklı 64ac483ddd fix: #9032 4 years ago
Barış Soner Uşaklı 5d00b0895b fix: sso redirect on /login & /api/login 4 years ago
Barış Soner Uşaklı 6f68f4d20a fix: #9032, fix login redirect for sso plugins 4 years ago
Barış Soner Uşaklı 5f0f476b57 feat: #9005, use timestamp in profile/cover images
delete current one if keepAllUserImages is turned off
fix typo in data
4 years ago
Barış Soner Uşaklı 954dc5b7be feat: #8983, update pin tooltip in topic 4 years ago
Barış Soner Uşaklı 1eb5fabdb1 feat: #8900, postQueue setting for category 4 years ago
Barış Soner Uşaklı 202dcef42e fix: #9010, show rest of info even if clusterMonitor priv is not granted 4 years ago
Julian Lam acb576662e fix(spec): from 6e6a7a8f8a 4 years ago
Barış Soner Uşaklı 6e6a7a8f8a fix: #8969, export csv to file 4 years ago
Julian Lam 007a3258a0 feat: add handler for 501 api response 4 years ago
Barış Soner Uşaklı bf171adc83 fix: #8979 4 years ago
Julian Lam 1e7cf1cbc4 fix: #8971, disallow flags of privileged users (mods, gmods, admins) 4 years ago
Barış Soner Uşaklı b8cafefce2 fix: winston usages 4 years ago
Julian Lam 906d7d734b refactor: move API banned response handler to separate internal method 4 years ago
Julian Lam afb26bfe48 feat: show ban reason and expiry in write api responses, if user is banned 4 years ago
Julian Lam 6e5ec3f895 feat: automatically unban users in onSuccessfulLogin
This allows write API (and probably SSO login) to go through unimpeded if a user's ban has expired. Closes nodebb/nodebb-plugin-write-api#126
4 years ago
Barış Soner Uşaklı 77f0bff54f fix: #8929, fix popular, top rss feed urls 4 years ago
Barış Soner Uşaklı b18e7e319b fix: spec 4 years ago
Barış Soner Uşaklı 3f337b5d7c feat: #8925, #8924 4 years ago
Barış Soner Uşaklı 5fa098326f fix: https://github.com/NodeBB/NodeBB/pull/8685
fix category link redirect on cold load
fix helpers.redirect if passed in url is external
fix ajaxify so it doesn't slice first character of external url
4 years ago
Barış Soner Uşaklı 9ee1fb490e fix: https://github.com/NodeBB/NodeBB/pull/8759 4 years ago
Barış Soner Uşaklı 672d4da078 feat: human readable uptime 4 years ago
Julian Lam 6e2da9966e refactor: move plugin hook methods to plugin.hooks.* 4 years ago
Julian Lam 046d0b1637
feat: allow pins to expire (if set) (#8908)
* fix: add back topic assert middleware for pin route

* feat: server-side handling of pin expiries

* refactor: togglePin to not require uid parameter [breaking]

* feat: automatic unpinning if pin has expiration set

* feat: client-side modal for setting pin expiration

* refactor: categories.getPinnedTids to accept multiple cids

... in preparation for pin expiry logic, direct access to *:pinned zsets is discouraged

* fix: remove references to since-removed jobs file for topics

* feat: expire pins when getPinnedTids is called

* refactor: make the togglePin change non-breaking

The 'action:topic.pin' hook now sends uid again, as before. However, if it is a system action (that is, a pin that expired), 'system' will be sent in instead of a valid uid
4 years ago
Barış Soner Uşaklı 8d060065a0 fix: spec 4 years ago
Barış Soner Uşaklı e9585b9be2 fix: group userTitles translation escapes 4 years ago
Julian Lam a0b7a82350
feat(api): account deletion routes for the Write API (#8881)
* feat(api): account deletion routes for the Write API

* refactor: rewrite client-side calls to account deletion to use api

* style: apply DRY
4 years ago
Barış Soner Uşaklı 120999bf63 feat: #7550, show message if post is queued when js is disabled 4 years ago
Barış Soner Uşaklı 35f932cd64 feat: #8171, add oldCategory if topic is moved 4 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 4 years ago
Julian Lam e1d7c4d8aa fix: internal helper method hasGlobalPrivilege, DRY 4 years ago
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance (#8786)
* feat: allow invites in normal registration mode + invite privilege

* feat: select groups to join from an invite

* test: check if groups from invitations have been joined

* fix: remove unused variable

* feat: write API versions of socket calls

* docs: openapi specs for the new routes

* test: iron out mongo redis difference

* refactor: move inviteGroups endpoint into write API

* refactor: use GET /api/v3/users/:uid/invites/groups

Instead of GET /api/v3/users/:uid/inviteGroups

* fix: no need for /api/v3 prefix when using api module

* fix: tests

* refactor: change POST /api/v3/users/invite

To POST /api/v3/users/:uid/invites

* refactor: make helpers.invite awaitable

* fix: restrict invite API to self-use only

* fix: move invite groups controller to write api, +tests

* fix: tests

Co-authored-by: Julian Lam <julian@nodebb.org>
4 years ago
Barış Soner Uşaklı e4d2764d4c fix: #8884, remove header/footer cache 4 years ago
Barış Soner Uşaklı 5598130a92 refactor: async/await controllers/index.js 4 years ago
Barış Soner Uşaklı f14e42d8bc fix: #8883 4 years ago
Barış Soner Uşaklı 51b7eca119 fix: run every hour, dont show message if average_time is 0 4 years ago
Opliko 04f4429f72
Resolve #7514 - optional timer for registration queue (#8796)
* feat: #7514 Optional timer for registration queue

* feat: show minutes in average time

* fix: don't show total number of minutes

* feat: implement requested changes

* fix: just store minutes instead of milliseconds

* feat: set default values
4 years ago
Barış Soner Uşaklı 567c5f2056 fix: #8869, dont escape category title,description twice 4 years ago
Julian Lam f300c933a5 refactor: move session revocation route to write api 4 years ago
Barış Soner Uşaklı 2e44639210 fix: guest header/footer cache
allow clearing individual caches
4 years ago
Barış Soner Uşaklı f1f9b225b0
feat: #8824, cache refactor (#8851)
* feat: #8824, cache refactor

ability to disable caches
ability to download contents of cache
refactor cache modules to remove duplicated code

* fix: remove duplicate hit/miss tracking

check cacheEnabled in getUncachedKeys
4 years ago
Julian Lam d263192271 feat: group exists API call in write api 4 years ago
Julian Lam 1446cec77f feat: user exist route in write api 4 years ago
Julian Lam 6b196a207f fix: permanent redirect on user api redirect shorthand 4 years ago
Julian Lam 60e1e99b4f feat: new shorthand route /api/v3/users/bySlug/:userslug
closes #8844
4 years ago
Julian Lam 512f6de6de
feat: allow passwords with length > 73 characters (#8818)
* feat: allow passwords longer than 73 characters

Context: A bcrypt/blowfish limitation means that password length is capped at 72 characters. We can get around this without compromising on security
by hashing all incoming passwords with SHA512, and then sending that to bcrypt.

https://dropbox.tech/security/how-dropbox-securely-stores-your-passwords

* feat: add additional test for passwords > 73 chars

* fix: remove 'password-too-long' error message and all invocations

* test: added test to show that a super long password won't bring down NodeBB

* fix: remove debug log

* Revert "fix: remove 'password-too-long' error message and all invocations"

This reverts commit 1e312bf7ef7e119fa0f1bd3517d756ca013d5e79.

* fix: added back password length checks, but at 512 chars

As processing a large string still uses a lot of memory
4 years ago
Barış Soner Uşaklı c61dee4b62 fix: #8840, don't crash if /compose route is called with no query params 4 years ago
Barış Soner Uşaklı 9e3eb5d41a feat: #8821, allow guest topic views 4 years ago
Julian Lam 891a1ea2af fix: #8827, do not require admin:users privilege to ban users 4 years ago
Julian Lam c0f699e655 fix: disallow registration attempts with password length > 4096
This is a stopgap measure for v1.15.0
4 years ago
Barış Soner Uşaklı 6e85920cb6 feat: allow mods/admins to see deleted posts on user profile 4 years ago
Julian Lam 266d7587b2 refactor: remove usage of middlewares
Specifically, middleware.isAdmin|exposePrivilegeSet|exposePrivileges
4 years ago
Julian Lam aa8faf58a0 refactor: remove /users/{uid}/settings/{setting} route
@baris Also, I am now allowing the following properties to be saved in User.saveSettings:
- categoryTopicSort
- topicPostSort
- setCategorySort
- setTopicSort
4 years ago
Julian Lam 618e098305 fix: bug where token generation route would fail on null case 4 years ago
Barış Soner Uşaklı a05905f196
performance improvements (#8795)
* perf: nconf/winston/render

cache nconf.get calls
modify middleware.pageView to call next earlier
don't call winston.verbose on every hook see https://github.com/winstonjs/winston/issues/1669
translate header/footer separately and cache results for guests

* fix: copy paste fail

* refactor: style and fire hook only log in dev mode

* fix: cache key, header changes based on template

* perf: change replace

* fix: add missing await

* perf: category

* perf: lodash clone

* perf: remove escapeRegexChars
4 years ago
Barış Soner Uşaklı a7b6d0dfe5 feat: add free and total mem usage to info 4 years ago
Julian Lam c26f2b6599 feat(writeapi): user settings API 4 years ago
Barış Soner Uşaklı 7bddec93ec fix: sortby 4 years ago
Barış Soner Uşaklı b3619d3d47
fix: #8774 4 years ago
Barış Soner Uşaklı d9a16855d0 refactor: posts api 4 years ago
Barış Soner Uşaklı 272e73da53 refactor: post restore/delete/purge 4 years ago
Barış Soner Uşaklı 9738e20207 refactor: merge post.edit
fix: dont fadeout/fadeint if title/post didnt change
4 years ago
Barış Soner Uşaklı 2279e37261 refactor: deprecate socket.emit('users.search') use api route 4 years ago
Barış Soner Uşaklı 083c74e059 refactor: api categories 4 years ago
Barış Soner Uşaklı e78c498e84 fix: missing doTopicAction, fix wrong api params 4 years ago
Barış Soner Uşaklı bc880ee0ca refactor: remove sockets.reqFromSocket 4 years ago
Julian Lam 9ee3cb9b62 refactor: topic follow/ignore to use api lib 4 years ago
Julian Lam 68d6818bca refactor: topic tools' actions to use api lib 4 years ago
Julian Lam 21974a77f8 feat: topic reply to use api lib (also + missing file) 4 years ago
Julian Lam 40598b368e refactor: topic creation to use api lib 4 years ago
Julian Lam ede9435f0e feat: send 401 for invalid-uid 4 years ago
Julian Lam 14f9d8b0e5 feat: send back 403 on no-privileges error 4 years ago
Julian Lam 2d252f2fa4 refactor: user bans to use api lib 4 years ago
Barış Soner Uşaklı e367c5403e refactor: move groups.leave, fix some tests 4 years ago
Barış Soner Uşaklı bbbd9fee85 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
Julian Lam 960e925e40 refactor: change password/user follow to use api lib 4 years ago
Barış Soner Uşaklı 081c4fa6d4 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
Julian Lam 430e7f5834 refactor: user deletion to use api lib 4 years ago
Barış Soner Uşaklı 8ae1f81cf4 feat: refactor groups.delete 4 years ago
Julian Lam 31ae8a8323 refactor: socket profile update to use api lib 4 years ago
Barış Soner Uşaklı d69e503d21 feat: move groups.join to api 4 years ago
Julian Lam 23086daead refactor: user create and profile update to use api lib 4 years ago
Barış Soner Uşaklı 5e2caf19f5 refactor: use single function for api code 4 years ago
Barış Soner Uşaklı 25e4a09816 Merge branch 'master' of https://github.com/NodeBB/NodeBB 4 years ago
Barış Soner Uşaklı 4418ff0716 fix: #8768 4 years ago
Julian Lam cc6e995ee2 fix: api bug where user profile editing continued even if not allowed 4 years ago
Barış Soner Uşaklı e6ea71c95a fix: test 4 years ago
Barış Soner Uşaklı 8c6a559188 fix: timestamp 4 years ago
Barış Soner Uşaklı 331d236f6e fix: #8763 4 years ago
Barış Soner Uşaklı a481024d27 fix: lastonline again 4 years ago
Barış Soner Uşaklı 97628e2ff2 fix: lastonline values 4 years ago
Barış Soner Uşaklı 59bbede8c7 fix: cant join system groups 4 years ago
Barış Soner Uşaklı a411df1321 fix: tests 4 years ago
Barış Soner Uşaklı a2edb86dfb feat: change user search to use filters array 4 years ago
Barış Soner Uşaklı 959314c921 feat: add filter 4 years ago
Barış Soner Uşaklı 682e926c6b feat: #8662, verified/unverified user groups 4 years ago
Barış Soner Uşaklı 700e1e4340 feat: more fixes 4 years ago
Barış Soner Uşaklı 40a05b70ef feat: more work 4 years ago
Barış Soner Uşaklı b038ac07d8 feat: wip admin/users 4 years ago
Barış Soner Uşaklı 30d6a2b84e fix: #8756, pass missing req to mock 4 years ago
Barış Soner Uşaklı dc29f4dca2 refactor: switch to using slugify module 4 years ago
Julian Lam 4a63c20a72 chore: some optimizations for codeclimate 4 years ago
Julian Lam f870721fca feat(writeapi): file deletion route 4 years ago
Julian Lam a55b381791 feat(writeapi): admin settings update route 4 years ago
Julian Lam 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates 4 years ago
Julian Lam 0973feea16 feat(writeapi): post bookmarking 4 years ago
Julian Lam 9942c248eb feat(writeapi): post voting 4 years ago
Julian Lam 5e2a3ea6ec refactor(writeapi): post.tools.purge no longer a method 4 years ago
Julian Lam 414169fdfa feat(writeapi): post delete/restore/purge 4 years ago
Julian Lam f66c2fb60f feat(writeapi): post editing 4 years ago
Julian Lam 1605e5e443 feat(writeapi): topic tags 4 years ago
Julian Lam 9be5629458 feat(writeapi): topic follow/ignore 4 years ago
Julian Lam da25ce4d09 feat: topic delete/restore/purge/(un)pin/(un)lock 4 years ago
Julian Lam 49652e6f1b feat: management of API tokens via ACP 4 years ago
Julian Lam 7757f965eb fix: errors thrown if no password sent in to profile edit route 4 years ago
Julian Lam 6096f74ab2 feat(writeapi): adding missing files 4 years ago
Julian Lam 4c833d0bf0 feat(writeapi): topic posting and replying 4 years ago
Julian Lam 40dc1c38d3 feat(writeapi): added DELETE /groups/:slug/membership/:uid route 4 years ago
Julian Lam 68ecf41ecf fix(writeapi): client-side group join API call 4 years ago
Julian Lam 952dc211dd feat(writeapi): added group joining and deletion 4 years ago
Julian Lam d044c3223e feat(writeapi): abstracted ajax calls out to new api module 4 years ago
Julian Lam ba345e53e8 feat(writeapi): added POST /api/v1/groups 4 years ago
Julian Lam 3072de4812 feat: added DELETE /api/v1/categories/:cid route 4 years ago
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
4 years ago
Julian Lam dc666fd8a9 feat: added POST /api/v1/categories route 4 years ago
Julian Lam a5af2dc819 feat: added PUT/DELETE /api/v1/users/:uid/ban routes 4 years ago
Julian Lam b5bbcbaeaa feat: added POST and DELETE /api/v1/users/:uid/follow routes 4 years ago
Julian Lam 7aed174ebc feat: added PUT /api/v1/users/:uid/password route 4 years ago
Julian Lam a1ddc210b2 feat: added DELETE /api/v1/users/:uid and DELETE /api/v1/users 4 years ago
Julian Lam d15d9e4492 fix(refactor): patching helpers.tryRoute for API routes, some re-org
Thanks @barisusakli for the tip
4 years ago
Julian Lam f6433ef2c5 fix(refactor): merging write-api auth middlewares with core middlewares 4 years ago
Julian Lam ec5c48b188 feat: migrating write-api skeleton into core 4 years ago
Barış Soner Uşaklı cb2f6f7c4a fix: test 4 years ago
Barış Soner Uşaklı 7bf6d3b8eb fix: dont let mods load postqueue for a cid they are not a mod of 4 years ago
Barış Soner Uşaklı 2ea9768e00 fix: show disabled categories in admin&mods 4 years ago
Barış Soner Uşaklı fbd85680fb fix: spec 4 years ago
Barış Soner Uşaklı 5d9a868142
feat: category filter on post queue (#8710)
* feat: category filter on post queue

category filter module

* feat: add spec
4 years ago
Peter Jaszkowiak 1aa336d837
refactor: shared constants (#8707)
define plugin name and theme name regexs in one location for consistency

define various shared paths in one place for consistency
4 years ago
Peter Jaszkowiak 55d5cccf2e
Document deprecations and remove old ones (#8706)
* chore: document deprecation removal versions

* chore: remove deprecations 2+ versions old
4 years ago
Julian Lam 38f88fc563 fix: #8699 tags route is case sensitive, though tags are not 4 years ago
psychobunny 6478b32d0e feat: upload maskable icon for PWA 4 years ago
Julian Lam b12e8d6312 feat: show top 5 trending plugins in new tab in Extend > Plugins 4 years ago
Julian Lam 07af621381 fix: typo in getCompatiblePlugins 4 years ago
psychobunny 31528a5202 fix: manifest - use absolute URL for start_url 4 years ago
Julian Lam 0fffe28941 fix: issue where the last flag filter could not be removed 4 years ago
Barış Soner Uşaklı 22cd265434 fix: tests 4 years ago
Barış Soner Uşaklı 220297d501 fix: use correct topic count for category 4 years ago
Barış Soner Uşaklı de824007d9 feat: allow custom req.query.filter on /unread /recent 5 years ago
Barış Soner Uşaklı 4be693f2e7
feat: fullname search (#8641)
* 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
5 years ago
Julian Lam 0891236142 fix: typo 5 years ago
Barış Soner Uşaklı c1c617b323 feat: add topicIndex to category page 5 years ago
Barış Soner Uşaklı 5f10d67db5
Remove sounds (#8617)
* feat: remove sounds

* feat: remove more sounds

* feat: disable sounds plugin

* fix: openapi
5 years ago
Julian Lam 0c20351702 feat: additional sorting options for flags
+ upvotes, +downvotes, +replies
5 years ago
Julian Lam 0e58d2b866 fix: update post-queue hook names 5 years ago
Julian Lam b6b94a56dc refactor: moved ip-blacklist and post-queue styles/tpls to themes
This is a breaking change!, re: #8580
5 years ago
Julian Lam 3efe2362e2 fix: sorting the flags list by newest is not considered a filter
... as it is default
5 years ago
Julian Lam 346db0d84d feat: flags list sorting, closes #8569 5 years ago
Julian Lam cabe62a06c fix: #8568 perPage not acting like a filter 5 years ago
Barış Soner Uşaklı 0189945996 refactor: remove util.promisify calls 5 years ago
Julian Lam 0903eb4b8c feat: limit privileges column to superadmins only 5 years ago
Julian Lam 9adaccd036 feat: +assetBaseUrl, -l10BaseUrl, -requireBaseUrl
Additional base URLs were necessary for benchpress and translator,
and in order to not clutter the API response with needless one-
time use base URLs, I decided to use a single base that is used
by all of the services, assetBaseUrl.
5 years ago
Julian Lam 9e3fd0e479 Revert "feat: #8493, plugin helper for standardised link/button injection"
This reverts commit 0bbb813e4b.
5 years ago
Sam Thompson 0bbb813e4b feat: #8493, plugin helper for standardised link/button injection 5 years ago
Julian Lam 9f3b78118a fix: send hard 404 instead of soft 404 for missing modules
We used to send a soft 404 because require.js would error out on
a 404, but it seems years ago, error handling was added to the
require() call, so a hard 404 will not throw errors to the console
5 years ago
Julian Lam 68f8d6e3a1 fix: #8549 send 308 Permanent Redirect on topic/category shortlinks 5 years ago
Julian Lam def16f9e97 feat: introduce overridable l10nBaseUrl config value 5 years ago
Barış Soner Uşaklı 2c35d0ba87 refactor: change incrementViewCount and markAsRead to async/await 5 years ago
Barış Soner Uşaklı dfabd0a3fe feat: remove administrator property from public routes 5 years ago
Barış Soner Uşaklı fb7bb8d400 feat: use category selector in category page
fix privilege shortcuts in group page after search
5 years ago
Barış Soner Uşaklı 91411cc47c feat: add privileges shortcut to groups list
fix issues with escape group names
5 years ago
Barış Soner Uşaklı c4829fd8c2 feat: allow changing requirejs base url 5 years ago
Barış Soner Uşaklı bbc7737e14 feat: ability to clear cache from acp 5 years ago
Barış Soner Uşaklı 69fb15276c fix: tests 5 years ago
Barış Soner Uşaklı 8d8117ffa1 feat: reduce amount of data loaded on acp admin page
get rid of socket call and use ajaxify.data.categories
5 years ago
Barış Soner Uşaklı 5e5815f051 fix: #8515, fix login redirect on subfolder 5 years ago
Barış Soner Uşaklı fd4c3cda42 fix: #4695, remove new notif alert 5 years ago
Barış Soner Uşaklı 37e56d94ce feat: series upload 5 years ago
Barış Soner Uşaklı 4eae927d14 feat: remove deprecated hooks 5 years ago
psychobunny a6ae69737b Merge branch 'master' of https://github.com/NodeBB/NodeBB 5 years ago
psychobunny 2c83278f97 feat: quick access dropdown on groups page to access privileges page 5 years ago
Barış Soner Uşaklı 844f2b4ed0 feat: #8524, allow editing category of queued topic 5 years ago
Barış Soner Uşaklı 7260646d6c fix: #8500, allow regular users select topics on unread 5 years ago
Barış Soner Uşaklı 23a9a334cd feat: short more info 5 years ago
Barış Soner Uşaklı 00d39fb32c feat: #8460, export groups members as csv 5 years ago
Barış Soner Uşaklı 3dcf538773 feat: #8023, allow wildcard search for uid/email 5 years ago
Barış Soner Uşaklı 658dd03b03
feat: add tools to recent/unread (#8477)
* feat: add tools to recent/unread

* fix: open api spec

* fix: more api spec
5 years ago
Barış Soner Uşaklı ac6b571ed5 fix: dont allow searching by email/ip if not privileged 5 years ago
Barış Soner Uşaklı 59a2ace6f7 fix: only add blocksCount for self and admins 5 years ago
Barış Soner Uşaklı fd20e5c62c fix: tests 5 years ago
Barış Soner Uşaklı eb9704f85e feat: #8450, next/prev link tags on /unread /recent 5 years ago
Barış Soner Uşaklı 2355d9d5dd fix: escape navigation item fields, theme:id, category fields 5 years ago
Barış Soner Uşaklı 023de94ef8 fix: show controls @julianlam 5 years ago
Barış Soner Uşaklı e53a18f219 fix: #8437, #8433 5 years ago
Barış Soner Uşaklı 8383992dcc feat: move export functions into child processes 5 years ago
Barış Soner Uşaklı e80379dc0e feat: display stack trace on winston.error 5 years ago
Julian Lam 35a06a8419 feat: #8412 breadcrumbs for ip-blacklist/post queue/flags 5 years ago
Barış Soner Uşaklı 53a9517d54 fix: crash in export posts if post content is undefined 5 years ago
Julian Lam 4acb3fb210 feat: #8387 expose global and admin privs to flags detail page 5 years ago
Julian Lam a82e9bd7f6
feat: privileges for Admin Control Panel (#8355)
* feat: acp privileges (WIP)

* fix: restore global privilege hooks

* refactor: using cid 0 in admin privs

* fix: no need for zebrastripe-reset

* feat: manage:categories privilege WIP

* feat: renamed prefix to admin:, settigns and dashboard privs

* fix: nofocus on acp privs group find modal

* refactor: privileges.x.get() to not used hardcoded privs

* fix: crash if unable to get latest version

* feat: setting acp priv

* Revert "fix: crash if unable to get latest version"

This reverts commit afdb235f48eb0072d88de45f3a1e0151281095b3.

* feat: user/privilege acp privs

* fix: category selector in manage/privileges

* fix: guests potentially becoming admins

* fix: bug in setting admin privs

* fix: some last minute things + api docs

* fix: some more last minute fixes
5 years ago
Barış Soner Uşaklı 3a078f59ec fix: tests 5 years ago
Barış Soner Uşaklı 1b5d5425b4 fix: handle search tag permission as well 5 years ago
Barış Soner Uşaklı 2100a03c1a refactor: change name to privileges to match other apis 5 years ago
cryptoethic f6b92d241a
fix: checking correct permissions for user search (#8371)
* fix: checking correct permissions for user search

* fix: missing permissions porperty in openapi /api/search
5 years ago
Barış Soner Uşaklı 842b8abb84
feat: add buildHeaderAsync (#8367)
* feat: add buildHeaderAsync

make helphers.notAllowed async

* fix: remove csrf from buildHeader

* fix: remove unused method, use middleware

* fix: /post/pid redirect doesn't need buildHeader

use buildHeaderAsync
5 years ago
Julian Lam 922d49be0b fix(style): switch..case 5 years ago
Julian Lam 0633ad3277 fix: acp menu items
- Shuffled items in settings
- Moved post-queue and ip-blacklist to front-end
- Removed Settings > Sockets, merged with Settings > Advanced
5 years ago
Julian Lam a51fff8bd1
refactor: remove general menu from ACP (#8347)
* refactor: remove general menu from ACP

* fix: incorrect translation keys, fixed tests
5 years ago
Barış Soner Uşaklı 5781a2dc65
feat: fix session mismatch errors by clearing cookie on logout (#8338)
* feat: fix session mismatch errors by clearing cookie on logout

* feat: remove app.upateHeader

ported from 2.0

* feat: handle if user doesn't click button and just refreshes page
5 years ago
Barış Soner Uşaklı 0a31e3e6b0 fix: #8320, dont load moderators separately for each category 5 years ago
Barış Soner Uşaklı 7f24200c73 feat: add folder to filter:uploadImage and filter:uploadFile 5 years ago
Julian Lam 6f504c4142
Remove allowFileUploads ACP option (#8324)
* feat: allow awaitable upgrade scripts

* feat: allowFileUploads removal upgrade script

* refactor: remove unnecessary ACP option `allowFileUploads`

* fix: updated upgrade script template to not use callback arg

* fix: upgrade script as per @baris

* fix: add missing await

* fix: add missing await
5 years ago
Barış Soner Uşaklı 8bf980cb63 fix: tests, handle no sessions 5 years ago
Barış Soner Uşaklı 5fd81c5c04 fix: check privileges before exporting post/topic data 5 years ago
Barış Soner Uşaklı f0323b6cfa feat: closes #8316, add more data to export profile 5 years ago
Barış Soner Uşaklı dfae664e29 fix: exporting posts 5 years ago
Barış Soner Uşaklı bdda022238 fix: undefined uid when downloading posts 5 years ago
Barış Soner Uşaklı 1ba6929cb3 fix: #8311, fix allowUserHomePage value
was always sending 1 even if allowUserHomePage was disabled in acp
5 years ago
Barış Soner Uşaklı c47a1c4df4 fix: convert cids to string for comparison 5 years ago
Barış Soner Uşaklı 337be368eb fix: category selector disabled categories 5 years ago
Barış Soner Uşaklı aad0880f7c feat: add filter:categories.getRecentTopicReplies
pass req.query to getRecentTopicReplies
5 years ago
Barış Soner Uşaklı 7d08184372 fix: winston showing json object 5 years ago
Barış Soner Uşaklı 9839346ec3 fix: #8290, if there are no filters go to ?reset=1
dont count ?page=1 as a filter
5 years ago
Barış Soner Uşaklı 0c7c70edaf fix: crash in topic controller 5 years ago
psychobunny fe03effe7d Revert "fix: crash when res.locals.linkTags is undefined"
This reverts commit 7cab2b0fea.
5 years ago
Andrew Rodrigues 7cab2b0fea
fix: crash when res.locals.linkTags is undefined 5 years ago
Julian Lam ccc6118d30
Testing suite integration for openapi spec (#8263)
* feat: testing suite integration for openapi spec

The testing suite now takes the openapi spec into account. It will
check each route defined, make a call to it, and compare the
response with the defined schema. Any mismatches will cause the
test to fail.

* fix(openapi): removed debug stuff from tests

* fix(openapi): fixed some tests

* fix(openapi): added additional check to tests, test fixes

* fix(openapi): better tests, fixed spec errors

* fix(openapi): bad conditional in test

* fix: oops

* fix(openapi): more tests fixing

* fix(openapi): more tests

* fix(openapi): fix some more tests

* fix: verbose'd an info log

* fix: topic pagination route returns schema-optimized pagination block

* fix(openapi): more test/spec fixes

* fix(openapi): accidentally sending in authenticated jar for anon routes

* fix(openapi): more test/spec fixes

* fix(openapi): more spec fixes

* fix: timestampReadable Invalid Date

* fix(openapi): more tests... almost there

* fix(openapi): more tests fixing

* fix(openapi): finally all tests passing

* fix(openapi): added reverse test to compare response to spec

... and fixed all the tests that broke

* fix: remove tests related to group covers, as route is gone

* fix(openapi): broken test on travis

* fix(openapi): broken test on travis

* fix(openapi): broken test on travis

* fix(openapi): object cache is not present for psql

* fix: tests

Co-authored-by: Barış Soner Uşaklı <barisusakli@gmail.com>
5 years ago
Opliko 6e5ebb6184
feat: manifest.json improvements from #8126 (#8264)
* feat: manifest.json improvements from #8126

* Fix short title placeholder

* use lowercase letters for hex colors
5 years ago
Julian Lam ef52461fb6 fix: remove dead picture upload code #8260 5 years ago
Barış Soner Uşaklı c7ea84a2ae fix: wrong data returned in available.groups 5 years ago
Julian Lam f2f6fbf15a fix: #8232, unresolvable session mismatch on register cancel 5 years ago
Barış Soner Uşaklı e93578b81d fix: hookname 5 years ago
Barış Soner Uşaklı 0d1b5a7fb1 fix: #8230, add hook getUserDataByUserSlug 5 years ago
psychobunny 15d6975e96 fix: ignore case for group details route 5 years ago
Barış Soner Uşaklı 23571224b5 feat: add parent cids to body class 5 years ago
Barış Soner Uşaklı 071506eb7d fix: invite properly 5 years ago
Barış Soner Uşaklı 8f4b99a41c fix: admins not seeing invite button 5 years ago
Barış Soner Uşaklı 5e91a67e78 feat: add user ip to admin/dev/info 5 years ago
Barış Soner Uşaklı f23bc347b1 fix: #8156 dont allow loading members from hidden groups 5 years ago
Barış Soner Uşaklı a5ef6b53b8 fix: admin relogin 5 years ago
Julian Lam 111ed802cf fix: onSuccessfulLogin not working
In scenarios where onSuccessfulLogin was not called in the SSO plugin,
core's calling of onSuccessfulLogin was prematurely returning, because
it was checking the wrong value.

This commit fixes the issue by checking a different value.
5 years ago
Baris Usakli 4eb9652a2a fix: #8112, don't crash hook returns no data 5 years ago
Barış Soner Uşaklı e06c1bfcd2 fix: escape config.userLang/acpLang, don't allow invalid language codes 5 years ago
Barış Soner Uşaklı 5a8217de01 fix: #8105, fix export json on page load 5 years ago
Barış Soner Uşaklı 10989cccaa fix: meta description missing if url doesn't have post index 5 years ago
Barış Soner Uşaklı dec157d606 fix: #8085, fix cookie name 5 years ago
Baris Usakli 7af1c873a3 fix: #8077, show continue chat on all profile pages 5 years ago
Barış Soner Uşaklı 2679f37dec fix: profile showing posts from deleted topics 5 years ago
Baris Usakli 4d66978338 fix: #8073, configurable necroThreshold 5 years ago
Baris Usakli 366ad5cd69 fix: #8050, fix redirect after registration 5 years ago
Baris Usakli 0a96c92300 fix: #8034 5 years ago
Julian Lam df139928b6
feat: displaying one-click unsubscribe link in email footer (#8024)
closes #8016
5 years ago
Barış Soner Uşaklı 480a64aaa7 feat: #7467, pass query params when redirecting to posts 5 years ago
Julian Lam 645d647248
feat: wip, better digest handling (+ eventual digest resend logic) (#7995)
* feat: wip, better digest handling (+ eventual digest resend logic)

- await emailer.send call in digest.send method
- save send success to a new sorted set digest:{interval}:byUid

* feat: continuing work on digest tools

- Added ACP page to view digest settings and delivery times per user

* feat: added paginator and stub buttons for resending digest

* feat: wrapping up digest revamp

- New language strings in ACP digest page
- Client-side ACP script for digest ACP page
- Websocket call for ACP page to execute digests
- Broke out logic to retrieve user digest settings to getUsersInterval

* fix: minor cleanup

* fix: #8010 and some style suggestions from baris

* fix: resolve confusing comment
5 years ago
Barış Soner Uşaklı c4e58160cf fix: #8003, check children recursively 5 years ago
Barış Soner Uşaklı 1cedc4a0d6 feat: #7957, allow post queue based on group
allow multiple select in ACP pages
5 years ago
Barış Soner Uşaklı e020b85bf5 feat: add filter:topics.unreadCutoff 5 years ago
Julian Lam cf7e0cfd2d
feat: no more session cookie for guests (#7982)
* feat: no more session cookie for guests

* fix(tests): added additional tests and fixed the broken test
5 years ago
Julian Lam ddf3812cdc fix: passwords always expiring upon login 5 years ago
Baris Usakli 5b458fc7ca fix: #7953, allow icon only group badges 5 years ago
Barış Soner Uşaklı 75bcb0f484 fix: remove unused data from post/topic/user hashes 5 years ago
Barış Soner Uşaklı c5f7b66c3a fix: new nav items will show group select 5 years ago
Barış Soner Uşaklı c9bf6d0fe1 fix: #7945, show watched categories in ignored categories 5 years ago
Barış Soner Uşaklı 41f8da2e7c fix: fix the order of groups on user profile 5 years ago
Barış Soner Uşaklı b192605450 feat: add new hook to get custom category tids for unread 5 years ago
Aziz Khoury 94810fd637 feat: adding filter:login.check and loginFormEntry[] for the filter:login.build hook (#7861)
* adding filter:login.check and loginFormEntry[] for the filter:login.build hook, related to nodebb-plugin-spam-be-gone/issues/32

* do not exceed 50 lines per function

* spam-be-gone@0.6.4
5 years ago
Barış Soner Uşaklı 7effc89291 fix: profile page meta tags getting escaped twice 5 years ago
Barış Soner Uşaklı 9a7560049a feat: bypass cropper for gifs 5 years ago
Barış Soner Uşaklı ffe3670ff5 feat: deprecate file.isFileTypeAllowed
use image.isFileTypeAllowed, this function was always meant for images
5 years ago
Barış Soner Uşaklı 310c6fd33f
properly filter /unread /recent /popular /top (#7927)
* feat: add failing test for pagination

* feat: test

* fix: redis tests

* refactor: remove logs

* fix: add new test

* feat: make sortedSetRangeByScore work with keys on redis

* fix: hardcoded set name

* feat: show topics from readable categories on recent/popular/top

* feat: rewrite unread topics

respect watched categories and followed topics

* fix: term + watched
5 years ago
Barış Soner Uşaklı 7a0f607434 fix: account/categories 5 years ago
Barış Soner Uşaklı 96ab8d05aa fix: only allow png/jpg/bmp in cover/profile images 5 years ago
Barış Soner Uşaklı bbc2e95688 feat: add rss feed url for tags 6 years ago
Barış Soner Uşaklı 795d4183ca fix: lang key 6 years ago
Barış Soner Uşaklı 5b8550f060 fix: time cutoff and lang string 6 years ago
Barış Soner Uşaklı 86b16629f8 refactor: returned fields 6 years ago
Barış Soner Uşaklı 87f6ac59b1 fix: returned data 6 years ago