Commit graph

548 commits

Author SHA1 Message Date
Trinity Pointard 62c94ed463 Refactor and verify http signature on personnal inbox
Verify signature on personnal inbox
Reduce code duplication
Put Headers in plume-models
2018-10-03 20:48:25 +02:00
Trinity Pointard 0a5d435249 Verify http signatures 2018-10-03 09:31:38 +02:00
Bat 07f2c979ec Make the REST API compatible with SQlite 2018-09-30 14:21:07 +01:00
Bat bd80430b1b
Document model macros 2018-09-30 14:13:56 +02:00
Bat 743620eb6a
Fix the SQlite build 2018-09-30 14:13:56 +02:00
Bat 38d737ed0c
Introduce features to choose between SQlite or Postgres 2018-09-30 14:13:54 +02:00
Igor Galić 88456faf84
align types between sqlite & postgres
this one's achieved by adding "NOT NULL" at the *correct* position in
SQLite's create tables.
2018-09-30 14:13:53 +02:00
Igor Galić b28bef20a7
align types between sqlite & postgres
use DATETIME for SQLite's time type. This way, Diesel picks up on what
it's supposed to be.
2018-09-30 14:13:52 +02:00
Igor Galić 1f8680c4c5
add sqlite migrations
we move our PostgreSQL specific migrations to a subdirectory.
The SQLite migrations have been created by running `diesel` against a
copy, and then fixing what's broken.
In the end i reduced all modifications to a single create, since we
*are* starting out fresh with SQLite.

n.b.: i'm not entirely happy with the results yet, because diesel
heavily modifies our `plume-models/src/schema.rs`.
I'll keep fiddling until we have the same types between the two
databases.
2018-09-30 14:13:52 +02:00
Trinity Pointard d610ed1641 Add verify() to the Signer trait
And implement it for Blog and User
2018-09-30 12:08:04 +02:00
Baptiste Gelez 236cf14406
Merge pull request #245 from Plume-org/rest-api
Some API endpoints for articles
2018-09-29 16:33:31 +01:00
Bat 472da486e9 Fix the canapi::Provider impl for Post 2018-09-25 20:10:18 +01:00
Bat 1500267125 Add canapi and try to use for the API 2018-09-19 15:49:34 +01:00
Trinity Pointard fab6360100 Be less restrictive on authorized html tags
Allow users to add ids to tags
Allow users to use iframes
2018-09-19 10:51:27 +02:00
Igor Galić 06718a5c8a
directly use SafeString in InstanceSettingsForm 2018-09-14 20:25:16 +02:00
Igor Galić d62c72dde0
allocate new SafeString in FromFormValue impl
thanks to @fdb-hiroshima for this review!
2018-09-14 19:50:59 +02:00
Igor Galić 0897088aa5
add implementation for FromFormValue for SafeString
thanks again to @pwoolcoc for this!
2018-09-14 18:26:42 +02:00
Igor Galić 65e213309b
do not allocate empty strings
follow review from @pwoolcoc, and do not use

    SafeString::new(&<String>::new())

since this makes an allocation which will then just be thrown away.
Instead, we pass ""
2018-09-14 18:24:27 +02:00
Igor Galić f5c299f23c
make blog/instance description a SafeString
long_description & short_description's documentation say they can be
Markdown, but they are String, not SafeString.

This led to escaped strings being printed in the editor
https://github.com/Plume-org/Plume/issues/220
2018-09-14 15:14:24 +02:00
Bat 10da8f31b6 Hide articles on public pages
Only show them in the dashboard
2018-09-10 20:06:00 +01:00
Bat 663627c375 Add a default avatar
Really ugly, but is all my skills are permitting
2018-09-09 17:02:16 +01:00
Bat b48d1694f3 Don't call ap_url for comments, since they are based on posts URLs 2018-09-09 16:22:58 +01:00
Bat 54f6e7dfc6 Use a more classical flow for creating comments
Don't locally federate them anymore

It allows us to have them fetched later too
2018-09-09 16:08:53 +01:00
Bat 642884034d Fix build errors 2018-09-09 12:37:20 +01:00
Bat 08cb337df6 Broadcast activities to all known instances
We consider everything posted with Plume public (for the moment at least)
2018-09-09 12:19:11 +01:00
Bat 1f2bd105b6 Implement user ban 2018-09-09 11:25:55 +01:00
Bat f66ddf6ef2 Actually implement blocks 2018-09-08 22:05:48 +01:00
Bat 0a70ff2594 Merge branch 'master' of github.com:Plume-org/Plume 2018-09-08 20:32:12 +01:00
Bat f1d5865a16 Instance (un)block endpoint
And hide the block button for the local instance
2018-09-08 20:07:55 +01:00
Bat c1e0b6c306 Add admin interface to manage interface 2018-09-08 19:54:09 +01:00
Baptiste Gelez fe7f87c47f
Merge pull request #205 from lthms/recent_rocket
Update to a more recent rocket and rust toolchain
2018-09-08 19:06:52 +01:00
Thomas Letan 0ef4717a7f deps: Update to a more recent rocket and rust toolchain
With this patch, Plume will be use a more up-to-date revision of
Rocket, that works with nightly-2018-07-17. It may have been able to
make it work with a more recent revision, but it turns out rocket has
introduced several breaking changes so I’d rather fix those.

