1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-28 01:32:42 +01:00
phorge-phorge/src/applications
epriestley deb754dfe1 Make SSH key revocation actually prevent adding the same key back
Summary:
Ref T13043. In an earlier change I updated this langauge from "Deactivate" to "Revoke", but the behavior doesn't quite match.

This table has a unique key on `<isActive, keyBody>`, which enforces the rule that "a key can only be active for one unique user".

However, we set `isActive` to `null` when we revoke a key, and multiple rows are allowed to have the value `<null, "asdf">` (since a `null` column in a unique key basically means "don't enforce this unique key").

This is intentional, to support this workflow:

  - You add key X to bot A.
  - Whoops, wrong account.
  - You revoke key X from bot A.
  - You add key X to bot B.

This isn't necessarily a great workflow -- ideally, you'd throw key X away and go generate a new key after you realize you made a mistake -- but it's the sort of practical workflow that users are likely to expect and want to see work ("I don't want to generate a new key, it's already being used by 5 other services and cycling it is a ton of work and this is just a test install for my dog anyway."), and there's no technical reason we can't support it.

To prevent users from adding keys on the revocation list back to their account, just check explicitly.

(This is probably better in general anyway, because "cert-authority" support from PHI269 may mean that two keys are "equivalent" even if their text differs, and we may not be able to rely on a database test anyway.)

Test Plan:
  - Added the key `ssh-rsa asdf` to my account.
  - Revoked it.
  - Tried to add it again.
    - Before patch: worked.
    - After patch: error, "this key has been revoked".
  - Added it to a different account (the "I put it on the wrong bot" workflow).

Reviewers: amckinley

Reviewed By: amckinley

Maniphest Tasks: T13043

