fdb-hiroshima
8a4702df92
Add unit tests for main model parts ( #310 )
...
Add tests for following models:
- Blog
- Instance
- Media
- User
2018-11-24 12:44:17 +01:00
KokaKiwi
0b9727ed28
Generate valid follow Accept activity URI ( #317 )
...
For now it only generate a "fake" URI for accept follow activities, but it should be possible to get the URI dereferencable later.
Also I don't know if this URI looks ok, I tried to get something kind of future-proof, but I don't really know about the actual URIs conventions.
Closes #313
2018-11-23 13:23:46 +01:00
Baptiste Gelez
25b7399e7f
Only list images for possible covers
2018-10-31 15:07:40 +01:00
Baptiste Gelez
4a2f5aeeeb
Display article covers
2018-10-31 15:07:40 +01:00
Baptiste Gelez
95326c09e0
Federate article covers
2018-10-31 15:07:40 +01:00
Baptiste Gelez
485aac2e20
Add an interface to select an article illustration
2018-10-31 15:07:40 +01:00
Baptiste Gelez
ab5edbc6a5
Add a cover field to posts
...
Referencing the media to use to illustrate the article
2018-10-31 15:07:40 +01:00
Baptiste Gelez
e26a150164
Make Authorization optional for read routes
...
Only require it when reading draft articles.
2018-10-30 18:13:49 +01:00
Baptiste Gelez
c341179150
ApiToken: rename what to scope
2018-10-30 18:13:49 +01:00
Baptiste Gelez
28fbf35779
Use PhantomData intead of two Options useless for Authorization
...
And remove some warnings about unused parameters
2018-10-30 18:13:49 +01:00
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
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