Commit Graph

659 Commits (bf2c429a1825c1fa08d84f3db995536e3313d727)

Author SHA1 Message Date
Julian Lam 6294beea0b fix: re-allow kicking of the other party in a 1-to-1 chat
Julian Lam f48ed3658a feat: `PUT /chats/:roomId/:mid`
Julian Lam 74f1905ea8 feat: allow API checkRequired middleware error to be internationalized
Julian Lam 40b4544e70 feat: `POST /api/v3/chats`, chat room creation, plus openAPI docs update
Julian Lam 5e68a99e73 Revert "chore: trigger lang"
This reverts commit 540eeae9bc.
Barış Soner Uşaklı 540eeae9bc
chore: trigger lang
Barış Soner Uşaklı c4042c70de feat: , 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
Barış Soner Uşaklı dd02c49f43 refactor: use lang keys, fix typo
Barış Soner Uşaklı 1980feed46 refactor: use alerts module
Baris Usakli 0f14f23b2a feat: , wip
Julian Lam 01bd8a8694
remove email only login ()
* feat: remove ACP option for email-only logins

* feat: remove email-only login, upgrade script to fix config
Julian Lam 09e0c6d503 feat: add feature flag to disable verification emails, closes
Barış Soner Uşaklı 4b738c8cd3 refactor: cleanup info, better cpu usage %
Barış Soner Uşaklı 2e623dd271 feat: , allow dropdowns in navigation
Barış Soner Uşaklı 8c67031609 feat: show posts previews if enabled on mouse over
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
Barış Soner Uşaklı eb075c7328 fix: add missing translation
Barış Soner Uşaklı f4cf482a87 feat: show popular searches
Barış Soner Uşaklı f7967bdf68 feat: , biweekly digest option
Julian Lam 605a53812e feat: core submit button dropdown
Peter Jaszkowiak 6436aa65ad
fix: clarify site settings urls vs config.json url ()
Peter Jaszkowiak 09f198fc37
fix: clarify SMTP enable toggle ()
gasoved 7935bd9efb
fix: missing translations ()
gasoved 56d05b4e86
feat: confirm before deleting all events ()
Julian Lam e954ca1025 fix:
Barış Soner Uşaklı 5aea6c6aa1 feat: , allow uid for post queue notifications
Julian Lam be43cd2597
Topic Linkbacks ()
* 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
Barış Soner Uşaklı 6399b42826 feat: closes , sort by views
Julian Lam 006fc700dd feat: add ACP option to require email address on new registration
psychobunny bf0c02a71e feat: a slightly less ugly rewards panel
Julian Lam 2d1380ddf1 fix: updated email confirm warning to be more positive
gasoved 3df79683f5
feat: create folders in ACP uploads ()
* feat: create folders in ACP uploads 

* fix: openapi

* test: missing tests

* fix: eslint

* fix: tests
gasoved 61f02f17d8
feat: column based view on wide priv. tables ()
* 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
Barış Soner Uşaklı e93148420d feat: add quick reply key
Barış Soner Uşaklı 6e73d8c934 feat: add new lang key for no best posts
Julian Lam e803737a4b feat: add confirmation modal to topic event deletion
Barış Soner Uşaklı 794bf01b21 feat: allow changing default search in
Barış Soner Uşaklı 382a4c2785 feat: , use radio buttons for flag reasons
Barış Soner Uşaklı 358ad74054 feat: closes , 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
Julian Lam bbbacd86ab feat: updated email confirmation alert to more closely reflect email usage, remembering dismissal
Julian Lam 824a72b220 fix: updated ACP > Manage > Users to handle users with no email address
Julian Lam 3bcd1f1438 fix: email validation flow, so that it actually works, fixed event logging bug, new email verification template
Julian Lam be97aa6f13 feat(emails): +includeUnverifiedEmails ACP setting
Julian Lam f365bc4600 refactor(emails): interstitial for adding/updating email
Julian Lam 74aaa0a926 feat: show different registration intersitial lead text on new account vs. existing
Julian Lam cc6cbfcdc4
Flags API ()
* 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
Barış Soner Uşaklı 4a56388ec3
feat: store topic tags in topic hash ()
* feat: store topic tags in topic hash

