264 Commits

Author SHA1 Message Date
Daniel Klabbers
0413daab74 call to $this-> assertValidPassword from static context 2015-09-04 00:00:24 +02:00
Toby Zerner
6aafe54ee7 Fix potential error when discussion doesn't exist
Not sure how this could be the case, but can't hurt to add the checks.
addresses #343
2015-09-01 10:08:36 +09:30
Toby Zerner
c72bdc8238 Fix Laravel 5.1 compat
closes #307
2015-08-31 14:07:11 +09:30
Toby Zerner
bcc16a3329 Add target="_blank" and rel="nofollow" to all formatted links
closes #247
2015-08-31 13:36:54 +09:30
Toby Zerner
f5517fbd88 Validate password length
We can't do this using the ValidatesBeforeSave trait because the
password has been hashed by then. Instead, we must validate the
original password as it comes in.
2015-08-31 12:38:15 +09:30
Toby Zerner
6a0e3fcf2d Validate post length to prevent truncation
closes #235
2015-08-31 12:36:19 +09:30
Franz Liedke
1d1cc9e443 Fix asset URL generation
This is important when Flarum is deployed in a subfolder.

Closes #291.
2015-08-29 22:38:31 +02:00
Lorenz Bausch
a4fe6f3ce3 limit max title length to 80 characters 2015-08-29 11:26:18 +02:00
Lorenz Bausch
ae06b45bc1 remove executable flag from file 2015-08-29 11:23:05 +02:00
Toby Zerner
d5074c5286 Use gd as the image driver
Presumably gd is more common than imagick, and we already check for it
during installation.
2015-08-28 05:41:25 +09:30
Toby Zerner
b0db7bf751 Polish admin dashboard 2015-08-27 10:50:15 +09:30
Franz Liedke
559110a83f Coding standards 2015-08-27 01:40:18 +02:00
Franz Liedke
9ec54ad892 Change base URL etc. in config.php file 2015-08-27 00:47:54 +02:00
Toby Zerner
0b8aa5c124 Add header comment; PSR-2 fixes; remove seeders 2015-08-26 16:56:32 +09:30
Toby Zerner
8ec342f6cb Autoload the cached PHP renderer 2015-08-26 09:46:20 +09:30
Toby Zerner
b67ae4c8a3 Use PHP formatter rendering engine
Removes dependency on XSLT extension
2015-08-26 09:34:49 +09:30
Toby Zerner
edccd10693 Only delete avatar if it exists 2015-08-17 16:06:51 +09:30
Toby Zerner
a32250884c Ensure posts are sorted correctly 2015-08-17 15:52:39 +09:30
Toby Zerner
212880640d Support table custom table prefix
Laravel automatically adds a table prefix to any table names, so we
need to wrap our aliased table in DB::raw.
2015-08-14 12:51:30 +09:30
Toby Zerner
34d4a7ed89 Fix Laravel 5.1 compat 2015-08-14 12:50:32 +09:30
Toby Zerner
014bacb7ab Add ability to uninstall an extension 2015-08-14 12:48:29 +09:30
Toby Zerner
2edcbacccc Improve install command, add custom migrations system
Implemented our own migration repository + migrator (based on Laravel's
stuff) so that we can keep track of which migrations have been run for
core and per-extension. That way we can simple call the migrator to
upgrade core/extensions, and to uninstall extensions.
2015-08-14 12:47:59 +09:30
Toby Zerner
5bcf6ae630 Add Escaper plugin so that formatting can be escaped 2015-08-13 13:04:56 +09:30
Toby Zerner
58223b8a23 Don't allow empty post content
Parsing the post content makes it non-empty (`<t></t>`), so we don't
parse it if it is empty. Also delete a created discussion if the first
post was invalid.

