Commit graph

1131 commits

Author SHA1 Message Date
Daniel Supernault
66b4f8c773
Update AP Helpers, use instance filtering 2021-04-20 23:18:07 -06:00
Daniel Supernault
35393edfef
Update AdminInstanceController, invalidate banned domain cache when updated 2021-04-20 22:31:11 -06:00
Daniel Supernault
f582937300
Update admin instance page, add search and improve performance 2021-04-20 22:03:41 -06:00
Daniel Supernault
10119bbbea
Update PublicApiController, limit network pagination to 3 months 2021-04-06 23:37:53 -06:00
Daniel Supernault
af7face4da
Add Network Timeline 2021-04-06 21:17:42 -06:00
Daniel Supernault
552e950d7a
New License formats 2021-03-31 22:08:03 -06:00
Daniel Supernault
886ea6175d
Update ApiV1Controller, add missing variable 2021-03-19 21:22:37 -06:00
Daniel Supernault
e1c6297ee7
Update PublicApiController, show unlisted comments 2021-03-03 20:18:32 -07:00
Daniel Supernault
42375b3d79
Update Compose Apis, refactor rate limits 2021-03-01 20:58:35 -07:00
Daniel Supernault
b2501bfcc3
Update moderation api, invalidate profile embed 2021-02-28 23:14:27 -07:00
Daniel Supernault
9c8a87c331
Update StatusController, invalidate profile embed cache on status delete 2021-02-28 23:04:15 -07:00
Daniel Supernault
063558e3ac
Update comment apis 2021-02-28 22:41:07 -07:00
Daniel Supernault
f0e48a09a3
Update ComposeController, add autocomplete apis for hashtags and mentions 2021-02-28 22:38:07 -07:00
Daniel Supernault
f53bfa6fa6
Update Compose apis, prevent private accounts from posting public or unlisted scopes 2021-02-24 20:06:58 -07:00
Daniel Supernault
43201a70e6
Update user admin, fix pagination 2021-02-23 00:31:12 -07:00
Daniel Supernault
8feeadbf4e
Update user admin, remove expensive db query and add search 2021-02-22 23:03:49 -07:00
Daniel Supernault
2ab73e1e96
Update AdminController, update reports method 2021-02-15 21:07:18 -07:00
Daniel Supernault
5206b09627
Update ReportController, handle json reports 2021-02-15 20:23:06 -07:00
Daniel Supernault
d4c647cb4d
Update ReportController, add new report types 2021-02-15 02:49:17 -07:00
Daniel Supernault
b1fd99644b
Update AdminController, show open reports by default 2021-02-15 02:46:58 -07:00
Daniel Supernault
deb6f1153f
Update FederationController, return 404 for invalid webfinger addresses. Fixes #2647 2021-02-12 21:44:06 -07:00
Daniel Supernault
5ac9d0e8f2
Update Embeds. Fix Profile + Status embeds, remove following count and improve cache invalidation and hidden follower counts 2021-02-09 00:42:12 -07:00
Daniel Supernault
33b625f508
Update ComposeController, add mediaProcessingCheck method 2021-02-05 21:15:13 -07:00
Daniel Supernault
1404ac6e6f
Update Discover, allow public discover access 2021-02-05 21:09:03 -07:00
Daniel Supernault
ab5469ff70
Update ComposeController, use MediaStorageService for media deletes 2021-02-05 21:04:34 -07:00
Daniel Supernault
2d11317ceb
Update webfinger util, fail on invalid webfinger url 2021-02-03 20:55:49 -07:00
Daniel Supernault
1fb7e2b2c9
Update AccountController, add mutes and blocks endpoint to pixelfed api 2021-01-31 13:45:22 -07:00
Daniel Supernault
b16e9452bc
Update DiscoverController, deprecate unused endpoints 2021-01-30 23:13:54 -07:00
Daniel Supernault
9862a85599
Update InternalApiController, update discoverPosts method to improve performance 2021-01-30 21:39:31 -07:00
Daniel Supernault
090b6d0336
Update SeasonalController 2021-01-30 19:56:10 -07:00
Daniel Supernault
2eea04097a
Update DiscoverController, change api schema 2021-01-30 16:35:52 -07:00
Daniel Supernault
789ed4b498
Update ComposeController, use placeholder image for video media. Fixes #2595 2021-01-30 16:34:44 -07:00
Daniel Supernault
eab4370c84
Update Like, Status and Comment controllers to add StatusService del() method to update counts 2021-01-30 16:25:50 -07:00
Daniel Supernault
05b9445c8f
Update ApiV1Controller, add StatusService del calls to update likes_count, reblogs_count and reply_count 2021-01-30 16:15:56 -07:00
Daniel Supernault
6edaf94099
Update AdminController, fix variable name in updateSpam method 2021-01-30 09:36:09 -07:00
Daniel Supernault
7d376c64ec
Update SiteController, only allow redirects for logged in users 2021-01-28 21:25:43 -07:00
Daniel Supernault
10b178c8ee
Update SiteController, use url validator in redirect endpoint 2021-01-28 21:23:15 -07:00
Daniel Supernault
ab888b2e70
Add StatusLabelService 2021-01-27 22:25:14 -07:00
Daniel Supernault
cc2d4bf8d8
Update ComposeController, update media version 2021-01-25 22:22:01 -07:00
Daniel Supernault
889c3d8758
Update AvatarController, remove deprecated thumb_path 2021-01-24 18:22:13 -07:00
Daniel Supernault
febe9e1b6d
Add ComposeController 2021-01-24 14:11:58 -07:00
Daniel Supernault
2538673a7b
Update StatusController, unescape slashes in json response 2021-01-24 13:22:10 -07:00
Daniel Supernault
6d078377f1
Update AdminController 2021-01-23 23:12:05 -07:00
Daniel Supernault
cf40526ef9
Update mobile apis, add blurhash 2021-01-18 18:25:03 -07:00
Daniel Supernault
4415af1bf0
Update api controllers, deprecate old endpoints 2021-01-17 23:43:23 -07:00
Daniel Supernault
8132db74e5
Update MediaController, remove deprecated endpoint 2021-01-17 23:37:10 -07:00
Daniel Supernault
a98b65bf5c
Update DiscoverController 2021-01-17 22:02:27 -07:00
Daniel Supernault
0cfc12c5dd
Update StatusController, add view method 2021-01-17 21:38:34 -07:00
Daniel Supernault
5e13643246
Update MediaTagController 2021-01-17 21:27:55 -07:00
Daniel Supernault
f32072a396
Add Year in Review feature (mysql only) 2021-01-17 19:50:35 -07:00
Daniel Supernault
2159eecdbc
Add InstanceActorController 2021-01-17 01:38:01 -07:00
Daniel Supernault
51f8fe5bde
Update ApiV1Controller 2021-01-14 18:51:19 -07:00
Daniel Supernault
74ba326adb
Update DiscoverController, limit trending api to local posts 2021-01-12 22:04:25 -07:00
Daniel Supernault
d8d3331f3f
Update DiscoverController, improve trending api performance 2021-01-12 21:52:07 -07:00
Daniel Supernault
a443694dc0
Update PublicApiController 2021-01-11 18:47:16 -07:00
Daniel Supernault
b2fe219eec
Update DiscoverController, add albums and video to discover trending api 2021-01-11 00:31:21 -07:00
Daniel Supernault
96afc3e781
Update Controllers, add last_active_at logic 2021-01-09 02:41:17 -07:00
Daniel Supernault
cc3053ed5d
Update api controllers 2021-01-09 00:21:29 -07:00
Daniel Supernault
7dc3739c1d
Update StatusController, fix scope bug 2021-01-03 22:06:05 -07:00
Daniel Supernault
b9b84e6fa4
Update Follower model, increase hourly limit from 30 to 150 2020-12-27 18:15:10 -07:00
Daniel Supernault
f70826e18c
Update status model, use scope over deprecated visibility attribute 2020-12-27 18:00:43 -07:00
Daniel Supernault
0fbde91e87
Update StatusService, cast response to array 2020-12-27 17:54:55 -07:00
Daniel Supernault
6dcd472be6
Update Profile, fix status count 2020-12-27 14:45:31 -07:00
Daniel Supernault
b74e14c4e5
Update SiteController 2020-12-26 20:28:12 -07:00
Daniel Supernault
799a4cba12
Update LikeController, store status_profile_id and is_comment attributes 2020-12-26 20:18:48 -07:00
Daniel Supernault
7a68ee948a
Add StatusView model to store views for discover algorithm 2020-12-26 20:16:35 -07:00
Daniel Supernault
3244ca92ff
Update StatusController 2020-12-17 23:12:27 -07:00
Daniel Supernault
5fffe1d0dd
Update AvatarController 2020-12-17 13:14:38 -07:00
Daniel Supernault
f6528c8470
Update avatars, use jpeg default 2020-12-14 23:54:22 -07:00
Daniel Supernault
cd2661fc0b
Update 2FA setup, fix qrcode handler 2020-12-14 22:30:44 -07:00
Daniel Supernault
df9c3adff6
Update Timeline, remove simple mode and set labs deprecation date 2020-12-14 00:49:45 -07:00
Daniel Supernault
9fc5a80cd3
Update PublicApiController, add state endpoint 2020-12-13 22:51:44 -07:00
Daniel Supernault
a5019b8907
Update StatusController 2020-12-13 17:30:50 -07:00
Daniel Supernault
1325ce2cef
Update PublicApiController, use stateless transformer 2020-12-12 23:47:59 -07:00
Daniel Supernault
082c1ccb26
Add hCaptcha 2020-12-12 21:04:59 -07:00
Daniel Supernault
4a14e970f0
Update Profile model, improve counter caching 2020-12-10 22:58:13 -07:00
Daniel Supernault
c67f0c5784
Update AccountInterstitialController, add autospam type 2020-12-10 22:11:02 -07:00
Daniel Supernault
b892bcf0e8
Add autospam feature 2020-12-10 21:58:56 -07:00
Daniel Supernault
048642bead
Update Collections, add custom limit 2020-12-10 01:02:56 -07:00
Daniel Supernault
76353ca997
Update BaseApiController, add favourites method 2020-12-09 22:23:51 -07:00
Daniel Supernault
1b2fd665bf
Update compiled assets 2020-12-09 22:22:56 -07:00
Daniel Supernault
c95085ca31
Update AdminController, add appeals support 2020-12-09 22:08:32 -07:00
Daniel Supernault
003caf7e8a
Update StatusController, add interstitial logic 2020-12-09 21:43:09 -07:00
Daniel Supernault
342e7a50c9
Update PublicApiController, improve stateless object caching 2020-12-09 21:40:24 -07:00
Daniel Supernault
20681bcf14
Update InternalApiController, add interstitial logic 2020-12-09 21:36:32 -07:00
Daniel Supernault
0718711d09
Update ApiController, return status object after deletion 2020-12-09 21:34:43 -07:00
Daniel Supernault
8766ccfe4f
Add AccountInterstitial model and controller 2020-12-05 00:08:05 -07:00
Daniel Supernault
0a5a0e8616
Add federated photo filters 2020-11-27 19:52:40 -07:00
Daniel Supernault
78a8798ace
Update RegisterController, fixes #2436 2020-11-26 02:15:03 -07:00
Daniel Supernault
e2e32682fd
Update DirectMessageController, add sharedInbox support 2020-11-26 00:56:44 -07:00
Daniel Supernault
4733ca9fb9
Add shared inbox 2020-11-26 00:39:01 -07:00
Daniel Supernault
2ab2c9a974
Update DiscoverController, fix trending api 2020-11-25 17:59:13 -07:00
daniel
45458bd542
Merge pull request #2398 from delthas/feature-password-length
Make the minimum user password length configurable
2020-11-21 20:10:34 -07:00
Daniel Supernault
f8dc33cc81
Update InternalApiController 2020-11-21 19:56:25 -07:00
Daniel Supernault
e08f646008
Update DiscoverController 2020-11-21 18:58:08 -07:00
Daniel Supernault
f1c28e7d0c
Update DirectMessageController, fix pgsql bug 2020-11-21 18:33:22 -07:00
Daniel Supernault
9d07071ee0
Update DirectMessageController 2020-11-18 23:12:49 -07:00
Daniel Supernault
f796cc7c11
Update DirectMessageController 2020-11-18 23:07:00 -07:00
Daniel Supernault
4b90b1e0df
Update DirectMessageController 2020-11-18 19:51:08 -07:00
Daniel Supernault
d63569c120
Add Direct Messages 2020-11-18 14:19:02 -07:00
delthas
09479c02ca Make the minimum user password length configurable
Previously, all passwords had to be at least 12 characters long.

