Baptiste Gelez
0dbf9f519e
AppEndpoint.name is required for both the client and server
2018-10-30 18:13:49 +01:00
Baptiste Gelez
31641b1ea1
New request guard: Authorization<Action, Scope>
...
Filter requests that don't have an API token authorized to read or write
a specific scope;
2018-10-30 18:13:49 +01:00
Baptiste Gelez
9a13d804c5
impl FromRequest for ApiToken
...
and use it for the posts API
2018-10-30 18:13:49 +01:00
Baptiste Gelez
2394ff424b
Add an ApiToken model, and an endpoint to get one
2018-10-30 18:13:49 +01:00
Baptiste Gelez
f2190adfc2
Add an API endpoint to register apps
2018-10-30 18:13:49 +01:00
Baptiste Gelez
4c8a727e9e
Add a model for external apps
...
Stores their name, website, and credentials
2018-10-30 18:13:49 +01:00
Trinity Pointard
76ca76f068
Update tags and hashtags on remote post edition
2018-10-29 20:54:27 +01:00
Trinity Pointard
c4fc656809
Update mentions on remote post edition
2018-10-29 20:54:27 +01:00
Trinity Pointard
f147885f08
Detect if tags are hashtags when receiving new posts
2018-10-29 20:54:27 +01:00
Trinity Pointard
9d7ae694a8
Delete notification on post deletion
2018-10-29 20:54:27 +01:00
Trinity Pointard
2523f3b523
Prevent duplication of mention on post update
...
and delete mentions and notifications of user no longer mentioned
2018-10-29 20:54:27 +01:00
Trinity Pointard
0bb719830a
Fix incorrect media link
...
Fix #292
2018-10-27 19:21:50 +02:00
Baptiste Gelez
fcf911fac9
ActivityPub: don't delete anything if the actor is not authorized
2018-10-22 16:29:25 +01:00
Baptiste Gelez
fc5acac861
Merge pull request #283 from Plume-org/hashtags
...
Support hashtags
2018-10-21 13:53:15 +01:00
Trinity Pointard
95ea248518
Add support for hashtag on user interface
...
Add migration to fix typo
Add support for linking hashtags with posts
Rework tag search page so it says a nicer message than page not found
when no post use that tag
Add new string to translation
2018-10-20 19:27:49 +02:00
Trinity Pointard
4fa3a0f6ee
Add support for hashtags in md parser
2018-10-20 16:38:16 +02:00
Trinity Pointard
eca458b0e5
Add support for blog deletion
...
fix #181
2018-10-20 15:03:59 +02:00
Trinity Pointard
a6e73f4667
Allow tag deletion
...
Fix #232
2018-10-20 14:05:41 +02:00
Trinity Pointard
4e6f3209d5
Normalize panic message
...
Change all unwrap to expect
Normalize expect's messages
Don't panic where it could be avoided easily
2018-10-20 08:44:33 +02:00
Trinity Pointard
ed5bafbbc4
Update webfinger and reqwest
...
Update webfinger to 0.3.1
Update reqwest to 0.9
Fix #257
2018-10-11 13:51:45 +02:00
Baptiste Gelez
8fdb55a501
Merge pull request #256 from Plume-org/verify-signature
...
Verify activity's signature
2018-10-10 21:31:11 +01:00
Baptiste Gelez
09e7226c23
Don't lowercase URL for requests signatures
2018-10-10 20:23:39 +00:00
Trinity Pointard
ba4695f490
Add support for signature verification on pseudo header
...
Add support for pseudo-header '(request-target)'
Add some logging for denied request
2018-10-10 21:10:43 +02:00
Bat
3f18cdd38b
Add .swp to .gitignore
2018-10-08 20:42:40 +01:00
Bat
4f84b2a3ed
Impl SQL traits for SafeString only for the selected backend
...
Fixes #269
2018-10-08 18:58:15 +01:00
Baptiste Gelez
0469b8dae2
Merge pull request #266 from Plume-org/cc-by-sa
...
Change default license to CC-BY-SA
2018-10-07 21:28:43 +01:00
Bat
9cc795d8be
Replace DB_URL with DATABASE_URL
...
This way it is shared with diesel, which simplifies a lot the setup
Also fixes a few issues in the documentation, that are not directly related
2018-10-07 11:00:50 +01:00
Bat
387efbf3e9
Change default license to CC-BY-SA
...
Fixes #258
2018-10-06 18:19:45 +01:00
Bat
d08c21d58d
Delete posts when deleting account
2018-10-06 12:37:28 +01:00
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
Igor Galić
e5691f7b23
add sqlite as diesel dependency
2018-09-30 14:13:42 +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
8fa83dfe25
Version bump
...
0.1.x was the pre-alpha.
The first Alpha will be 0.2.x
2018-09-11 19:53:14 +01: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
3bc90e71d4
Clean Cargo.toml files
2018-06-23 17:39:58 +01: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