breaking: remove color info from tags (use css)

* fix: remove unused tag modal

* fix: tag search
Julian Lam 7036c3751e feat: internationalize API error messages
Julian Lam b896484351 fix: , re-jig top bar of Admin > Manage > Users
Barış Soner Uşaklı 84e065752f
fix: ()
dont allow regular user to remove system tags
Barış Soner Uşaklı c92fc19b5c fix: , add group chat filter to /notifications
Barış Soner Uşaklı 8ea58432c9 feat: show ip on acp manage users
update url on search
show matching ip when searching by ip
add ip to export csv
psychobunny 05cc7ccb60 feat: make undoTimeout configurable, closes
Barış Soner Uşaklı f5847f4f02 feat: , set order help text
Julian Lam ec6d1e2321
fix: session reroll causes socket.io to become confused ()
* fix:  session reroll causes socket.io to become confused

* fix: added return

* fix: simpler logic for error handling

* fix: overly sensitive catch
Barış Soner Uşaklı b40fc4b64d feat: send notifications on accept/reject
Barış Soner Uşaklı 9b71b087ec feat: lang strings
psychobunny a9978fcfd2 feat: rate limit file uploads
gasoved 8faa6e4515
feat: filter flags by username ()
* feat: filter flags by username 

* feat: toggle flag filter text
Julian Lam 95d5359cbe fix: copy change on plugin activate to instruct admins to rebuild as well as restart
re: 
gasoved 077330b764
feat: scheduled topics ()
* feat: scheduled topics

* refactor: linting fixes

* fix: tests

* fix(test): race condition

* fix: make a single request
Barış Soner Uşaklı 482641e30e fix: , add missing translation string
Barış Soner Uşaklı 52082e1296 feat: add resolve flag to post tools
Barış Soner Uşaklı 17184bface feat: add missing translation keys
Barış Soner Uşaklı 696c489524 feat: add back topic id input
Barış Soner Uşaklı 3aa26c4df2 fix: , only log email errors once per digest, notification push
show notice in acp
Julian Lam 73dc64d9ff feat: add dashboard sub-pages to ACP menu
Julian Lam 2f89b0d791 feat: recent logins sessions table in dashbaord subpage
Julian Lam e1ed514b10 feat: topics dashboard details subpage
Julian Lam f561799f74 refactor: abstract out some client side dashboard code into modules, analytics subpages for users, topics, and logins
Julian Lam 9a9f366d3b feat: track login sessions for admin dashboard reporting
Julian Lam 955021247e feat(user): icon background selector in change picture modal
Barış Soner Uşaklı 0e07f3c9ba feat: allow defining a list of system tags
Julian Lam 8fd78ce512 feat: post-queue topic event
Barış Soner Uşaklı 670cde78da feat: add invalid event name to error message
Barış Soner Uşaklı 47299ea587
Categories refactor ()
* feat: wip categories pagination

* feat: add subCategoriesPerPage setting

* feat: add load more sub categories button to category page

* fix: openapi spec

* feat: show sub categories left on category page

hide button when no more categories left

* breaking: rename categories to allCategories on /search

categories contains the search results

* fix: spec

* refactor: remove cidsPerPage

* fix: tests

* feat: use component for subcategories

* fix: prevent negative subCategoriesLeft

* feat: new category filter/search WIP

* feat: remove categories from /tag

* fix: dont load all categories when showing move modal

* feat: allow adding custom categories to list

* breaking: dont load entire category tree on post queue

removed unused code
add hooks to filter/selector
add options to filter/selector

* feat: make selector modal work again

* feat: replace old search module

* fix: topic move selector

* feat: dont load all categories on create category modal

* fix: fix more categorySelectors