Differential Revision: https://secure.phabricator.com/D18928
2018-01-25 19:43:37 -08:00
..
almanac Fix spelling 2017-10-09 10:48:04 -07:00
aphlict Discard stdout/stderr from the aphlict subprocess when running in daemon (normal) mode 2016-11-13 16:43:42 -08:00
arcanist/conduit Remove remaining arcanist project code 2015-07-08 19:37:28 +10:00
audit Fix spelling 2017-10-09 10:48:04 -07:00
auth Make SSH key revocation actually prevent adding the same key back 2018-01-25 19:43:37 -08:00
badges Fix a transposed feed story in Badges 2018-01-16 13:57:01 -08:00
base Rebuild the bulk editor on SearchEngine 2018-01-19 12:40:08 -08:00
cache Add "persistence" types (data, cache, or index) to tables, and tweak what "storage dump" dumps 2017-10-04 12:09:33 -07:00
calendar Don't notify without notifiable attendees 2017-12-21 12:46:46 -08:00
celerity Add a red button to PHUIButtonView 2017-08-06 08:09:40 -07:00
chatlog Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
conduit Fix failure to record pullerPHID in repository pull logs 2018-01-23 14:09:42 -08:00
config Include extension name for GDSetupCheck. 2018-01-24 16:02:28 -05:00
conpherence Fix spelling 2017-10-09 10:48:04 -07:00
console Separate button CSS classes 2017-06-05 20:14:34 +00:00
countdown Remove old Countdown route 2017-04-13 13:04:55 -07:00
daemon Show related objects on daemon worker task queue detail pages 2018-01-20 06:52:15 -08:00
dashboard Fix spelling 2017-10-09 10:48:04 -07:00
differential Fix a race between Harbormaster and reviewers (often bots) to publish drafts for review 2018-01-24 11:16:06 -08:00
diffusion Make minor correctness and display improvements to pull logs 2018-01-23 14:13:18 -08:00
diviner Fix a constant typo in Diviner ("DECLARATAION" -> "TION") 2017-03-04 09:54:10 -08:00
doorkeeper Remove empty implementations of describeAutomaticCapabilities() 2016-11-09 15:24:22 -08:00
draft/storage Clean up some log spam caused by races in VersionedDraft 2016-09-05 13:01:53 -07:00
drydock Allow "drydock.blueprint.edit" to create blueprints 2018-01-04 10:08:07 -08:00
fact Update Facts for newPage 2016-04-03 15:07:52 -07:00
favorites Add some style to label in Favorites Menu 2017-02-01 07:20:31 -08:00
feed Fix a minor/harmless race with feed publishers in certain draft states 2018-01-04 08:14:55 -08:00
files Fix some issues with Diffusion file data limits 2018-01-22 11:52:37 -08:00
flag Remove counts from home navigation 2017-01-21 13:55:40 -08:00
fund Change 'tempate' to 'template' 2017-10-09 11:56:06 -07:00
guides Make "simple" a "button type", not a "color" 2017-05-30 17:59:37 -07:00
harbormaster Provide ANSI color information for Harbormaster build status via API 2017-12-23 11:39:05 -08:00
help Redesign header menus and search 2017-01-17 12:13:06 -08:00
herald Respect token limits for "Assign to" and custom datasource fields in Herald 2018-01-22 11:54:12 -08:00
home Update menu item names for Applications -> Favorites 2017-09-05 19:05:03 -07:00
legalpad Lightly modernize LegalpadDocumentSearchEngine 2017-11-28 09:56:49 -08:00
lipsum Add "--force" and "--quickly" flags to bin/lipsum 2017-02-27 09:09:41 -08:00
macro Add Conduit edit endpoint for Macro 2017-05-10 14:54:43 -07:00
maniphest Support bulk edit of "points" for Maniphest tasks 2018-01-22 11:59:52 -08:00
meta Modernize QuickSearch typeahead 2017-11-30 15:07:49 +00:00
metamta Don't run Herald build and mail rules when they don't make sense 2017-10-27 08:44:12 -07:00
multimeter Add a cluster.read-only option 2016-04-09 13:40:47 -07:00
notification Make "No Notifications" setting less broad, and fix a bug with default display behavior 2017-09-13 15:32:46 -07:00
nuance Mark "Settings" and "Nuance" as launchable applications 2017-06-01 12:40:25 -07:00
oauthserver Update Settings for WHITE_CONFIG style boxes 2017-09-05 19:42:34 -07:00
owners Fix an issue with attempting to index comments on packages 2017-10-20 09:38:45 -07:00
packages Fixing copy/paste mistake 2017-04-19 15:48:59 -07:00
passphrase Fix spelling 2017-10-09 10:48:04 -07:00
paste Fix bad "editPolicy" key in Paste 2017-04-05 13:09:51 -07:00
people Rename "PhabricatorPasswordHashInterface" to "PhabricatorAuthPasswordHashInterface" 2018-01-23 14:06:05 -08:00
phame Fix a couple of other missing getApplicationTransactionCommentObject() implementations 2017-10-24 09:05:23 -07:00
phid Fix spelling 2017-10-09 10:48:04 -07:00
phlux Update Phlux edit UI 2017-09-07 12:47:36 -07:00
pholio Support Ferret engine in Pholio 2017-09-07 13:25:29 -07:00
phortune Fix spelling 2017-10-09 10:48:04 -07:00
phpast Update phpast for new UI 2016-04-05 13:52:59 -07:00
phragment Remove PhabricatorFile::buildFromFileDataOrHash() 2017-04-04 16:18:00 -07:00
phrequent Fix spelling 2017-10-09 10:48:04 -07:00
phriction Fix spelling 2017-10-09 10:48:04 -07:00
phurl Change PhabricatorPhurlURLViewController to use EditEngine for commenting 2017-04-17 10:19:21 -07:00
policy Fix spelling 2017-10-09 10:48:04 -07:00
ponder Convert Ponder Questions to Ferret engine 2017-10-26 18:18:04 -07:00
project Restore "Tags" and "Subscribers" edit capabilities to Maniphest bulk editor 2018-01-19 12:47:10 -08:00
releeph Fix spelling 2017-10-09 10:48:04 -07:00
remarkup/conduit
repository Don't error when trying to mirror or observe an empty repository 2018-01-24 15:50:30 -08:00
search Modernize QuickSearch typeahead 2017-11-30 15:07:49 +00:00
settings Add a rate limit for guessing old passwords when changing passwords 2018-01-23 13:46:06 -08:00
slowvote Update slowvote for new edit UI 2017-09-07 12:51:59 -07:00
spaces Update Spaces for new edit UI 2017-09-07 11:33:59 -07:00
subscriptions Restore "Tags" and "Subscribers" edit capabilities to Maniphest bulk editor 2018-01-19 12:47:10 -08:00
support/application
system When destorying a repository, print a notification about removing the working copy 2017-08-01 08:57:39 -07:00
tokens Property list view on Diffusion commits should show build status but not Subscriptions, Projects, or Tokens 2017-12-01 18:16:26 +00:00
transactions Set an explicit default value for the bulk action control 2018-01-25 10:42:42 -08:00
typeahead Modernize QuickSearch typeahead 2017-11-30 15:07:49 +00:00
uiexample Fix spelling 2017-10-09 10:48:04 -07:00
xhprof Allow XHProf profiles to be drag-and-dropped to upload them 2017-02-23 11:16:19 -08:00