closes flarum/core#224
2015-08-13 13:03:49 +09:30
Toby Zerner
9a0190e13a Allow post author to see their own deleted post
closes flarum/core#225
2015-08-13 13:02:13 +09:30
Toby Zerner
6dd6942e17 Fix avatar uploading permissions
closes flarum/core#230
2015-08-13 12:59:40 +09:30
Toby Zerner
8aafce5fd8 Fix Laravel 5.1 compat 2015-08-13 10:41:17 +09:30
Toby Zerner
47595ff9c4 Decouple from Laravel, implement translator 2015-08-12 18:33:39 +09:30
Toby Zerner
9f0358bb39 Update to Laravel 5.1
Eloquent `lists()` now returns a collection
2015-08-12 13:24:11 +09:30
Toby Zerner
3aebd458b0 Make sure access/email/password tokens are valid 2015-08-06 15:04:38 +09:30
Toby Zerner
c361c97394 Enforce discussion renaming/deleting/post editing timed permissions 2015-08-05 19:21:33 +09:30
Toby Zerner
4c06e78b57 Allow/disallow signup per config 2015-08-05 18:19:26 +09:30
Toby Zerner
023eff95e3 Let users see themselves even if they can't see the forum 2015-08-05 18:12:09 +09:30
Toby Zerner
ff8dc5ef25 Enforce forum.view permission 2015-08-05 18:08:31 +09:30
Toby Zerner
42e382045a API: Add event for determining user groups for permissions 2015-08-05 16:06:55 +09:30
Toby Zerner
f42c3cd1ed Allow admins to delete users 2015-08-05 12:08:28 +09:30
Toby Zerner
1679f1e27b Implement edit user modal
EditUserHandler is a bit rough
2015-08-05 11:49:37 +09:30
Toby Zerner
f49d0e5341 Allow locale to be selected in footer 2015-08-05 09:50:57 +09:30
Toby Zerner
48df9bb678 Fix syntax error 2015-08-04 21:50:44 +09:30
Toby Zerner
187517a9c7 Remove ability for users to delete themselves 2015-08-04 21:35:41 +09:30
Toby Zerner
e091b037f3 Radically simplify user activity system
The activity system we were using was built around a separate table.
Whenever the user posted something, or deleted a post, we would sync
the table. The advantage of this was that we could aggregate activity
of all different types very efficiently.

It turns out that it came with a huge disadvantage: there was no
efficient way to enforce permissions on activity. If a user posted
something in a private tag, everyone could still see it on their
activity feed. My stopgap solution was to only sync activity for posts
that are viewable by guests, but that was way too limited.

It also turns out that aggregating activity of different types is
really not that useful, especially considering most of it is the user
making posts. So I've gotten rid of that whole overly-complicated
system, and just made the user profile display separate lists of posts
and discussions, retrieved from those respective APIs. The discussions
page is an actual discussion list too, which is pretty cool.

It's still technically possible to aggregate different activity types
(basically just aggregate API responses together), but we can do that
later if there's a need for it.

This is probably my favourite commit of the day :)
2015-08-04 18:44:22 +09:30
Toby Zerner
a2c3c4e51b Only add posted activity if the post is visible publicly
This is very restrictive behaviour and we'll probably need to think of
something a bit more powerful in the future. But it's a good stopgap.
2015-08-04 17:47:46 +09:30
Toby Zerner
667fe56947 Use morphTo instead of mappedMorphTo
Turns out we don't need MappedMorphTo after all.
2015-08-04 17:33:58 +09:30
Toby Zerner
5b3484d3c8 Improve error handling somewhat
- Fix composer crashing/not showing alert on error
- Make a general ValidationException which takes an array of field ⇒
messages to be outputted nicely by the API
2015-08-04 13:03:46 +09:30
Toby Zerner
70901b1420 Rough extension management implementation 2015-08-03 12:03:30 +09:30
Toby Zerner
66ee6e57ee Convert permission IDs into strings 2015-08-02 18:02:35 +09:30
Toby Zerner
6f09ba6591 Clean up 2015-07-31 20:17:17 +09:30
Toby Zerner
fde7afd3e2 Finish admin permissions page and clean up everything 2015-07-31 20:16:47 +09:30
Toby Zerner
5706c71c86 Convert email/password token date fields 2015-07-31 20:14:19 +09:30
Toby Zerner
cea8e7f567 Add group management actions to API 2015-07-31 20:10:49 +09:30