450 Commits (720170a9f638c24d1dac407608a0d11ef23c51a3)

Author SHA1 Message Date
Julian Lam ac734b8335 fix: #8912 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ı 9ca44e6f54
feat: add displayname into user obj #8637 (#8909)
* feat: add displayname into user obj #8637

* fix: spec

* perf: dont load settings if acp setting is turned off
4 years ago
Barış Soner Uşaklı 4e9b10ab76 feat: #5274 4 years ago
Barış Soner Uşaklı fb567a7a33 feat: #4456 4 years ago
Barış Soner Uşaklı a6afcfd531 feat: #8475, allow flagging self posts
dont count flags towards self posts
dont allow flagging your own account
4 years ago
Barış Soner Uşaklı 35f932cd64 feat: #8171, add oldCategory if topic is moved 4 years ago
Barış Soner Uşaklı b44ddecdf8 feat: #8204, separate notification type for group chats 4 years ago
Barış Soner Uşaklı 1d6bcbebde feat: https://github.com/NodeBB/NodeBB/issues/8147 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
Julian Lam 8518404e22
feat: allow groups to specify which cids to show member posts from (#8875)
* 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
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ı 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
Barış Soner Uşaklı 9e3eb5d41a feat: #8821, allow guest topic views 4 years ago
Barış Soner Uşaklı 6ac73ccb7e feat: #8801, disable express compression by default 4 years ago
Barış Soner Uşaklı e6440c0d21 fix: #8779, fix move all
add new language keys
4 years ago
Barış Soner Uşaklı 872bacf1c4
Admin/users (#8762)
* feat: wip admin/users

* feat: more work

* feat: more fixes

* feat: #8662, 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
4 years ago
Barış Soner Uşaklı f259063f08 fix: #8728, dont add admins to table 4 years ago
cryptoethic b3ed26ac2c
feat: revoke user sessions above threshold (#8731)
* feat: revoke user sessions above threshold

* fix: removed translations from en-US

* fix: defined default maxUserSessions in install\data\defaults.json
4 years ago
Julian Lam 2ec838fc59 feat(writeapi): token generation/delete routes, ACP updates 4 years ago
Julian Lam 49652e6f1b feat: management of API tokens via ACP 4 years ago
Barış Soner Uşaklı e60357d20d
feat: #6594, add top/popular sections to digest email (#8709) 4 years ago
Barış Soner Uşaklı 54737d3076 feat: #8233, search sub categories 4 years ago
psychobunny 14ba1a6dbb feat: analytics:maxCache setting in ACP
I removed a TODO from core. Watch your head as flying pigs are abound
4 years ago
psychobunny 9c5b690799 feat: up recommended size to 512x512 + ACP labels for PWA 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
psychobunny 4c1e717b2b fix: update notification delay ACP help text 4 years ago
psychobunny 5b427a0c3b feat: option in ACP to configure notification/email delay for chats 4 years ago
Timothy Fike f85fe7faff
don't invite an already invited email (#8688)
* don't invite an already invited email

* add email-invited translation string
4 years ago
Julian Lam 5ddf70221c feat: upon plugin installation via ACP, check against nbbpm first 4 years ago
psychobunny 2ad3305879 fix: language key in reset password 4 years ago
Barış Soner Uşaklı bd9b6c99e6 feat: add missing lang key 4 years ago
Barış Soner Uşaklı 23de5613bd feat: add x-posts/x-votes keys 4 years ago
Julian Lam 43571bac38 feat: hotkey "/" to open ACP search 4 years ago
Julian Lam 762e9fe88c feat: undo for posts move 4 years ago
Barış Soner Uşaklı 5a40d26b44 feat: #8626, new move posts modal 4 years ago
Barış Soner Uşaklı a34b685c65 fix: remove lang keys, remove sounds menu 4 years ago
Barış Soner Uşaklı 46ab2711d4 fix: #8432, add CSP frame-ancestors 4 years ago
Julian Lam 0c20351702 feat: additional sorting options for flags
+ upvotes, +downvotes, +replies
4 years ago
Julian Lam a93e19559d fix: #8411 missing language sources for ip-blacklist/post-queue 4 years ago
Julian Lam 4dc6e64a94 refactor: ip-blacklist and post-queue language files
closes #8411
4 years ago
Kyle Farris 2b785628e7
fix: removed invalid options for the sendmail transport (#8576)
* 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.
4 years ago
Julian Lam abb5e81d0d feat: allow undo of topic move 4 years ago
Julian Lam bacee6b467 fix: missing localisation for topic move error 4 years ago
Julian Lam a3a2279358 feat: logic for bulk actions in flags list, #8571 4 years ago
Julian Lam 334be11382 fix: no-widgets messaging in ACP + copy 4 years ago
Julian Lam 346db0d84d feat: flags list sorting, closes #8569 4 years ago
Julian Lam a716a5529c
feat: more discrete commit-on-save instead of commit-on-change w/ confirm modals (#8541)
* feat: privileges save button, #8537, WIP

* fix: disable firefox autocomplete on privilege form fields

* feat: closes #8537 privilege changes commit on save

- new language strings for confirmation and success modals/toasts
- indeterminate privilege handling (/cc @psychobunny)
- added new discard button
- both discard and save buttons now have confirmation dialogs

* fix(tests): remove duplicate template helper test

* fix(tests): broken template helper test

* feat: confirm dialogs for all privilege copy actions

Also, ability to add user to a privilege table without needing
to refresh the privilege table.

* feat: group row addition w/o table refresh

breaking: helpers.getUserPrivileges and helpers.getGroupPrivileges
no longer make socket calls to the following hooks:

- filter:privileges.list, filter:privileges.admin.list,
  filter:privileges.global.list, filter:privileges.groups.list,
  filter:privileges.admin.groups.list,
  filter:privileges.gloval.groups.list

The filters are still called, but done before the helper method
is called, and the results are passed in instead. This change
should only affect you if you directly call the helper methods,
otherwise the change is transparent.

* fix: stale ajaxify data on privilege category switch

* fix: implicit privileges not showing for user privs

* fix: groups, not group, also fix tests

* fix(tests): again

* fix: wrong tpl rendered when adding group to global priv table
5 years ago