Some users use a slightly shorter password, so some instances could wish
to reduce the password length limit to a slightly lesser value.

This makes the minimum password length configurable in the .env file,
with the MIN_PASSWORD_LENGTH variable, that defaults to 12 to keep the
previous behaviour by default.
2020-08-31 23:01:01 +02:00
Daniel Supernault
de1cca4feb
Add password change email notification 2020-08-24 23:36:12 -06:00
Daniel Supernault
8d923d7767
Update SearchController, update version 2020-08-15 23:15:52 -06:00
Daniel Supernault
8e7f4f9d88
Update DiscoverController, fixes #2378 2020-08-13 18:52:20 -06:00
Daniel Supernault
c251d41b2e
Update Discover, add trending hashtags, places and posts 2020-08-13 18:05:36 -06:00
Daniel Supernault
d11fac0dfb
Update status embed, allow photo albums. Fixes #2374 2020-08-10 23:33:50 -06:00
Daniel Supernault
3b7ff030f2
Update RegisterController 2020-08-06 21:32:02 -06:00
Daniel Supernault
597378bfb4
Update upload endpoints with MediaBlocklist checks 2020-07-26 22:17:00 -06:00
Daniel Supernault
ba1f7e7e2c
Add MediaBlocklist feature 2020-07-26 22:05:52 -06:00
Daniel Supernault
c945263994
Update Tag People, allow untagging yourself 2020-07-24 19:49:49 -06:00
daniel
c6539bed90
Merge pull request #2316 from dx7/improve-username-email-validation
Improve error messages for username and email restricted on register page
2020-07-21 19:23:50 -06:00
Daniel Supernault
f33061642a
Update comments, fix remote reply bug 2020-07-21 19:14:48 -06:00
Daniel Supernault
f34977d9a8
Update StatusController, add shortcodeRedirect method 2020-07-20 08:32:16 -06:00
Daniel Supernault
ee93f4598c
Update InternalApiController, add media tags 2020-07-14 17:29:29 -06:00
Daniel Supernault
b3b220b9b3
Update StoryController, allow video stories 2020-07-14 17:15:18 -06:00
Daniel Supernault
711fc020e7
Add Media Tags 2020-07-14 17:04:51 -06:00
Daniel Supernault
588642123e
Update Api controllers, use MediaPathService 2020-07-12 21:27:34 -06:00
Daniel Supernault
2c440b4882
Update AccountController, prevent blocking admins 2020-07-12 21:12:39 -06:00
dx7
913bf77ba4
Improve email validation error for restricted emails 2020-07-09 21:19:57 -03:00
dx7
693f530326
Improve username validation error for restricted names 2020-07-09 21:19:26 -03:00
Daniel Supernault
725fc6c62b
Update StoryController, fix deprecated getClientSize() use 2020-06-24 20:23:03 -06:00
Daniel Supernault
00a96a15f0
Update ApiV1Controller, wrap ancestor in array 2020-06-18 21:08:13 -06:00
Daniel Supernault
a0bde855bd
Update ApiV1Controller, add status ancestor and descendant context 2020-06-18 21:03:35 -06:00
Daniel Supernault
b7ee9981eb
Update ApiV1Controller, fix instance endpoint #2233 2020-06-12 23:16:11 -06:00
Daniel Supernault
144678fc9c
Update IG Import, remove hardcoded media size limit 2020-05-27 17:09:41 -06:00
Daniel Supernault
ffccf0fd41
Update SettingsController, add 404 to import when disabled 2020-05-25 21:33:00 -06:00
Daniel Supernault
ef07d17423
Update InstagramImport trait 2020-05-25 21:31:35 -06:00
Daniel Supernault
3b7e9e07e1
Update ImportController 2020-05-25 21:30:18 -06:00
Daniel Supernault
8efe14cc4b
Update PublicApiController, order accountStatuses by id 2020-05-25 20:40:41 -06:00
Daniel Supernault
6e8e9a2d5e
Update ProfileController, remove actor object caching 2020-05-24 21:59:09 -06:00
Daniel Supernault
7680e771a7
Update ProfileController, reduce actor object ttl from 6 hours to 15 minutes 2020-05-24 21:32:11 -06:00
Daniel Supernault
6074c56838
Update AccountController 2020-05-24 02:04:53 -06:00
Daniel Supernault
c4ebe9dca9
Update PublicApiController 2020-05-23 23:04:28 -06:00
Daniel Supernault
90b89cb809
Update MomentUI 2020-05-23 01:38:23 -06:00
Daniel Supernault
33c0db3a9a
Update FederationController, fix typo 2020-05-22 17:03:33 -06:00
Daniel Supernault
0309f8a4e1
Update FederationController, remove old code 2020-05-22 15:52:49 -06:00
Daniel Supernault
29ce725c70
Update FederationController, dispatch inbox jobs now on high queue 2020-05-21 21:02:16 -06:00
Daniel Supernault
3ec5102c24
Update FederationController, move signature validation to InboxValidator job 2020-05-21 19:49:30 -06:00
Daniel Supernault
c74cd0bdf0
Add missing bookmark api endpoints 2020-05-19 14:55:26 -06:00
Daniel Supernault
cfaa248c72
Update SiteController, add legacy profile/webfinger redirect 2020-05-15 23:32:54 -06:00
Daniel Supernault
99cb48c55e
Update v1 API, add bookmarks 2020-05-15 22:55:01 -06:00
Daniel Supernault
aa49afc755
Update ApiV1Controller, fix broken auth check on public timelines. Fixes #2168 2020-05-15 20:41:12 -06:00
Daniel Supernault
302ff874cb
Update webfinger logic, fixes #2180 2020-05-15 16:10:42 -06:00
Daniel Supernault
a87cc2dcaa
Update Discover 2020-04-30 23:29:53 -06:00
Daniel Supernault
f67fada273
Update SearchController, fix self search bug and rank local matches first 2020-04-28 02:42:21 -06:00
Daniel Supernault
285bd4854b
Update ApiV1Controller, enforce public timeline setting 2020-04-28 00:12:49 -06:00
Daniel Supernault
1dc65e933e
Update StatusController, fix reblog_count bug 2020-04-27 00:14:50 -06:00
Daniel Supernault
fcab5010d6
Add UIKit model, migration and controller 2020-04-26 23:28:24 -06:00
Daniel Supernault
483548e217
Update AccountController, add followRequestJson method 2020-04-26 23:20:27 -06:00
Daniel Supernault
996866cbac
Update LikeController, fix likes_count bug 2020-04-26 23:13:39 -06:00
Daniel Supernault
b1d5eb0556
Update Timeline component, fix mod tools 2020-04-24 13:53:47 -06:00
Daniel Supernault
9b37c439f7
Update InternalApiController, update modAction method 2020-04-24 13:10:48 -06:00
Daniel Supernault
9e533c7e87
Update SearchController 2020-04-21 23:42:52 -06:00
Daniel Supernault
08383dd43d
Update PublicApiControllers, fix block/mutes filtering on public timeline 2020-04-21 19:45:42 -06:00
Daniel Supernault
7ef9056537
Update RemotePost component, fix missing like button on comments 2020-04-20 22:41:02 -06:00
Daniel Supernault
6afc61a409
Add custom content warnings for remote posts 2020-04-20 22:24:27 -06:00
Daniel Supernault
84e203a925
Add new landing page 2020-04-17 16:34:19 -06:00
Daniel Supernault
d918a68e8b
Update InternalApiController, limit remote profile ui to remote profiles 2020-04-16 20:18:32 -06:00
Daniel Supernault
324ccd0ab8
Update ApiV1Controller, fixes #2112 2020-04-16 15:07:46 -06:00
Daniel Supernault
599ab152a7
Update PublicApiController, remove trailing comma 2020-04-13 22:15:23 -06:00
Daniel Supernault
c84cee5ae0
Update ActivityPub Outbox, fixes #2100 2020-04-11 22:12:28 -06:00
Daniel Supernault
0540a28ad1
Update oauth api, allow multiple redirect_uris. Fixes #2106 2020-04-11 20:14:50 -06:00
Daniel Supernault
95bce31e62
Add remote posts and profiles 2020-04-08 21:34:31 -06:00
Daniel Supernault
e6190b896b
Update internal apis 2020-03-24 23:00:02 -06:00
Daniel Supernault
869b4ff727
Update SearchController, add WebfingerService support 2020-03-24 22:54:19 -06:00
Daniel Supernault
3a828522dd
Update LikeController 2020-03-20 21:17:14 -06:00
Daniel Supernault
01525cba4c
Update ApiV1Controller, fix unfavourite bug #2088 2020-03-20 21:16:31 -06:00
Daniel Supernault
b6f56c2751
Update ApiV1Controller, fix link header pagination 2020-03-19 15:34:04 -06:00
Daniel Supernault
e3b7c7ccb1
Update ApiV1Controller, fix link header pagination 2020-03-19 15:29:18 -06:00
Daniel Supernault
0a9654e3b8
Update ApiV1Controller, fix link header pagination 2020-03-19 14:53:02 -06:00
Daniel Supernault
737f3da5a4
Update ApiV1Controller, fix link header pagination 2020-03-19 14:32:26 -06:00
Daniel Supernault
ebbdb4ab96
Update ApiV1Controller 2020-03-18 20:23:39 -06:00
Daniel Supernault
4e3c952cf3
Update v1 notifications api, fix optional params 2020-03-18 16:53:54 -06:00
Daniel Supernault
0c82c97069
Added trusted devices to sudo mode 2020-03-14 22:35:35 -06:00
Daniel Supernault
7bf9e78f8e
Update PublicApiController 2020-03-14 21:21:45 -06:00
Daniel Supernault
eeca1fbc54
Update ApiV1Controller 2020-02-27 23:31:18 -07:00
Daniel Supernault
7bb9fb1f01
Update ApiV1Controller 2020-02-27 22:11:42 -07:00
Daniel Supernault
c9057e87ba
Update ContactController, fixes #2042 2020-02-22 21:07:59 -07:00
daniel
2bf9f74fcd
Merge pull request #2050 from shleeable/patch-3
Dupe bot value in InstanceApiController.php
2020-02-22 21:05:24 -07:00
Shlee
0fabac50e3
Update InstanceApiController.php 2020-02-22 21:47:49 +08:00
Ashley Hull
9c84df49ff typo 2020-02-22 19:33:35 +08:00
Daniel Supernault
db46f7ddbb
Update ProfileController, revert pgsql change 2020-02-20 22:52:58 -07:00
Daniel Supernault
77778d3e41
Update admin modlogs 2020-02-20 00:41:19 -07:00
Daniel Supernault
e07bd934ac
Update AdminUserController, fix modlog bug 2020-02-20 00:01:18 -07:00
Daniel Supernault
c5e8e7907a
Update AdminUserController, add modlog support 2020-02-19 23:23:52 -07:00
Daniel Supernault
9be19ad880
Update AdminUserController, add account deletion handler 2020-02-19 22:55:10 -07:00
Daniel Supernault
826978ce08
Update BaseApiController, invalidate session after account deletion 2020-02-19 22:53:04 -07:00
Daniel Supernault
a7adfb9457
Update AdminUserController modtools 2020-02-19 21:15:49 -07:00
Daniel Supernault
a4cf21eaad
Update AdminUserController, add moderation method 2020-02-19 20:45:11 -07:00
Daniel Supernault
a73fad75b0
Update ApiV1Controller, fix update_credentials endpoint 2020-02-19 19:57:30 -07:00
Daniel Supernault
c8abffb811
Update TimelineController 2020-02-18 00:38:25 -07:00
Daniel Supernault
a84ff19451
Update CollectionController, fix null bug 2020-02-18 00:36:49 -07:00
Daniel Supernault
c568d54893
Update NewroomController, update title length limit from 25 to 40 2020-02-18 00:34:59 -07:00
Daniel Supernault
9a0c5bc8ae
Update admin dashboard 2020-02-18 00:22:47 -07:00
Daniel Supernault
81f4ccf979
Update CommentController 2020-02-18 00:19:18 -07:00
Daniel Supernault
6a16559132
Update DangerZone/Sudo middleware 2020-02-17 23:16:44 -07:00
Daniel Supernault
5ffa71dacd
Update StoryController, fixes #2018 2020-02-17 00:00:33 -07:00
Daniel Supernault
5bcb43a673
Update RegisterController, fix CI bug 2020-02-16 23:26:49 -07:00
Daniel Supernault
14ba350ba3
Fix postgres bugs 2020-02-16 23:15:24 -07:00
Daniel Supernault
dd5fa3a49d
Update PlaceController, fixes #2017 2020-02-16 01:28:48 -07:00