12182 Commits (0aa25f20d5cf6ab96b0c16ce8fc1cc3a9785f1cf)

Author SHA1 Message Date
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
Julian Lam 6b4f35c2fa feat: new plugin hook to allow plugins to reject email address on new registration or email change 3 years ago
Julian Lam 806a1e50d2 feat: utilities login API route now starts an actual login session, if requested 3 years ago
Barış Soner Uşaklı b91ae0880d feat: add method name to deprecation message 3 years ago
Barış Soner Uşaklı 1d62bd6d7b refactor: log error as well 3 years ago
Barış Soner Uşaklı 73a9ca09c9 refactor: catch errors from buildHeader in error handler 🔥 3 years ago
Barış Soner Uşaklı d4da98404c refactor: add missing helpers.tryRoute 3 years ago
Barış Soner Uşaklı 998b9e7918 fix: minification regression 3 years ago
Julian Lam d22b076b2e feat: additional quality options for jpeg uploads, added quality and compression settings for png uploads 3 years ago
Barış Soner Uşaklı ee0282f5aa refactor: shorter middleware 3 years ago
Barış Soner Uşaklı b2429ef00e refactor: meta/minifier use async/await 3 years ago
Barış Soner Uşaklı 90b81262fa refactor: remove unused var 3 years ago
Barış Soner Uşaklı 9cb4de50a2 fix: biweekly digest #8053 3 years ago
Julian Lam 44687394dc fix: restore plugin upgrade checking logic
unintended regression from ac86937c88
3 years ago
Barış Soner Uşaklı 8e319a9b25 refactor: catch errors from digest 3 years ago
Barış Soner Uşaklı f7967bdf68 feat: #8053, biweekly digest option 3 years ago
Barış Soner Uşaklı 6da3239230 refactor: less.render already returns promise
rename callback to next to match other controllers
3 years ago
Barış Soner Uşaklı c70eaa0a34 refactor: prompt.get already returns promise 3 years ago
Barış Soner Uşaklı 38756a0c34 refactor: no more 🐮 3 years ago
Barış Soner Uşaklı 4333d217a1 fix: #9917, show topics as unread for guests 3 years ago
Barış Soner Uşaklı a9bc6a0962 refactor: allow array of uids for blocks.is/list
remove async.filter
use cacheCreate
3 years ago
Barış Soner Uşaklı 9e0ce0272c fix: don't overwrite reloadRequired with false
1. meta.settings.set('name', values); // reloadRequired is set to true
2. meta.settings.set('otherName', values, false); // reloadRequired was set to false, even though it should stay true until restart due to step 1
3 years ago
Barış Soner Uşaklı 8e6bd7e913 refactor: show full url on error log 3 years ago
Barış Soner Uşaklı 1feb111ade
perf: dont fs.open if plugin doesnt have language namespace (#9893)
closes #9892
3 years ago
gasoved b0a24d6dd5
refactor: var to const and let (#9885)
* refactor: var to const and let

* fix: missed global bootbox usage

* refactor: align with eslint expectations
3 years ago
Baris Usakli 997fb2b348 refactor: remove unused code 3 years ago
gasoved c1149d045c fix: better nomenclature 3 years ago
gasoved 3acaac4c7c
fix: html attributes (#9877)
* fix: some empty xml tag bodies

* fix: missing/wrong attributing of label tags

* fix: attribute fixes

* fix: misassociated label

* fix: missing alt attributes

* fix: some more missing associated labels
3 years ago
Barış Soner Uşaklı 6c25b9dbaa test: remove escape 3 years ago
Barış Soner Uşaklı 4f9717fb08 fix: escape thumbs, allow robots meta tag 3 years ago
Barış Soner Uşaklı 27e53b42f3 feat: use unread icon in mobile 3 years ago
Barış Soner Uşaklı 8ad9a103b3
fix: #9866, fire vote hooks after reputation changes (#9867) 3 years ago
Barış Soner Uşaklı a0df389021 fix: dont show decimails on auto approva minutes 3 years ago
Barış Soner Uşaklı a70c69fa83 fix: delete old topic tags 3 years ago
gasoved d1ff3d6298
feat: cli user management commands (#9848)
* feat: cli user management commands

* fix: consistent nomenclature
3 years ago
Barış Soner Uşaklı 5aea6c6aa1 feat: #9855, allow uid for post queue notifications 3 years ago
Barış Soner Uşaklı 4404e81991
fix: switch inf. scroll to xhr (#9854)
this fixes infinitescroll when url has custom query parameters
also fixes infinitescroll for plugins like QnA
fixes infinitescroll on tags page
deprecate topics.loadMoreSortedTopics
deprecate topics.loadMoreFromSet
3 years ago
Barış Soner Uşaklı e6a17a6349
Psql multikey (#9852)
* perf: convert promise.all to single query

* perf: single query for removeBulk

* perf: list
3 years ago
Barış Soner Uşaklı ea04aeded4
perf: convert promise.all to single query (#9851) 3 years ago
Julian Lam be43cd2597
Topic Linkbacks (#9825)
* feat: WIP topic linkbacks, + failing tests

* test: don't accidentally comment out all of the post tests

* fix: rename to "backlinks"

* feat: more stub code, more failing tests

* feat: backend methods and passing tests for topic backlinks

* test: uncomment test/posts.js again

* fix: missing quotation mark in topic event helper

* fix: superfluous usage of Promise.all

* test: fix broken test -- used hardcoded (and incorrect) url

* test: parseInt shenanigans
3 years ago
Barış Soner Uşaklı f24b630e1a feat: add userData to static:user.delete 3 years ago
Barış Soner Uşaklı 6399b42826 feat: closes #9845, sort by views 3 years ago
Peter Jaszkowiak ff84d6c52f
Add more chat hooks, replace toobig.jpg (#9843)
* feat: more hooks for messaging

for use in global chat plugin

* fix: replace toobig.jpg

toobig.png is a real 10000x10000 image
3 years ago
gasoved ac1b9692f2 fix: handle undefined returnTo on registerAbort 3 years ago
Barış Soner Uşaklı f8d4ec6ca6 fix: psql test 3 years ago
Barış Soner Uşaklı 3605ac811d fix: possible test fix for subfolder redirect 3 years ago
Julian Lam 58e0a366c8 fix: #9834, missing null email check on new registrations, added tests 3 years ago
Julian Lam a9645475fe feat: duplicate `requireEmailAddress` settings block to Settings > User 3 years ago
Barış Soner Uşaklı 07adb49e7f
feat: mongodb driver 4.x (#9832)
* feat: mongodb driver 4.x

* feat: up dbsearach
3 years ago
Barış Soner Uşaklı 6b34065f2a refactor: remove async.waterfall from remaining upgrade scripts 3 years ago
Barış Soner Uşaklı 89af00d1d5 fix: #9827, fix reward duplication 3 years ago
Barış Soner Uşaklı 30f387710c fix: #9822, use correct username/pwd 3 years ago
Barış Soner Uşaklı 2add84a568 fix: remove unused translator 3 years ago
Barış Soner Uşaklı 9f0e55ad3e fix: #9819, show same time info for ban 3 years ago
Barış Soner Uşaklı c437b33652 fix: crash 3 years ago
Barış Soner Uşaklı 15f9aaa6ee fix: remove caller from payload after hooks is done
only if it was added automatically
3 years ago
Julian Lam ce8ea6ea42 fix: bad uid reference 3 years ago
Julian Lam f194809f06 feat: move filter:topic.post hook to top of method 3 years ago
Julian Lam 7777812e62 fix: update Topics.post and Topics.reply so that plugins can modify uid (or redirect a reply to a different topic)
/cc @antosik
3 years ago
Barış Soner Uşaklı c4fc7bf9b5 fix: #9818, fix totalTime calculation 3 years ago
psychobunny 1ed62aa82f fix: missing microdata in category data 3 years ago
Barış Soner Uşaklı c0a52924f1 fix: #9812, add topics:schedule 3 years ago
Barış Soner Uşaklı 18252fb9a8 refactor: no regex 3 years ago
Barış Soner Uşaklı 31a6d4b39a fix: for subfolders 3 years ago
Barış Soner Uşaklı 0236ea86ad fix: req.path doesn't have full url 3 years ago
Barış Soner Uşaklı 40c9fca918 fix: #9811, send bodyClass on 403
use helpers.formatApiResponse for /api/v3 routes only
3 years ago
Barış Soner Uşaklı 05ddd60c5e dont check empty emails in queue 3 years ago
Barış Soner Uşaklı 58ac55c16a refactor: remove async.waterfall 3 years ago
Barış Soner Uşaklı 222dccaf67 refactor: remove async.waterfall 3 years ago
Barış Soner Uşaklı f35a0f430a refactor: remove async.waterfall 3 years ago
Barış Soner Uşaklı ba3582b873 fix: xss on flags page via ban reason 3 years ago
Julian Lam 819917daf2 refactor: allow plugins to replace og:image, or specify additional og:image
/cc @antosik
3 years ago
Barış Soner Uşaklı 0c4b875e10 fix: redis batch 3 years ago
Barış Soner Uşaklı 3261edcc32 fix: redis processing batch+1 items every iteration 3 years ago
Barış Soner Uşaklı 8b576a3704 fix: #9560, don't save post diffs if content didn't change 3 years ago
Barış Soner Uşaklı 2657804c1f fix: #9790, fix sorting of more than one page of pinned topics 3 years ago
Barış Soner Uşaklı 3ecbb624d8
fix: privileges added by plugins (#9802)
* fix: privileges added by plugins

when copying a categories privileges, privileges added by plugins will be copied as well
when purging a category privileges added by plugins will be purged as well
show plugin privileges in privileges.<categories/admin/global>.get
show plugin privileges in privileges.<categories/admin/global>.userPrivileges
show plugin privileges in privileges.<categories/admin/global>.groupPrivileges

* fix: typo
3 years ago
Barış Soner Uşaklı 71ed50b9c1 fix: #9800, don't send all welcome test emails to test@example.org @julianlam 3 years ago
uplift 92d1ee31e4
Add authenticateRequest middleware (#9795)
* Add  authenticateRequest middleware

to Post routes

* Fix linting error
3 years ago
Barış Soner Uşaklı 397835a05a feat: allow removing multiple items from list 3 years ago
Barış Soner Uşaklı 7f48edc02a feat: add uid to filter:user.saveSettings 3 years ago
gasoved 84ff1152f7
feat: headers for global privs #9717 (#9762)
* feat: headers for global privs #9717

* fix: don't spoil headers to adminPrivs

Co-authored-by: Julian Lam <julian@nodebb.org>
3 years ago
Julian Lam 006fc700dd feat: add ACP option to require email address on new registration 3 years ago
Julian Lam 34afb74762 fix: browsers autocompleting smtp fields when they should not 3 years ago
psychobunny bf0c02a71e feat: a slightly less ugly rewards panel 3 years ago
psychobunny a7855c4cc4 fix: dashboard graph controls 3 years ago
Barış Soner Uşaklı 0ce4b87d85
fix: #9781 (#9782) 3 years ago
Julian Lam 856ba78a5f fix: replace logic in isPrivilegedOrSelfAndPasswordMatch to use privileges.users.canEdit 3 years ago
Julian Lam cdaea61136 fix: handle missing uid in deprecated socket call 3 years ago
Julian Lam 0a41741b7e refactor: deprecate picture update socket call, new API routes for picture update 3 years ago
Julian Lam e33e046f15 fix: use privileges.users.canEdit for image upload priv check 3 years ago
Barış Soner Uşaklı a48bbdbfe3 fix: errors from registerComplete 3 years ago
Julian Lam 60de084475 fix: simplify logic for fullname and email blanking in user retrieval (getUserDataByUserSlug)
Previous logic seemed to match the logic used in privileges.users.canEdit, except
the latter allows plugins to modify the value.
3 years ago
Barış Soner Uşaklı 1e2bda13d0 fix: lint 3 years ago
Barış Soner Uşaklı 488f0978a4 fix: manifest error 3 years ago
Barış Soner Uşaklı 72710b8040 fix: #9772, regression from 70a04bc105 3 years ago
Julian Lam dd4e66e22c fix: push back some deprecations, remove deprecated stuff scheduled for v1.18.0 3 years ago
Barış Soner Uşaklı 1f91a31327
Priv hook fix (#9775)
* fix: #9773, fire hooks properly for priv changes

* fix: admin/global group privs

dont allow invalid privs
3 years ago
Julian Lam 4ac701d747 fix: deprecate userData.showHidden as it is functionally equivalent to userData.canEdit 3 years ago
Barış Soner Uşaklı 6869920e06
fix: #9773, fire hooks properly for priv changes (#9774) 3 years ago
psychobunny 6afeac375b fix: automated tests are a good thing to have 3 years ago
psychobunny ae793b4a44 chore: found some hooks that don't play well docgen 3 years ago
gasoved 3df79683f5
feat: create folders in ACP uploads #9638 (#9750)
* feat: create folders in ACP uploads #9638

* fix: openapi

* test: missing tests

* fix: eslint

* fix: tests
3 years ago
gasoved 61f02f17d8
feat: column based view on wide priv. tables (#9699)
* feat: column based view on wide priv. tables

* fix: add group/user

* feat: copy buttons to work on visible privs

* feat: show what's being copied in modal

* feat: optional title and message for category selector modal
3 years ago
Barış Soner Uşaklı e59d357533
feat: als (#9749)
* feat: als

* fix: up test timeout

* fix: don't overwrite caller if it already exists

* fix: up test timeout for psql
3 years ago
SAES:RPG dd15065706
Fix [MONGODB DRIVER] Warning: bulk operation `remove` has been deprecated, please use `delete` (#9746)
Co-authored-by: Brophy <paul.brophy@bastage.net>
3 years ago
Barış Soner Uşaklı 0743554dd4 fix: pluginPaths 3 years ago
Barış Soner Uşaklı 13878e9f14 fix: #9730, show warning if plugin is active but not installed 3 years ago
Barış Soner Uşaklı c354cde347 fix: #9719, only apply to non https 3 years ago
Barış Soner Uşaklı 6659e95a4a
refactor: remove promisify from redis, ioredis supports promises nati… (#9728)
* refactor: remove promisify from redis, ioredis supports promises natively

* refactor: remove unused util
3 years ago
Barış Soner Uşaklı a288f51f42 fix: allow smaller than 5mins for admin relogin duration
setting the value to 1min in ACP wasn't working
3 years ago
Barış Soner Uşaklı 794bf01b21 feat: allow changing default search in 3 years ago
Barış Soner Uşaklı 9de64bf516 fix: #9698, pass along query params in redirect 4 years ago
Barış Soner Uşaklı 358ad74054 feat: closes #9684, allow event deletion
fix: topic events appearing before necro messages
feat: add move topic event
feat: add ability to delete specific topic events via events.purge
4 years ago
opliko a370c26f73 feat: re-add FontAwesome font for compatibility 4 years ago
opliko 093ac1c09a fix: remove unnecessary quote 4 years ago
opliko 41762e6603 feat: update to FontAwesome 5.15, resolve #6976 4 years ago
Barış Soner Uşaklı 8fb53252a8 refactor: get rid of async.waterfall/each 4 years ago
Barış Soner Uşaklı 42dbd40253 refactor: remove unused async 4 years ago
Barış Soner Uşaklı 6b6a7d4b8a refactor: remove waterfall 4 years ago
Opliko d509a307f0
Remove some deprecated/unnecessary code (#9688)
* refactor: remove mkdirp promisify

* refactor: remove old session deletion API route

* refactor: remove middleware.isAdmin

* refactor: remove templateValues.config.bootswatchSkin

* fix: unused dependencies
4 years ago
Barış Soner Uşaklı 0c81642997 fix: #9681, update posts in queue if target tid is merged 4 years ago
Julian Lam 4a521ea218 fix: email update interstitial to not error on empty email field (on new registration) 4 years ago
Julian Lam 70a04bc105 feat: removed registerAndLoginUserCallback local helper, added handling if a bad interstitial doesn't go away nor throw errors 4 years ago
Julian Lam 0e05cbe1f7 feat: show instructional modal after email change request 4 years ago
Julian Lam e95df2f066 refactor: move interstitials into its own file in `src/user/` 4 years ago
Julian Lam 324a12b6c3 feat: return back to profile after editing email 4 years ago
Julian Lam b3c916414b feat: allow registration interstitial abort to also follow returnTo 4 years ago
Julian Lam 96398faa3c feat: plumb current session id into email removal/confirmation flow, so all other sessions are revoked except for the current session
This utilises the new argument in user.auth.revokeAllSessions
4 years ago
Julian Lam b0a4a1d3e4 feat: allow revokeAllSessions method to revoke all sessions except that which is passed in (new arg) 4 years ago
Julian Lam f53fc1ad0b feat: return generic 404 on invalid confirm code 4 years ago
Julian Lam 824a72b220 fix: updated ACP > Manage > Users to handle users with no email address 4 years ago
Julian Lam d5b5b7d531 fix: allowed reset and reset_notify emails to go out to unconfirmed email addresses 4 years ago
Julian Lam ccf004f1f4 refactor: added user.email.remove method, updated email interstitial to handle email removal 4 years ago
Julian Lam 414d733d76 fix: bug where confirmation email was sent to the old email address, not the new one 4 years ago
Julian Lam 3bcd1f1438 fix: email validation flow, so that it actually works, fixed event logging bug, new email verification template 4 years ago
Julian Lam caf8968791 fix: accidental early return in confirmByCode, tests, race condition
A race condition caused mongo/psql tests to fail.
4 years ago
gasoved a917210c5b feat: invites no longer require email 4 years ago
Julian Lam 81611ae1c4 fix(emails): broken test for api/user/email/:email
+ fixed broken tests due to unexpected behaviour for email confirmation
4 years ago
Julian Lam c4e3362bd3 feat(emails): restore ability for admins to edit a user's email address [breaking]
The edited user's email will be automatically confirmed
4 years ago
Julian Lam afd2d8dab1 feat(emails): pass req in to filter:registration.interstitial 4 years ago
Barış Soner Uşaklı 7d115c8ef2 fix(emails): dont allow retrieving user data if showemail is false @julianlam 4 years ago
Julian Lam e726048e0c fix(emails): don't automatically associate email during user creation if passed in at registration 4 years ago
Julian Lam f52919990b feat(emails): display current email in interstitial form 4 years ago
Julian Lam b4b65ecd98 fix(emails): remove debug log 4 years ago
Julian Lam 087e6020e4 refactor(email): validation checking methods, +tests fix 4 years ago
Julian Lam 50517020a2 feat(emails): upgrade script for includeUnverifiedEmails 4 years ago
Julian Lam be97aa6f13 feat(emails): +includeUnverifiedEmails ACP setting 4 years ago
Julian Lam 69c96dd23c refactor(emails): more work in update email interstitial, interstitial skipping, email change on confirmation, deprecation of requireEmailConfirmation 4 years ago
Julian Lam f365bc4600 refactor(emails): interstitial for adding/updating email 4 years ago
Julian Lam 74aaa0a926 feat: show different registration intersitial lead text on new account vs. existing 4 years ago
Julian Lam 7c1d1c777b refactor(emails): remove email validation on client and server side 4 years ago
Julian Lam 12b2a979a0 feat: removal of emailExists socket listener 4 years ago
Barış Soner Uşaklı 04b1f702cd feat: add loggedin/guest class to body 4 years ago
Julian Lam 340ccb2498 style: lint fix 4 years ago
Julian Lam d1959a258b fix: #9670 return 4xx errors instead of 5xx on flag routes, when unauthenticated or not privileged [breaking] 4 years ago
Barış Soner Uşaklı 6c47a060c1 fix: #9668, add raw info to psql database page 4 years ago
Julian Lam ef4e74bfc8 refactor: client-side to use flag notes API 4 years ago
Julian Lam cc6cbfcdc4
Flags API (#9666)
* feat: new routes for flags API

+ flag get
+ flag creation, migration from socket method
+ flag update, migration from socket method
* fixed bug where you could not unassign someone from a flag

* feat: tests for new flags API

added missing files for schema update

* fix: flag tests to use Write API instead of sockets

* feat: flag notes API + tests

* chore: remove debug line

* test: fix breaking test on mongo
4 years ago
Barış Soner Uşaklı 4a56388ec3
feat: store topic tags in topic hash (#9656)
* feat: store topic tags in topic hash

breaking: remove color info from tags (use css)

* fix: remove unused tag modal

* fix: tag search
4 years ago
Julian Lam 415416d2a7 fix: translate language keys if passed in to formatApiResponse 4 years ago
Julian Lam 7036c3751e feat: internationalize API error messages 4 years ago
Julian Lam a54a3ee1ca fix: return proper API-style response if exception caught by error handler on v3 routes [breaking] 4 years ago
Barış Soner Uşaklı ff78969c2c fix: lint 4 years ago
Barış Soner Uşaklı 55d7e55867 fix: tests 4 years ago
Barış Soner Uşaklı 6ed7e937ce refactor: fix wording 4 years ago
Barış Soner Uşaklı 47c8c69264 fix: keep query string on redirects 4 years ago
Barış Soner Uşaklı 5fd190f7c4 feat: #9651, change category desc to multiline 4 years ago
Barış Soner Uşaklı 8e0561f226 perf: cache Topics.getTopicsTags 4 years ago
Barış Soner Uşaklı 10ddfff38f perf: bypass getMultipleUserSettings 4 years ago
Julian Lam e03782f218 fix(docs): #9648 4 years ago