* feat: dont load entire category tree on group details page

* feat: dont load all categories on home page and user settings page

* feat: add pagination to /user/:userslug/categories

* fix: update schemas

* fix: more tests

* fix: test

* feat: flags page, dont return entire category tree

* fix: flag test

* feat: categories manage page

dont load all categories
allow changing root category
clear caches properly

* fix: spec

* feat: admins&mods page

dont load all categories

* fix: spec

* fix: dont load all children when opening dropdown

* fix: on search results dont return all children

* refactor: pass all options, rename options.cids to options.selectedCids

* fix: 

* fix: index 0

* fix: spec

* feat: , add setObjectBulk

* refactor: shoter updateOrder

* feat: selectors on categories/category

* fix: tests and search filter

* fix: category update test

* feat: pagination on acp categories page

show order in set order modal

* fix: allow drag&drop on pages > 1 in /admin/manage/categories

* fix: teasers for deep nested categories

fix sub category display on /category page

* fix: spec

* refactor: use eslint-disable-next-line

* refactor: shorter
Julian Lam 68da1c558f fix: update grammar on unban text
gasoved 53e0d4d2e0 feat: banned-users group
gasoved eb642f40b9 feat: , ability to delete a post's diffs
Barış Soner Uşaklı d1364c3130
Categories refactor ()
* feat: wip categories pagination

* feat: add subCategoriesPerPage setting

* feat: add load more sub categories button to category page

* fix: openapi spec

* feat: show sub categories left on category page

hide button when no more categories left

* breaking: rename categories to allCategories on /search

categories contains the search results

* fix: spec

* refactor: remove cidsPerPage

* fix: tests

* feat: use component for subcategories

* fix: prevent negative subCategoriesLeft
Julian Lam 4bb3b0323d feat: guard password fields in login/register against accidental caps lock
Julian Lam 611d1f872d feat(topic-events): support for uids in topic event payloads
Julian Lam ab2e1ecb40 feat(topic-events): work in progress topic events logic and client-side implementation
Julian Lam 6b1c97db79 feat: feature flag for auto-resolving a user's flags on ban [breaking]
The default behaviour has now been changed to 'off'. Going forward, a user's flags will no longer automatically resolve on ban.
Julian Lam b2b1450e5d fix: , render 400 error page on bad access to /register
Barış Soner Uşaklı d83d40cf9b fix: missing error message
Julian Lam e5edbc6faf feat: automatically attempt socket.io reconnection on ajaxify
Also, updated messaging and toaster to accurately reflect offline-mode state
Barış Soner Uşaklı c1ecfd1ebf feat: , don't try to reconnect forever
Julian Lam 223f0a5515 feat(acp): admin tags privilege
Julian Lam d90aa95808 feat: add confirmation modal when assigning admin:admins-mods privilege
Julian Lam fb46a8d975 feat(acp): admins-mods privilege
Julian Lam da191341e8 feat(acp): added new admin privilege for groups management
Julian Lam a30c8ab5c8 feat: clent-side modal for managing topic thumbs
closes 
Barış Soner Uşaklı 0f480be658 fix: , dont prevent admins from deleting other users
Barış Soner Uşaklı 6669496dba
Navigator ()
* feat: navigator changes

* fix: remove extra code