Besides updating rocket_i18n and rocket_csrf to use the same revision
than Plume, this patch deals with the new implementation of the
Uri<'_> type. It silents a class of warnings, to deal with a change in
rustc which affects diesel. This latter change should be reverted as
soon as diesel releases a new version of its crate.
2018-09-08 15:51:55 +02:00
Bat 0f5f9101b6 Only notify for mention if it is not in a comment
To avoid two similar notifications
2018-09-08 12:53:17 +01:00
Bat 008f2b1d71 Delete notifications when deleting likes/boosts/follows
Fixes #190
2018-09-07 23:29:50 +01:00
Bat 47be1541a7 Fix tag and mentions federation
Vec::append is not returning a value, but modifying the Vec
2018-09-07 21:38:22 +01:00
Bat 3918bd4501 Edit posts 2018-09-07 18:51:53 +01:00
Bat 413e34ac0e Federate article updating 2018-09-06 22:39:22 +01:00
Bat 7152d714ae Add a source property to posts
To store the Markdown
2018-09-06 20:00:55 +01:00
Bat dd9c4a6a73 Add a page to list articles by tag 2018-09-06 13:06:04 +01:00
Bat a54d2e9d71 Federate tags 2018-09-06 09:21:08 +01:00
Bat 5b3eca63e0 Make it possible to tag articles and display them 2018-09-05 21:18:27 +01:00
Bat 2b7a5bee93 Add a tag model 2018-09-05 19:05:53 +01:00
Bat 1496598a45 User feed 2018-09-05 15:21:50 +01:00
Bat babb3a81f5 Local timeline 2018-09-04 20:56:27 +01:00
Bat d60289aac8 Local instance ID is 1, not 0
This prevented local users from being removed before broadcasting an activity.

Fixes #113
2018-09-04 14:02:01 +01:00
Bat 94a386ea2c Add subtitles to articles
Fix #152
2018-09-04 12:26:13 +01:00
Bat dcebc4653a Make it possible to unfollow someone
I was sure it was already implemented, but it looks like it wasn't
2018-09-04 11:37:58 +01:00
Bat 32a4949f25 Update user information if needed
When a remote is displayed, if it has not been updated since at least 24 hours, newer informations are fetched.

