Sami Mazouz
4b126d9f4c
feat: revamp search ( #3893 )
...
* refactor: move gambits to frontend (#3885 )
* refactor: move gambits to frontend
* test: GambitManager
* refactor: merge filterer and searcher concepts (#3892 )
* chore: drop remaining backend regex gambits
* refactor: merge filterer & searcher concept
* refactor: adapt extenders
* refactor: no longer need to push gambits to `q`
* refactor: filters to gambits
* refactor: drop shred `Query` namespace
* chore: cleanup
* chore: leftover gambit references on the backend (#3894 )
* chore: leftover gambit references on the backend
* chore: namespace
* feat: search driver backend extension API (#3902 )
* feat: first iteration of search drivers
* feat: indexer API & tweaks
* feat: changes after POC driver
* fix: properly fire custom observables
* chore: remove debugging code
* fix: phpstan
* fix: custom eloquent events
* chore: drop POC usage
* test: indexer extender API
* fix: extension searcher fails without filters
* fix: phpstan
* fix: frontend created gambit
* feat: advanced page and localized driver settings (#3905 )
* feat: allow getting total search results and replacing filters (#3906 )
* feat: allow accessing total search results
* feat: allow replacing filters
* chore: phpstan
2023-11-11 19:43:09 +01:00
Sami Mazouz
693bce912a
fix(testing): use cookie for testing authentication ( #3924 )
2023-11-10 21:35:24 +00:00
Sami Mazouz
e2281a2123
chore: handle deprecations from 1.x ( #3909 )
...
* chore: drop deprecated `post_number_index` column
* chore: remove deprecated `FlagsWillBeDeleted` event
* chore: `Migration::addSettings` can still be needed
* chore: `settings->get` default can still be needed
* chore: deprecated `$default` in `Settings::serializeToForum` extender
* chore: deprecated request `actor` attribute
* chore: already handled
* chore: remove `RecompileFrontendAssets::whenSettingsSaved`
* chore: remove `getReadIds`
* chore: `Model::dateAttribute` extender
* chore: `evented` js util
* chore: `WelcomeHero` js hidden prop
* chore: attributes pushData with relations
* chore: app request options `extract`
* chore: itemlist deprecations
* chore: `search` state
* chore: `getMentionText`
* chore: deprecated non-registered store type
* chore: `Button` title
* chore: `Modal` deprecations
* chore
* chore: deprecated `less` mixins
* Apply fixes from StyleCI
* fix
* fix: phpstan
* fix
* fix
---------
Co-authored-by: StyleCI Bot <bot@styleci.io >
2023-11-10 21:20:18 +00:00
Ngô Quốc Đạt
015529ff1e
Use ::class
syntax to fetch class name instead of get_class()
function ( #3910 )
2023-10-29 14:43:58 +01:00
Gary Green
7c885c72fd
feat: frontend content flexible order priorities ( #3765 )
...
* Fix frontend factory so it includes controller content
* chore: more readable parameter passing
* feat: add priorities to frontend content
2023-10-29 12:59:48 +01:00
IanM
e4e0fbff73
chore: remove ExtenderInterface[] as a conditional option, only support callable or ::class invoke ( #3904 )
...
* chore: remove ExtenderInterface[] as a conditional option, only support callable or ::class invoke
* Apply fixes from StyleCI
* stan
* review
---------
Co-authored-by: StyleCI Bot <bot@styleci.io >
2023-10-21 17:37:07 +01:00
IanM
94de8b42b4
fix: console extender does not accept ::class attribute for schedule ( #3903 )
2023-10-21 17:34:48 +01:00
IanM
76004ed844
feat: add whenExtensionDisabled
to Conditional
extender ( #3847 )
...
* feat: add to extender
* Apply fixes from StyleCI
---------
Co-authored-by: StyleCI Bot <bot@styleci.io >
2023-07-27 11:30:05 +01:00
Ngô Quốc Đạt
b003736d75
chore: Remove unused vars in catch ( #3839 )
2023-06-21 16:38:24 +01:00
Nicolas Peugnet
4a966b830f
Do not catch exceptions when testing Console commands ( #3813 )
...
* Do not catch exceptions when testing Console commands
This allows to easily test a case where a command should throw using `$this->expectException()`.
* Rewrite ConsoleTest to use expectException
Now that the ConsoleApplication is set to not catch exceptions.
---------
Co-authored-by: IanM <16573496+imorland@users.noreply.github.com >
2023-06-21 08:14:12 +01:00
Sami Mazouz
64b25b26c3
chore: improve test suite ( #3814 )
...
Allows running tests without constantly running `composer install` on each extension.
2023-06-15 13:26:39 +01:00
IanM
6bc19e2e52
chore: Upgrade dependencies ( #3830 )
...
* wip: laraval and symfony upgrades
* Apply fixes from StyleCI
* Apply fixes from StyleCI
* bump var dumper to 6.3
* require guzzle 7.7
* remove docbloc
* lock symfony/translation-contracts to 2.5
* fix: require mailgun package
* remove docblock
* fix: flysystem tests
* fix: instance flarum assets for testing
* Apply fixes from StyleCI
* downgrade intervention/image back to 2.x
* Apply fixes from StyleCI
* provide ImageManager to AvatarUploader
* fix larastan
* revert back some other intervention/image changes
* fix image resize
* Update framework/core/src/Http/Middleware/AuthenticateWithHeader.php
Co-authored-by: Daniël Klabbers <luceos@users.noreply.github.com >
* Apply fixes from StyleCI
* Update framework/core/src/Mail/SmtpDriver.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* Update framework/core/src/User/LoginProvider.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* use named attrs
* revert imagemanager in constructor
* revert to using Contract mailer
* reinstate and update FlarumLogTransport
* correct var typo, use one less temp var
* names attrs
* uncomment test
* mailer contract
* Apply fixes from StyleCI
---------
Co-authored-by: StyleCI Bot <bot@styleci.io >
Co-authored-by: Daniël Klabbers <luceos@users.noreply.github.com >
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
2023-06-14 14:46:15 +01:00
Sami Mazouz
6f11e044a7
chore: update codebase to php8.1 ( #3827 )
...
* chore: set minimum php version to 8.1
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* chore: update codebase to php8.1
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* Apply fixes from StyleCI
* chore: update workflow php version
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: more caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: phpstan caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* Apply fixes from StyleCI
* fix: test-caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: test-caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: test-caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: introduce `Flarum\Locale\TranslatorInterface`
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* Apply fixes from StyleCI
* chore: remove mixin
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: test-caught errors
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: one last error
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
---------
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
Co-authored-by: StyleCI Bot <bot@styleci.io >
2023-05-30 11:36:12 +01:00
Sami Mazouz
919c3bb770
perf: speed up post creation time ( #3808 )
...
* chore: drop unused visibility checking in notif syncer
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* perf: eager load parsed mentions
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* perf: eager load some relations needed for visibility checking
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* perf: trigger mentions notifications in a queueable job
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* Apply fixes from StyleCI
* fix: broken tag mentions
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
---------
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
Co-authored-by: StyleCI Bot <bot@styleci.io >
2023-04-30 10:10:31 +01:00
Sami Mazouz
7298ccb301
feat(testing): add a trait to flush the formatter cache in tests ( #3811 )
2023-04-30 09:48:46 +01:00
Tristian Kelly
818a100625
feat: add delete own posts permission ( #3784 )
2023-04-17 08:53:51 +01:00
Sami Mazouz
8372363cc2
feat: conditional extenders ( #3759 )
2023-03-14 21:53:16 +01:00
Sami Mazouz
3af0481f30
test: remove use of deprecated phpunit assertion
...
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2023-03-06 15:03:33 +01:00
Sami Mazouz
fa30f4f250
fix(regression): cannot delete users ( #3746 )
...
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2023-02-24 18:22:12 +01:00
Sami Mazouz
bbf873442a
feat: global logout to clear all sessions, access tokens, email tokens and password tokens ( #3605 )
...
* chore: re-organize security locale keys alphabetically
* test: can globally logout
* feat: add global logout controller
* feat: add global logout UI to user security page
* test: re-adapt tests to changes
* feat: add boolean to indicate if logout even is global
* chore(review): split loading property
* chore: follow-up branch update
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2023-02-21 15:28:55 +01:00
Sami Mazouz
9342903d68
feat: access tokens user management UI ( #3587 )
...
Signed-off-by: Sami Mazouz <ilyasmazouz@gmail.com >
Co-authored-by: David <hi@davwheat.dev >
2023-02-21 14:14:53 +01:00
IanM
1ee5cf6ba9
feat(core): PHP 8.2 Support ( #3709 )
...
* chore: test with php 8.2
* chore: bump httphandlerunnder
* chore: bump httphandlerunner
* chore: address php8.2 deprecation
* chore: php 8.2
* chore: bump less.php version
* avoid dynamic properties
* avoid another dynamic property
* Apply fixes from StyleCI
* tags php82
* php82
* fix: check for property existence
* Rerun checks after s9e/text-formatter update
* chore: disable deprecation warnings for php 8.2
* chore: PHP8.2 does not accept dynamic properties
* chore: temporarily disable package manager tests workflow
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
2023-02-14 19:09:56 +01:00
Sami Mazouz
5fe3cfd837
feat(phpstan): foundation for usage in extensions ( #3666 )
...
* feat(phpstan): pick up extended model relations typings
* feat(phpstan): pick up extended model date attributes
* feat(core): introduce `castAttribute` extender
Stops using `dates` as it's deprecated in laravel 8
* feat(phpstan): pick up extended model attributes through casts
* fix: extenders not resolved when declared namespace
* fix(phpstan): new model attributes are always nullable
* chore(phpstan): add helpful cache clearing command
* Apply fixes from StyleCI
* chore: improve extend files provider logic
* chore: rename `castAttribute` to just `cast`
* chore: update phpstan package to detect `cast` method
* Update framework/core/src/Extend/Model.php
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2023-01-15 15:25:13 +01:00
Sami Mazouz
4a38047bfb
Merge branch 'main' into merge-1.6.3-into-main
2023-01-13 19:12:11 +01:00
Sami Mazouz
666223fa8c
test: make data providers public
...
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2023-01-10 15:00:38 +01:00
Sami Mazouz
12dfcc5c79
Merge pull request from GHSA-hph3-hv3c-7725
...
* test: add reply creation tests
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: access checking being bypassed for post creation when first post is deleted
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* chore: recover tests
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* chore: make provider public
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2023-01-10 15:00:38 +01:00
StyleCI Bot
248a71d9b5
Apply fixes from StyleCI
2023-01-10 15:00:37 +01:00
Sami Mazouz
a131e87911
Merge pull request from GHSA-8gcg-vwmw-rxj4
...
* fix: notifications grant access to private data of posts
* chore: fix tests
* test: start with tests about notification subject visibility
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
* fix: check subject access before sending notification to user
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
Co-authored-by: Daniël Klabbers <daniel@klabbers.email >
2023-01-10 15:00:37 +01:00
IanM
67c0d75ebc
feat: include current user as forum relation ( #3668 )
...
* feat: include current user as forum relation
* Update framework/core/src/Api/Controller/ShowForumController.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* Update framework/core/src/Api/Controller/ShowForumController.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* Update framework/core/src/Api/Serializer/ForumSerializer.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* Update framework/core/tests/integration/api/forum/ShowTest.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* Update framework/core/tests/integration/api/forum/ShowTest.php
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
* No need to call the user endpoint as we already have the data loaded
* chore: return types
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
2022-11-25 11:00:19 +00:00
Sami Mazouz
f0a867b20f
chore: throw an exception when no serializer is provided to the controller ( #3614 )
...
* chore: throw an exception when no serializer is provided to the controller
Signed-off-by: Sami Mazouz <ilyasmazouz@gmail.com >
* test: no serializer set throws exception
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
Signed-off-by: Sami Mazouz <ilyasmazouz@gmail.com >
Signed-off-by: Sami Mazouz <sychocouldy@gmail.com >
2022-11-06 18:56:07 +00:00
Sami Mazouz
f6761843b2
feat: customizable session driver ( #3610 )
2022-09-14 18:10:30 +01:00
Sami Mazouz
84c31165e5
fix: password reset leaks user existence ( #3616 )
2022-09-14 15:57:52 +01:00
Sami Mazouz
f7dd609b26
feat: discussion UTF-8 slug driver ( #3606 )
...
* feat: add utf-8 slug driver
* test: add tests for slugging expectations
* fix: non-word characters aren't removed
Signed-off-by: Sami Mazouz <ilyasmazouz@gmail.com >
Co-authored-by: Alexander Skvortsov <sasha.skvortsov109@gmail.com >
2022-08-21 15:27:41 +01:00
Sami Mazouz
25122fd355
fix: user has wrong discussion read status ( #3591 )
...
* test: deleting last post(s) then posting new replies works as expected
* fix: user has wrong discussion read status
2022-08-09 22:43:38 +02:00
Ian Morland
d02bf0faa1
feat: Delete all notifications ( #3529 )
...
* Add delete all notifications option
* chore: `DELETE /api/notifications` as per conventions
* test: can delete all notifications
Co-authored-by: Sami Mazouz <ilyasmazouz@gmail.com >
2022-08-08 19:26:16 +01:00
Sami Mazouz
4b25c2d425
test: relying on a third-party for avatar URL tests is unreliable ( #3586 )
2022-08-05 19:24:43 +01:00
Sami Mazouz
2b31b185e4
feat: clear password & email tokens when appropriate ( #3567 )
...
* test: password tokens are generated and deleted on password change
* chore: delete all password tokens when the password is changed
* test: email tokens are generated and deleted on email change
* test: email tokens are deleted after password reset
* chore: delete email tokens after password change
* test: password tokens are deleted after email change
* chore: delete password tokens after email change
* chore: syntactic sugar
* chore: unify event listening
2022-07-30 13:02:06 +01:00
Sami Mazouz
f610f8aa67
feat: throttle email change, email confirmation, and password reset endpoints. ( #3555 )
...
* chore: move post throttler to separate class
* feat: throttle email change requests
* feat: throttle email activation requests
* feat: throttle password resets for logged-in users
* docs: comment new throttlers
2022-07-30 08:18:51 +02:00
David Wheatley
bf6f63cfe1
feat: extender to add custom less variables ( #3530 )
2022-07-14 13:04:38 +01:00
Sami Mazouz
eb4bac3b8f
fix: settings extender working only with first instances ( #3439 )
...
* test: settings extender works not only with first extender instance
* fix: settings extender working only with first instances
2022-05-24 17:55:05 +01:00
Daniël Klabbers
57d3c9a99a
chore: simplify container binding
...
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
2022-05-13 21:22:22 +02:00
Daniël Klabbers
999b345db1
chore: simplify container resolving of settings
...
Co-authored-by: Sami Mazouz <sychocouldy@gmail.com >
2022-05-13 21:22:22 +02:00
Daniël Klabbers
5e2f952fe6
fix: update test to reflect changes to slug transliteration
2022-05-13 21:22:22 +02:00
Daniël Klabbers
899b931b89
chore: add tests
2022-05-13 21:22:22 +02:00
Alexander Skvortsov
ffc9f9f5a4
fix(core): don't pass null to functions where that's deprecated ( #3405 )
...
Should fix remaining PHP 8.1 deprecation warnings/
2022-04-24 16:26:18 -04:00
Sami Mazouz
fb717db57c
fix: slug transliteration assuming the language is always en
( #3387 )
...
* fix: transliteration assuming the language is always `en`
* test: transliteration works with forum locale
2022-04-16 11:31:23 +01:00
Sami Mazouz
6de1ea0194
fix: languages with combining characters cannot be searched ( #3385 )
...
* test: searching other types of languages
* fix: languages with combining characters cannot be searched
* test: can search in discussion titles
2022-04-09 23:04:15 +01:00
Alexander Skvortsov
431ba30434
fix: dont ignore optional dependencies on disabled extensions. ( #3352 )
...
There is a check in the ExtensionManager::resolveExtensionOrder function that ignores optional dependencies on extensions that don't exist in the system. This is sufficient for resolution purposes.
The filter removed in this PR would ignore optional dependencies on non-enabled extensions, so when such an extension was enabled, dependency resolution would run incorrectly.
2022-04-06 11:48:52 -04:00
Alexander Skvortsov
e25c53c00f
fix: canonicalize comparisons in Posts ListTest
...
That doesn't matter since there's no default sort for posts in the backend.
2022-03-31 08:46:20 +02:00
Alexander Skvortsov
b0395b3eb7
chore: flarum-cli audit infra --fix
2022-01-27 16:45:10 -05:00