* feat: add lang keys
Barış Soner Uşaklı 86b7f8a5d4 fix: , dont show null for purged targets
psychobunny 53abada5f0 Revert "feat: option to allow auto-joining of groups (optionally skip the "request membership" step)"
This reverts commit 685f3c6aa6.
psychobunny 685f3c6aa6 feat: option to allow auto-joining of groups (optionally skip the "request membership" step)
psychobunny c1a7968d23 feat: user notification settings for group.leave event
Barış Soner Uşaklı b46d2f93e6 fix: , add missing lang strings
Barış Soner Uşaklı 1eb5fabdb1 feat: , postQueue setting for category
Barış Soner Uşaklı 5080f35752 fix: , logout on password reset, dont verify email if password expired
dont allow same password on reset
Barış Soner Uşaklı 546f58bf1f fix: timestamp in queue, add post queue strings
Barış Soner Uşaklı 1269103fbb fix: , post-queue ux
Barış Soner Uşaklı d3c04afb98 fix: , copy color on tag rename, dont copy if target exists
refresh page on tag rename
Barış Soner Uşaklı 6e6a7a8f8a fix: , export csv to file
Julian Lam 1e7cf1cbc4 fix: , disallow flags of privileged users (mods, gmods, admins)
Julian Lam 12b3aa0d8f feat: add translation key for pin icon label with expiry
gasoved a56a657759
fix: missing select/clear all checkbox added to category privileges template ()
Julian Lam ac734b8335 fix:
Julian Lam 046d0b1637
feat: allow pins to expire (if set) ()
* 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
Barış Soner Uşaklı 9ca44e6f54
feat: add displayname into user obj ()
* feat: add displayname into user obj 

* fix: spec

* perf: dont load settings if acp setting is turned off
Barış Soner Uşaklı 4e9b10ab76 feat:
Barış Soner Uşaklı fb567a7a33 feat:
Barış Soner Uşaklı a6afcfd531 feat: , allow flagging self posts
dont count flags towards self posts
dont allow flagging your own account
Barış Soner Uşaklı 35f932cd64 feat: , add oldCategory if topic is moved
Barış Soner Uşaklı b44ddecdf8 feat: , separate notification type for group chats
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147
gasoved 3ccebf112e
feat: invites regardless of registration type, invite privilege, groups to join on acceptance ()
* 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>
Julian Lam 8518404e22
feat: allow groups to specify which cids to show member posts from ()
* feat: allow groups to specify which cids to show member posts from

* docs: fix tests for openapi

* fix: test breakage caused by improper conditional

* feat: server-side checking of memberPostCids for validity

* feat: admin panel template update to select categories to include

* refactor: privilege helpers.isUserAllowedTo

... to helpers.isAllowedTo, allowing group names to be passed in
Opliko 04f4429f72
Resolve - optional timer for registration queue ()
* feat:  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
Barış Soner Uşaklı 2e44639210 fix: guest header/footer cache
allow clearing individual caches
Barış Soner Uşaklı f1f9b225b0
feat: , cache refactor ()
* feat: , 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
Barış Soner Uşaklı 9e3eb5d41a feat: , allow guest topic views
Barış Soner Uşaklı 6ac73ccb7e feat: , disable express compression by default
Barış Soner Uşaklı e6440c0d21 fix: , fix move all
add new language keys
Barış Soner Uşaklı 872bacf1c4
Admin/users ()
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: , verified/unverified user groups

* feat: add filter

* feat: change user search to use filters array

* refactor: remove unused search call

* fix: tests

* fix: cant join system groups

* fix: upgrade script
Barış Soner Uşaklı f259063f08 fix: , dont add admins to table
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 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates
Julian Lam 49652e6f1b feat: management of API tokens via ACP
Barış Soner Uşaklı e60357d20d
feat: , add top/popular sections to digest email ()
Barış Soner Uşaklı 54737d3076 feat: , search sub categories
psychobunny 14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
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
psychobunny 4c1e717b2b fix: update notification delay ACP help text
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
Julian Lam 5ddf70221c feat: upon plugin installation via ACP, check against nbbpm first
psychobunny 2ad3305879 fix: language key in reset password
Barış Soner Uşaklı bd9b6c99e6 feat: add missing lang key
Barış Soner Uşaklı 23de5613bd feat: add x-posts/x-votes keys
Julian Lam 43571bac38 feat: hotkey "/" to open ACP search
Julian Lam 762e9fe88c feat: undo for posts move
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ı 46ab2711d4 fix: , add CSP frame-ancestors
Julian Lam 0c20351702 feat: additional sorting options for flags
+ upvotes, +downvotes, +replies