Fixes #135
2018-09-03 19:53:20 +01:00
Bat 78b3202a32 Reduce a little bit bcrypt cost
From 12 to 10, to make login time shorter.
2018-09-03 17:51:32 +01:00
Bat 820516bfe5 Federate avatars 2018-09-03 13:48:34 +01:00
Bat e2e7d10929 Make it possible to choose an avatar 2018-09-03 13:04:17 +01:00
Bat aa5fa11218 Add support for avatars, and fetch remote ones 2018-09-03 12:17:59 +01:00
Bat a357dae45d Add Markdown code to copy/paste for medias 2018-09-03 11:16:07 +01:00
Bat 15f4a2079f Add support for SVG medias 2018-09-03 10:22:14 +01:00
Bat 99fdb8e680 Media deletion 2018-09-02 22:10:15 +01:00
Bat f44b6fffa3 Media upload 2018-09-02 21:55:42 +01:00
Bat 0b5eb2c946 Add a Media model 2018-09-02 12:34:48 +01:00
Bat 5af9af60f4 Docs: Add SysVinit snippet
And small fixes
2018-09-02 00:35:30 +01:00
Bat 97c0b533ab Add Atom feeds for blogs and users 2018-09-01 21:08:26 +01:00
Bat 092ad5b795 Instance about page
Fixes #39
2018-09-01 17:39:40 +01:00
Bat cea548b821 Add a way to delete articles
Fixes #116
2018-09-01 16:28:47 +01:00
Bat ed8982b7fd Add a presentation of Plume and of the instance on the homepage
Fixes #132
2018-07-27 22:16:17 +02:00
Bat 74ec59e77c Add some configuration options for instance admins 2018-07-27 19:05:36 +02:00
Bat 38d99ad5af Try to fetch followers 2018-07-27 12:53:21 +02:00
Bat 812b76b0de Use the creation date from ActivityPub when fetching remote articles 2018-07-27 00:29:21 +02:00
Bat 0314629d99 Improve the background article fetching code 2018-07-26 22:59:41 +02:00
Bat bd259891f3 Try to fetch remote articles 2018-07-26 22:23:53 +02:00
Bat 5583029b07 Update the WebFinger crate
Fixes an issue with some Mastodon accounts
2018-07-26 21:35:35 +02:00
Bat b42030e831 Try to use only "absolute" links to avoid trailing-slash bugs 2018-07-26 19:00:23 +02:00
Bat 5980c7b299 Simplify the logic to fallback to the FQN when no display name is available 2018-07-26 16:36:19 +02:00
Bat 15477875da Fix links for post from remote blogs 2018-07-26 16:19:21 +02:00
Bat b7aa1790e5 Merge branch 'master' of github.com:Plume-org/Plume 2018-07-26 16:14:48 +02:00
Bat c87d490664 Refactor notifications 2018-07-26 15:46:10 +02:00
Baptiste Gelez 16fb439ce9
Merge pull request #159 from Ilphrin/master
Add a link to the blog on article cards
2018-07-25 21:40:27 +02:00
Kevin "Ilphrin" Pellet aaae786fb7 Implement new function to Blog for the view
Added Blog::to_json and Blog::get_fqn
2018-07-25 21:22:42 +02:00
Bat 44172b67d5 Add padding for responses in comments, to let threads appear
Fixes #144
2018-07-25 18:18:41 +02:00
Bat 4e07fdbd05 Paginate followers too 2018-07-25 15:50:29 +02:00
Bat 4b0aba62f3 Add pagination for notifications
And correctly close an <a> tag
2018-07-25 15:33:54 +02:00
Bat 18125ab398 Paginate the homepage 2018-07-25 15:20:09 +02:00
Bat 5549e4d0e5 Merge branch 'master' of github.com:Plume-org/Plume 2018-07-24 14:32:11 +02:00
Kevin "Ilphrin" Pellet 89713526e2 Add a link to the blog on article cards
Fixes #134
2018-07-22 01:42:27 +02:00
Kevin "Ilphrin" Pellet cd24b0f057 Show the total number of article on a blog
fixes #150
2018-07-21 16:58:30 +02:00
Bat 67eb41add1 Add pagination to the blog page
No UI to control it yet
2018-07-20 18:42:35 +02:00
Bat b0e75f4d63 Fix the behavior of the follow button
There was a bug in Tera and in the User::is_following function.

Fix #146
2018-07-20 17:51:32 +02:00
Bat 9701340c84 Allow the summary property to be absent from AP Actors 2018-07-19 10:41:37 +02:00
Bat ce256d6e39 List authors of a blog
Update french translation accordingly

Fixes #129
2018-07-18 23:08:49 +02:00
Bat 493fe731d0 Remove a debug message while we are at it 2018-07-18 19:02:31 +02:00
Bat 2b04b39f5d Correctly parse HTTP Accept headers 2018-07-18 16:58:28 +02:00
Bat 3d436c10b1 Accept more content types when making AP requests 2018-07-18 16:25:02 +02:00
Bat 389ad28d14 Don't broadcast activities to local users
Fix #80
2018-07-18 15:49:13 +02:00
Bat cf23360c4a Avoid panics when encountering an invalid mention 2018-07-11 22:11:31 +02:00
Bat f79f01a93f Accept both actor objects and links for Follows 2018-07-08 20:01:19 +02:00
Bat 68a041711c We can't mix GET and POST (in the comment form)
in_response_to was always null
2018-06-27 00:19:18 +02:00
Bat 9a825e7066 Change the signature of ap_url to be backward-compatible 2018-06-26 17:32:35 +02:00
Bat 507d3e6183 Use USE_HTTPS to compute AP URLs
Instead of relying on cfg(debug_assertions)
2018-06-26 16:21:58 +02:00
Bat f805ec1d53 Introduce an environment variable to disable HTTPS, and use it when fetching WebFinger resources
You can now use USE_HTTPS=0 when debugging the federation locally.
2018-06-26 16:16:59 +02:00
Trinity Pointard 5133410451 Properly verify password
fix #86
2018-06-25 15:38:39 +02:00
Bat 68c7aad179 Big repository reorganization
The code is divided in three crates:
- plume-common, for the ActivityPub module, and some common utils
- plume-models, for the models and database-related code
- plume, the app itself

This new organization will allow to test it more easily, but also to create other tools that only reuse a little part of
the code (for instance a Wordpress import tool, that would just use the plume-models crate)
2018-06-23 17:36:11 +01:00