2011-01-16 22:51:39 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This file is automatically generated. Use 'phutil_mapper.php' to rebuild it.
|
|
|
|
* @generated
|
|
|
|
*/
|
|
|
|
|
|
|
|
phutil_register_library_map(array(
|
|
|
|
'class' =>
|
|
|
|
array(
|
2011-05-09 10:10:40 +02:00
|
|
|
'Aphront304Response' => 'aphront/response/304',
|
2011-01-30 21:08:40 +01:00
|
|
|
'Aphront400Response' => 'aphront/response/400',
|
2011-01-16 22:51:39 +01:00
|
|
|
'Aphront404Response' => 'aphront/response/404',
|
2011-01-25 20:57:47 +01:00
|
|
|
'AphrontAjaxResponse' => 'aphront/response/ajax',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontApplicationConfiguration' => 'aphront/applicationconfiguration',
|
Improve drag-and-drop uploader
Summary:
Make it discoverable, show uploading progress, show file thumbnails, allow you
to remove files, make it a generic form component.
Test Plan:
Uploaded ducks
Reviewed By: tomo
Reviewers: aran, tomo, jungejason, tuomaspelkonen
CC: anjali, aran, epriestley, tomo
Differential Revision: 334
2011-05-23 01:11:41 +02:00
|
|
|
'AphrontAttachedFileView' => 'view/control/attachedfile',
|
Fix conservative CSRF token cycling limit
Summary:
We currently cycle CSRF tokens every hour and check for the last two valid ones.
This means that a form could go stale in as little as an hour, and is certainly
stale after two.
When a stale form is submitted, you basically get a terrible heisen-state where
some of your data might persist if you're lucky but more likely it all just
vanishes. The .js file below outlines some more details.
This is a pretty terrible UX and we don't need to be as conservative about CSRF
validation as we're being. Remedy this problem by:
- Accepting the last 6 CSRF tokens instead of the last 1 (i.e., pages are
valid for at least 6 hours, and for as long as 7).
- Using JS to refresh the CSRF token every 55 minutes (i.e., pages connected
to the internet are valid indefinitely).
- Showing the user an explicit message about what went wrong when CSRF
validation fails so the experience is less bewildering.
They should now only be able to submit with a bad CSRF token if:
- They load a page, disconnect from the internet for 7 hours, reconnect, and
submit the form within 55 minutes; or
- They are actually the victim of a CSRF attack.
We could eventually fix the first one by tracking reconnects, which might be
"free" once the notification server gets built. It will probably never be an
issue in practice.
Test Plan:
- Reduced CSRF cycle frequency to 2 seconds, submitted a form after 15
seconds, got the CSRF exception.
- Reduced csrf-refresh cycle frequency to 3 seconds, submitted a form after 15
seconds, got a clean form post.
- Added debugging code the the csrf refresh to make sure it was doing sensible
things (pulling different tokens, finding all the inputs).
Reviewed By: aran
Reviewers: tuomaspelkonen, jungejason, aran
CC: aran, epriestley
Differential Revision: 660
2011-07-13 23:05:18 +02:00
|
|
|
'AphrontCSRFException' => 'aphront/exception/csrf',
|
Build a basic calendar view
Summary:
This is a very small step toward building a Status and possibly an Oncall tool.
Build a calendar view which renders months.
Much of my hesitance to bang these tools out is that dealing with
dates/calendaring is basically horrible, so I'm trying to ease into it.
This calendar is locale-aware and all that jazz.
Test Plan:
- See:
https://secure.phabricator.com/file/view/PHID-FILE-c07a9c663a7d040d2529/
- Verified that months have the right number of days, today is the right day
of the week, months begin on the day after previous months end on, etc.
Reviewed By: aran
Reviewers: jungejason, tuomaspelkonen, aran
Commenters: cwbeck, jungejason
CC: blair, aran, epriestley, cwbeck, jungejason
Differential Revision: 791
2011-08-08 03:26:31 +02:00
|
|
|
'AphrontCalendarMonthView' => 'applications/calendar/view/month',
|
Tweak style on "Create Another Task" button
Summary:
Not totally sure I'm in love with this but I think it's somewhat non-terrible,
despite the lack of lens flare.
Also made "Cancel" take you back to the task if you got to "Create" from "Create
Another Task".
Test Plan:
- Style:
https://secure.phabricator.com/file/view/PHID-FILE-ad37d3c1f3b2c7a7a7d1/
- Hit "Cancel" from "Create Another", got sent back to task.
- Hit "Cancel" from normal create, got sent back to list.
- Tried to save an invalid task after making changes to CC/Projects, changes
were preserved.
Reviewed By: codeblock
Reviewers: hunterbridges, jungejason, tuomaspelkonen, aran, codeblock
CC: aran, epriestley, codeblock
Differential Revision: 736
2011-07-27 19:46:22 +02:00
|
|
|
'AphrontContextBarView' => 'view/layout/contextbar',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontController' => 'aphront/controller',
|
2011-03-13 01:17:34 +01:00
|
|
|
'AphrontCrumbsView' => 'view/layout/crumbs',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontDatabaseConnection' => 'storage/connection/base',
|
|
|
|
'AphrontDefaultApplicationConfiguration' => 'aphront/default/configuration',
|
|
|
|
'AphrontDefaultApplicationController' => 'aphront/default/controller',
|
|
|
|
'AphrontDialogResponse' => 'aphront/response/dialog',
|
|
|
|
'AphrontDialogView' => 'view/dialog',
|
|
|
|
'AphrontErrorView' => 'view/form/error',
|
2011-01-26 22:21:12 +01:00
|
|
|
'AphrontException' => 'aphront/exception/base',
|
2011-05-23 02:06:42 +02:00
|
|
|
'AphrontFilePreviewView' => 'view/layout/filepreview',
|
2011-01-23 03:33:00 +01:00
|
|
|
'AphrontFileResponse' => 'aphront/response/file',
|
2011-01-26 02:40:21 +01:00
|
|
|
'AphrontFormCheckboxControl' => 'view/form/control/checkbox',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormControl' => 'view/form/control/base',
|
2011-02-05 02:53:14 +01:00
|
|
|
'AphrontFormDividerControl' => 'view/form/control/divider',
|
Improve drag-and-drop uploader
Summary:
Make it discoverable, show uploading progress, show file thumbnails, allow you
to remove files, make it a generic form component.
Test Plan:
Uploaded ducks
Reviewed By: tomo
Reviewers: aran, tomo, jungejason, tuomaspelkonen
CC: anjali, aran, epriestley, tomo
Differential Revision: 334
2011-05-23 01:11:41 +02:00
|
|
|
'AphrontFormDragAndDropUploadControl' => 'view/form/control/draganddropupload',
|
2011-01-23 03:33:00 +01:00
|
|
|
'AphrontFormFileControl' => 'view/form/control/file',
|
2011-06-10 00:28:29 +02:00
|
|
|
'AphrontFormLayoutView' => 'view/form/layout',
|
2011-01-24 20:36:53 +01:00
|
|
|
'AphrontFormMarkupControl' => 'view/form/control/markup',
|
2011-01-31 20:55:26 +01:00
|
|
|
'AphrontFormPasswordControl' => 'view/form/control/password',
|
|
|
|
'AphrontFormRecaptchaControl' => 'view/form/control/recaptcha',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormSelectControl' => 'view/form/control/select',
|
2011-01-23 03:33:00 +01:00
|
|
|
'AphrontFormStaticControl' => 'view/form/control/static',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormSubmitControl' => 'view/form/control/submit',
|
|
|
|
'AphrontFormTextAreaControl' => 'view/form/control/textarea',
|
|
|
|
'AphrontFormTextControl' => 'view/form/control/text',
|
2011-04-04 00:50:06 +02:00
|
|
|
'AphrontFormToggleButtonsControl' => 'view/form/control/togglebuttons',
|
2011-01-25 22:48:05 +01:00
|
|
|
'AphrontFormTokenizerControl' => 'view/form/control/tokenizer',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormView' => 'view/form/base',
|
2011-02-20 21:50:28 +01:00
|
|
|
'AphrontHeadsupActionListView' => 'view/layout/headsup/actionlist',
|
|
|
|
'AphrontHeadsupActionView' => 'view/layout/headsup/action',
|
2011-04-30 19:11:41 +02:00
|
|
|
'AphrontIsolatedDatabaseConnection' => 'storage/connection/isolated',
|
|
|
|
'AphrontIsolatedDatabaseConnectionTestCase' => 'storage/connection/isolated/__tests__',
|
2011-06-08 20:53:10 +02:00
|
|
|
'AphrontKeyboardShortcutsAvailableView' => 'view/widget/keyboardshortcuts',
|
2011-04-04 00:50:06 +02:00
|
|
|
'AphrontListFilterView' => 'view/layout/listfilter',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontMySQLDatabaseConnection' => 'storage/connection/mysql',
|
|
|
|
'AphrontNullView' => 'view/null',
|
|
|
|
'AphrontPageView' => 'view/page/base',
|
2011-04-01 02:06:33 +02:00
|
|
|
'AphrontPagerView' => 'view/control/pager',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontPanelView' => 'view/layout/panel',
|
2011-04-30 09:18:13 +02:00
|
|
|
'AphrontQueryAccessDeniedException' => 'storage/exception/accessdenied',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontQueryConnectionException' => 'storage/exception/connection',
|
|
|
|
'AphrontQueryConnectionLostException' => 'storage/exception/connectionlost',
|
|
|
|
'AphrontQueryCountException' => 'storage/exception/count',
|
2011-01-31 06:28:45 +01:00
|
|
|
'AphrontQueryDuplicateKeyException' => 'storage/exception/duplicatekey',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontQueryException' => 'storage/exception/base',
|
|
|
|
'AphrontQueryObjectMissingException' => 'storage/exception/objectmissing',
|
|
|
|
'AphrontQueryParameterException' => 'storage/exception/parameter',
|
|
|
|
'AphrontQueryRecoverableException' => 'storage/exception/recoverable',
|
2011-01-26 22:21:12 +01:00
|
|
|
'AphrontRedirectException' => 'aphront/exception/redirect',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontRedirectResponse' => 'aphront/response/redirect',
|
2011-05-16 20:43:39 +02:00
|
|
|
'AphrontReloadResponse' => 'aphront/response/reload',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontRequest' => 'aphront/request',
|
2011-01-30 18:15:01 +01:00
|
|
|
'AphrontRequestFailureView' => 'view/page/failure',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontResponse' => 'aphront/response/base',
|
2011-01-24 18:00:29 +01:00
|
|
|
'AphrontSideNavView' => 'view/layout/sidenav',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontTableView' => 'view/control/table',
|
2011-03-23 04:41:02 +01:00
|
|
|
'AphrontTokenizerTemplateView' => 'view/control/tokenizer',
|
2011-04-04 04:20:47 +02:00
|
|
|
'AphrontTypeaheadTemplateView' => 'view/control/typeahead',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontURIMapper' => 'aphront/mapper',
|
|
|
|
'AphrontView' => 'view/base',
|
|
|
|
'AphrontWebpageResponse' => 'aphront/response/webpage',
|
2011-01-31 20:55:26 +01:00
|
|
|
'CelerityAPI' => 'infrastructure/celerity/api',
|
|
|
|
'CelerityResourceController' => 'infrastructure/celerity/controller',
|
|
|
|
'CelerityResourceMap' => 'infrastructure/celerity/map',
|
|
|
|
'CelerityStaticResourceResponse' => 'infrastructure/celerity/response',
|
2011-01-24 18:00:29 +01:00
|
|
|
'ConduitAPIMethod' => 'applications/conduit/method/base',
|
|
|
|
'ConduitAPIRequest' => 'applications/conduit/protocol/request',
|
2011-01-24 20:30:10 +01:00
|
|
|
'ConduitAPI_conduit_connect_Method' => 'applications/conduit/method/conduit/connect',
|
2011-06-14 21:17:14 +02:00
|
|
|
'ConduitAPI_conduit_getcertificate_Method' => 'applications/conduit/method/conduit/getcertificate',
|
2011-02-19 07:36:32 +01:00
|
|
|
'ConduitAPI_conduit_ping_Method' => 'applications/conduit/method/conduit/ping',
|
2011-03-15 21:38:14 +01:00
|
|
|
'ConduitAPI_daemon_launched_Method' => 'applications/conduit/method/daemon/launched',
|
|
|
|
'ConduitAPI_daemon_log_Method' => 'applications/conduit/method/daemon/log',
|
2011-01-24 20:01:53 +01:00
|
|
|
'ConduitAPI_differential_creatediff_Method' => 'applications/conduit/method/differential/creatediff',
|
2011-02-06 22:49:23 +01:00
|
|
|
'ConduitAPI_differential_createrevision_Method' => 'applications/conduit/method/differential/createrevision',
|
2011-02-06 23:43:06 +01:00
|
|
|
'ConduitAPI_differential_find_Method' => 'applications/conduit/method/differential/find',
|
2011-04-21 00:29:02 +02:00
|
|
|
'ConduitAPI_differential_getalldiffs_Method' => 'applications/conduit/method/differential/getalldiffs',
|
2011-02-09 18:41:26 +01:00
|
|
|
'ConduitAPI_differential_getcommitmessage_Method' => 'applications/conduit/method/differential/getcommitmessage',
|
2011-02-19 07:28:03 +01:00
|
|
|
'ConduitAPI_differential_getcommitpaths_Method' => 'applications/conduit/method/differential/getcommitpaths',
|
2011-02-19 07:15:28 +01:00
|
|
|
'ConduitAPI_differential_getdiff_Method' => 'applications/conduit/method/differential/getdiff',
|
2011-04-21 01:38:16 +02:00
|
|
|
'ConduitAPI_differential_getrevision_Method' => 'applications/conduit/method/differential/getrevision',
|
2011-04-20 01:24:45 +02:00
|
|
|
'ConduitAPI_differential_getrevisionfeedback_Method' => 'applications/conduit/method/differential/getrevisionfeedback',
|
2011-02-09 18:48:26 +01:00
|
|
|
'ConduitAPI_differential_markcommitted_Method' => 'applications/conduit/method/differential/markcommitted',
|
2011-02-06 22:42:00 +01:00
|
|
|
'ConduitAPI_differential_parsecommitmessage_Method' => 'applications/conduit/method/differential/parsecommitmessage',
|
2011-01-24 21:07:34 +01:00
|
|
|
'ConduitAPI_differential_setdiffproperty_Method' => 'applications/conduit/method/differential/setdiffproperty',
|
2011-02-06 23:00:32 +01:00
|
|
|
'ConduitAPI_differential_updaterevision_Method' => 'applications/conduit/method/differential/updaterevision',
|
2011-04-22 03:47:04 +02:00
|
|
|
'ConduitAPI_differential_updatetaskrevisionassoc_Method' => 'applications/conduit/method/differential/updatetaskrevisionassoc',
|
2011-06-09 01:16:59 +02:00
|
|
|
'ConduitAPI_differential_updateunitresults_Method' => 'applications/conduit/method/differential/updateunitresults',
|
2011-04-14 01:39:08 +02:00
|
|
|
'ConduitAPI_diffusion_getcommits_Method' => 'applications/conduit/method/diffusion/getcommits',
|
2011-05-20 00:36:17 +02:00
|
|
|
'ConduitAPI_diffusion_getrecentcommitsbypath_Method' => 'applications/conduit/method/diffusion/getrecentcommitsbypath',
|
2011-07-05 17:35:18 +02:00
|
|
|
'ConduitAPI_feed_publish_Method' => 'applications/conduit/method/feed/publish',
|
2011-05-21 18:53:50 +02:00
|
|
|
'ConduitAPI_file_download_Method' => 'applications/conduit/method/file/download',
|
2011-07-29 19:00:16 +02:00
|
|
|
'ConduitAPI_file_info_Method' => 'applications/conduit/method/file/info',
|
2011-01-24 18:00:29 +01:00
|
|
|
'ConduitAPI_file_upload_Method' => 'applications/conduit/method/file/upload',
|
2011-06-27 10:00:28 +02:00
|
|
|
'ConduitAPI_maniphest_info_Method' => 'applications/conduit/method/maniphest/info',
|
2011-07-30 03:31:14 +02:00
|
|
|
'ConduitAPI_paste_Method' => 'applications/conduit/method/paste/base',
|
|
|
|
'ConduitAPI_paste_create_Method' => 'applications/conduit/method/paste/create',
|
2011-06-14 07:21:30 +02:00
|
|
|
'ConduitAPI_paste_info_Method' => 'applications/conduit/method/paste/info',
|
2011-04-12 06:51:36 +02:00
|
|
|
'ConduitAPI_path_getowners_Method' => 'applications/conduit/method/path/getowners',
|
2011-07-13 04:18:20 +02:00
|
|
|
'ConduitAPI_slowvote_info_Method' => 'applications/conduit/method/slowvote/info',
|
2011-01-24 20:36:53 +01:00
|
|
|
'ConduitAPI_user_find_Method' => 'applications/conduit/method/user/find',
|
2011-04-08 03:27:39 +02:00
|
|
|
'ConduitAPI_user_whoami_Method' => 'applications/conduit/method/user/whoami',
|
2011-01-24 18:00:29 +01:00
|
|
|
'ConduitException' => 'applications/conduit/protocol/exception',
|
2011-02-02 22:48:52 +01:00
|
|
|
'DarkConsole' => 'aphront/console/api',
|
2011-02-12 01:48:43 +01:00
|
|
|
'DarkConsoleConfigPlugin' => 'aphront/console/plugin/config',
|
2011-02-02 22:48:52 +01:00
|
|
|
'DarkConsoleController' => 'aphront/console/controller',
|
|
|
|
'DarkConsoleCore' => 'aphront/console/core',
|
|
|
|
'DarkConsoleErrorLogPlugin' => 'aphront/console/plugin/errorlog',
|
2011-02-03 07:38:42 +01:00
|
|
|
'DarkConsoleErrorLogPluginAPI' => 'aphront/console/plugin/errorlog/api',
|
2011-02-02 22:48:52 +01:00
|
|
|
'DarkConsolePlugin' => 'aphront/console/plugin/base',
|
|
|
|
'DarkConsoleRequestPlugin' => 'aphront/console/plugin/request',
|
|
|
|
'DarkConsoleServicesPlugin' => 'aphront/console/plugin/services',
|
|
|
|
'DarkConsoleXHProfPlugin' => 'aphront/console/plugin/xhprof',
|
|
|
|
'DarkConsoleXHProfPluginAPI' => 'aphront/console/plugin/xhprof/api',
|
2011-04-30 02:23:25 +02:00
|
|
|
'DatabaseConfigurationProvider' => 'applications/base/storage/configuration',
|
2011-01-24 03:10:20 +01:00
|
|
|
'DifferentialAction' => 'applications/differential/constants/action',
|
2011-01-30 20:02:22 +01:00
|
|
|
'DifferentialAddCommentView' => 'applications/differential/view/addcomment',
|
2011-08-10 20:29:08 +02:00
|
|
|
'DifferentialAuxiliaryField' => 'applications/differential/storage/auxiliaryfield',
|
2011-08-11 00:36:18 +02:00
|
|
|
'DifferentialBlameRevisionFieldSpecification' => 'applications/differential/field/specification/blamerev',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialCCWelcomeMail' => 'applications/differential/mail/ccwelcome',
|
2011-01-24 03:10:20 +01:00
|
|
|
'DifferentialChangeType' => 'applications/differential/constants/changetype',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialChangeset' => 'applications/differential/storage/changeset',
|
2011-01-24 22:18:41 +01:00
|
|
|
'DifferentialChangesetDetailView' => 'applications/differential/view/changesetdetailview',
|
2011-01-25 20:57:47 +01:00
|
|
|
'DifferentialChangesetListView' => 'applications/differential/view/changesetlistview',
|
2011-01-25 00:52:35 +01:00
|
|
|
'DifferentialChangesetParser' => 'applications/differential/parser/changeset',
|
|
|
|
'DifferentialChangesetViewController' => 'applications/differential/controller/changesetview',
|
2011-01-30 19:37:36 +01:00
|
|
|
'DifferentialComment' => 'applications/differential/storage/comment',
|
2011-01-30 21:08:40 +01:00
|
|
|
'DifferentialCommentEditor' => 'applications/differential/editor/comment',
|
|
|
|
'DifferentialCommentMail' => 'applications/differential/mail/comment',
|
2011-02-01 03:05:20 +01:00
|
|
|
'DifferentialCommentPreviewController' => 'applications/differential/controller/commentpreview',
|
2011-01-30 21:08:40 +01:00
|
|
|
'DifferentialCommentSaveController' => 'applications/differential/controller/commentsave',
|
2011-02-06 22:42:00 +01:00
|
|
|
'DifferentialCommitMessage' => 'applications/differential/parser/commitmessage',
|
2011-02-09 18:41:26 +01:00
|
|
|
'DifferentialCommitMessageData' => 'applications/differential/data/commitmessage',
|
2011-06-29 21:05:19 +02:00
|
|
|
'DifferentialCommitMessageField' => 'applications/differential/data/commitmessage',
|
2011-06-29 00:47:43 +02:00
|
|
|
'DifferentialCommitMessageModifier' => 'applications/differential/data/commitmessage',
|
2011-02-06 22:42:00 +01:00
|
|
|
'DifferentialCommitMessageParserException' => 'applications/differential/parser/commitmessage/exception',
|
2011-01-24 22:18:41 +01:00
|
|
|
'DifferentialController' => 'applications/differential/controller/base',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialDAO' => 'applications/differential/storage/base',
|
2011-08-10 20:29:08 +02:00
|
|
|
'DifferentialDefaultFieldSelector' => 'applications/differential/field/selector/default',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialDiff' => 'applications/differential/storage/diff',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialDiffContentMail' => 'applications/differential/mail/diffcontent',
|
2011-02-05 21:20:18 +01:00
|
|
|
'DifferentialDiffCreateController' => 'applications/differential/controller/diffcreate',
|
2011-01-24 21:07:34 +01:00
|
|
|
'DifferentialDiffProperty' => 'applications/differential/storage/diffproperty',
|
2011-01-24 22:18:41 +01:00
|
|
|
'DifferentialDiffTableOfContentsView' => 'applications/differential/view/difftableofcontents',
|
|
|
|
'DifferentialDiffViewController' => 'applications/differential/controller/diffview',
|
2011-05-01 04:40:05 +02:00
|
|
|
'DifferentialExceptionMail' => 'applications/differential/mail/exception',
|
2011-08-10 20:29:08 +02:00
|
|
|
'DifferentialFieldSelector' => 'applications/differential/field/selector/base',
|
|
|
|
'DifferentialFieldSpecification' => 'applications/differential/field/specification/base',
|
2011-08-10 22:46:01 +02:00
|
|
|
'DifferentialFieldSpecificationIncompleteException' => 'applications/differential/field/exception/incomplete',
|
|
|
|
'DifferentialFieldValidationException' => 'applications/differential/field/exception/validation',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialHunk' => 'applications/differential/storage/hunk',
|
2011-02-02 00:52:04 +01:00
|
|
|
'DifferentialInlineComment' => 'applications/differential/storage/inlinecomment',
|
2011-02-02 01:42:36 +01:00
|
|
|
'DifferentialInlineCommentEditController' => 'applications/differential/controller/inlinecommentedit',
|
2011-02-03 04:38:43 +01:00
|
|
|
'DifferentialInlineCommentPreviewController' => 'applications/differential/controller/inlinecommentpreview',
|
2011-02-02 01:42:36 +01:00
|
|
|
'DifferentialInlineCommentView' => 'applications/differential/view/inlinecomment',
|
2011-01-24 03:10:20 +01:00
|
|
|
'DifferentialLintStatus' => 'applications/differential/constants/lintstatus',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialMail' => 'applications/differential/mail/base',
|
|
|
|
'DifferentialNewDiffMail' => 'applications/differential/mail/newdiff',
|
2011-06-08 21:39:03 +02:00
|
|
|
'DifferentialPrimaryPaneView' => 'applications/differential/view/primarypane',
|
2011-05-01 04:40:05 +02:00
|
|
|
'DifferentialReplyHandler' => 'applications/differential/replyhandler',
|
2011-08-11 00:36:18 +02:00
|
|
|
'DifferentialRevertPlanFieldSpecification' => 'applications/differential/field/specification/revertplan',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialReviewRequestMail' => 'applications/differential/mail/reviewrequest',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialRevision' => 'applications/differential/storage/revision',
|
2011-01-30 19:37:36 +01:00
|
|
|
'DifferentialRevisionCommentListView' => 'applications/differential/view/revisioncommentlist',
|
|
|
|
'DifferentialRevisionCommentView' => 'applications/differential/view/revisioncomment',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialRevisionControlSystem' => 'applications/differential/constants/revisioncontrolsystem',
|
2011-04-13 00:57:29 +02:00
|
|
|
'DifferentialRevisionDetailRenderer' => 'applications/differential/controller/customrenderer',
|
2011-01-27 23:55:52 +01:00
|
|
|
'DifferentialRevisionDetailView' => 'applications/differential/view/revisiondetail',
|
2011-01-25 22:26:09 +01:00
|
|
|
'DifferentialRevisionEditController' => 'applications/differential/controller/revisionedit',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialRevisionEditor' => 'applications/differential/editor/revision',
|
2011-01-26 00:19:06 +01:00
|
|
|
'DifferentialRevisionListController' => 'applications/differential/controller/revisionlist',
|
2011-01-27 20:35:04 +01:00
|
|
|
'DifferentialRevisionListData' => 'applications/differential/data/revisionlist',
|
2011-01-24 03:10:20 +01:00
|
|
|
'DifferentialRevisionStatus' => 'applications/differential/constants/revisionstatus',
|
2011-01-27 23:55:52 +01:00
|
|
|
'DifferentialRevisionUpdateHistoryView' => 'applications/differential/view/revisionupdatehistory',
|
|
|
|
'DifferentialRevisionViewController' => 'applications/differential/controller/revisionview',
|
2011-02-19 23:36:13 +01:00
|
|
|
'DifferentialSubscribeController' => 'applications/differential/controller/subscribe',
|
2011-04-22 02:53:18 +02:00
|
|
|
'DifferentialTasksAttacher' => 'applications/differential/tasks',
|
2011-01-24 03:10:20 +01:00
|
|
|
'DifferentialUnitStatus' => 'applications/differential/constants/unitstatus',
|
2011-06-09 01:16:59 +02:00
|
|
|
'DifferentialUnitTestResult' => 'applications/differential/constants/unittestresult',
|
Differential Updates View
Summary:
This adds a new view to differential called Updates.
The high-level goal of Updates is to enabled differential to be
effectively used without email notifications. I've tried doing things
like automatically deleting differential emails where I'm in the 'to'
line since they show up on the main diffential page but then there's
always the chance an important diff flies by without me seeing it. Also,
sometimes someone comments on a diff post-commit but differential
doesn't surface those diffs.
I re-created a test db on my devserver using mysqldump to get data on
revs > 230000 so I would have some test data. We need to add a simple
viewtime table but I didn't want to do that in production. Here's the
table:
CREATE TABLE differential_viewtime (
viewerPHID varchar(64) not null,
objectPHID varchar(64) not null,
viewTime int unsigned not null,
PRIMARY KEY (viewerPHID, objectPHID)
);
Issues:
-Once we turn this on, all diffs will be 'unviewed'. What do you think
about a 'Clear All' button or something?
-Maybe we should add a pager
This feature would be insanely useful, let me know what you think.
Test Plan:
Loaded Updates in my sandbox
http://phabricator.dev1577.snc6.facebook.com/differential/filter/updates/
Clicked a diff, then went back, made sure diff disappeared from Updates
list
Reviewed By: tuomaspelkonen
Reviewers: epriestley, jungejason, tuomaspelkonen
Commenters: epriestley
CC: epriestley, elynde, tuomaspelkonen
Differential Revision: 169
2011-04-27 10:27:06 +02:00
|
|
|
'DifferentialViewTime' => 'applications/differential/storage/viewtime',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionBranchInformation' => 'applications/diffusion/data/branch',
|
|
|
|
'DiffusionBranchQuery' => 'applications/diffusion/query/branch/base',
|
|
|
|
'DiffusionBranchTableView' => 'applications/diffusion/view/branchtable',
|
2011-03-08 02:25:47 +01:00
|
|
|
'DiffusionBrowseController' => 'applications/diffusion/controller/browse',
|
2011-03-08 18:54:55 +01:00
|
|
|
'DiffusionBrowseFileController' => 'applications/diffusion/controller/file',
|
2011-03-08 02:25:47 +01:00
|
|
|
'DiffusionBrowseQuery' => 'applications/diffusion/query/browse/base',
|
|
|
|
'DiffusionBrowseTableView' => 'applications/diffusion/view/browsetable',
|
2011-03-14 06:03:30 +01:00
|
|
|
'DiffusionChangeController' => 'applications/diffusion/controller/change',
|
2011-03-11 18:34:22 +01:00
|
|
|
'DiffusionCommitChangeTableView' => 'applications/diffusion/view/commitchangetable',
|
|
|
|
'DiffusionCommitController' => 'applications/diffusion/controller/commit',
|
2011-07-24 02:09:03 +02:00
|
|
|
'DiffusionCommitListController' => 'applications/diffusion/controller/commitlist',
|
2011-03-08 00:13:36 +01:00
|
|
|
'DiffusionController' => 'applications/diffusion/controller/base',
|
2011-03-31 02:36:16 +02:00
|
|
|
'DiffusionDiffController' => 'applications/diffusion/controller/diff',
|
|
|
|
'DiffusionDiffQuery' => 'applications/diffusion/query/diff/base',
|
2011-03-08 18:54:55 +01:00
|
|
|
'DiffusionFileContent' => 'applications/diffusion/data/filecontent',
|
|
|
|
'DiffusionFileContentQuery' => 'applications/diffusion/query/filecontent/base',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionGitBranchQuery' => 'applications/diffusion/query/branch/git',
|
2011-03-08 02:25:47 +01:00
|
|
|
'DiffusionGitBrowseQuery' => 'applications/diffusion/query/browse/git',
|
2011-03-31 03:17:36 +02:00
|
|
|
'DiffusionGitDiffQuery' => 'applications/diffusion/query/diff/git',
|
2011-03-08 18:54:55 +01:00
|
|
|
'DiffusionGitFileContentQuery' => 'applications/diffusion/query/filecontent/git',
|
2011-03-09 02:31:44 +01:00
|
|
|
'DiffusionGitHistoryQuery' => 'applications/diffusion/query/history/git',
|
2011-03-31 08:27:06 +02:00
|
|
|
'DiffusionGitLastModifiedQuery' => 'applications/diffusion/query/lastmodified/git',
|
2011-03-21 01:46:02 +01:00
|
|
|
'DiffusionGitPathIDQuery' => 'applications/diffusion/query/pathid/base',
|
2011-03-08 23:29:02 +01:00
|
|
|
'DiffusionGitRequest' => 'applications/diffusion/request/git',
|
2011-03-09 02:31:44 +01:00
|
|
|
'DiffusionHistoryController' => 'applications/diffusion/controller/history',
|
|
|
|
'DiffusionHistoryQuery' => 'applications/diffusion/query/history/base',
|
|
|
|
'DiffusionHistoryTableView' => 'applications/diffusion/view/historytable',
|
2011-03-08 00:13:36 +01:00
|
|
|
'DiffusionHomeController' => 'applications/diffusion/controller/home',
|
2011-03-31 08:27:06 +02:00
|
|
|
'DiffusionLastModifiedController' => 'applications/diffusion/controller/lastmodified',
|
|
|
|
'DiffusionLastModifiedQuery' => 'applications/diffusion/query/lastmodified/base',
|
2011-03-09 02:31:44 +01:00
|
|
|
'DiffusionPathChange' => 'applications/diffusion/data/pathchange',
|
2011-03-14 00:19:39 +01:00
|
|
|
'DiffusionPathChangeQuery' => 'applications/diffusion/query/pathchange/base',
|
2011-04-04 04:20:47 +02:00
|
|
|
'DiffusionPathCompleteController' => 'applications/diffusion/controller/pathcomplete',
|
|
|
|
'DiffusionPathValidateController' => 'applications/diffusion/controller/pathvalidate',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionRepositoryController' => 'applications/diffusion/controller/repository',
|
2011-03-08 02:25:47 +01:00
|
|
|
'DiffusionRepositoryPath' => 'applications/diffusion/data/repositorypath',
|
2011-03-08 23:29:02 +01:00
|
|
|
'DiffusionRequest' => 'applications/diffusion/request/base',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionSvnBrowseQuery' => 'applications/diffusion/query/browse/svn',
|
2011-03-31 02:36:16 +02:00
|
|
|
'DiffusionSvnDiffQuery' => 'applications/diffusion/query/diff/svn',
|
2011-03-14 06:03:30 +01:00
|
|
|
'DiffusionSvnFileContentQuery' => 'applications/diffusion/query/filecontent/svn',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionSvnHistoryQuery' => 'applications/diffusion/query/history/svn',
|
2011-03-31 08:27:06 +02:00
|
|
|
'DiffusionSvnLastModifiedQuery' => 'applications/diffusion/query/lastmodified/svn',
|
2011-03-23 03:34:47 +01:00
|
|
|
'DiffusionSvnRequest' => 'applications/diffusion/request/svn',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionView' => 'applications/diffusion/view/base',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldAction' => 'applications/herald/storage/action',
|
|
|
|
'HeraldActionConfig' => 'applications/herald/config/action',
|
|
|
|
'HeraldApplyTranscript' => 'applications/herald/storage/transcript/apply',
|
2011-04-04 08:23:36 +02:00
|
|
|
'HeraldCommitAdapter' => 'applications/herald/adapter/commit',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldCondition' => 'applications/herald/storage/condition',
|
|
|
|
'HeraldConditionConfig' => 'applications/herald/config/condition',
|
|
|
|
'HeraldConditionTranscript' => 'applications/herald/storage/transcript/condition',
|
|
|
|
'HeraldContentTypeConfig' => 'applications/herald/config/contenttype',
|
2011-03-22 21:49:46 +01:00
|
|
|
'HeraldController' => 'applications/herald/controller/base',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldDAO' => 'applications/herald/storage/base',
|
2011-03-24 19:07:36 +01:00
|
|
|
'HeraldDeleteController' => 'applications/herald/controller/delete',
|
2011-03-25 05:32:26 +01:00
|
|
|
'HeraldDifferentialRevisionAdapter' => 'applications/herald/adapter/differential',
|
2011-03-24 21:49:21 +01:00
|
|
|
'HeraldDryRunAdapter' => 'applications/herald/adapter/dryrun',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldEffect' => 'applications/herald/engine/effect',
|
|
|
|
'HeraldEngine' => 'applications/herald/engine/engine',
|
|
|
|
'HeraldFieldConfig' => 'applications/herald/config/field',
|
2011-03-22 21:49:46 +01:00
|
|
|
'HeraldHomeController' => 'applications/herald/controller/home',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldInvalidConditionException' => 'applications/herald/engine/engine/exception',
|
|
|
|
'HeraldInvalidFieldException' => 'applications/herald/engine/engine/exception',
|
2011-03-22 22:34:38 +01:00
|
|
|
'HeraldNewController' => 'applications/herald/controller/new',
|
2011-03-24 21:49:21 +01:00
|
|
|
'HeraldObjectAdapter' => 'applications/herald/adapter/base',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldObjectTranscript' => 'applications/herald/storage/transcript/object',
|
|
|
|
'HeraldRecursiveConditionsException' => 'applications/herald/engine/engine/exception',
|
2011-05-28 00:52:26 +02:00
|
|
|
'HeraldRepetitionPolicyConfig' => 'applications/herald/config/repetitionpolicy',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldRule' => 'applications/herald/storage/rule',
|
2011-03-22 23:27:52 +01:00
|
|
|
'HeraldRuleController' => 'applications/herald/controller/rule',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldRuleTranscript' => 'applications/herald/storage/transcript/rule',
|
2011-03-24 21:49:21 +01:00
|
|
|
'HeraldTestConsoleController' => 'applications/herald/controller/test',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldTranscript' => 'applications/herald/storage/transcript/base',
|
2011-03-25 05:32:26 +01:00
|
|
|
'HeraldTranscriptController' => 'applications/herald/controller/transcript',
|
|
|
|
'HeraldTranscriptListController' => 'applications/herald/controller/transcriptlist',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldValueTypeConfig' => 'applications/herald/config/valuetype',
|
2011-01-31 20:55:26 +01:00
|
|
|
'Javelin' => 'infrastructure/javelin/api',
|
2011-01-16 22:51:39 +01:00
|
|
|
'LiskDAO' => 'storage/lisk/dao',
|
2011-04-30 19:11:59 +02:00
|
|
|
'LiskIsolationTestCase' => 'storage/lisk/dao/__tests__',
|
|
|
|
'LiskIsolationTestDAO' => 'storage/lisk/dao/__tests__',
|
|
|
|
'LiskIsolationTestDAOException' => 'storage/lisk/dao/__tests__',
|
2011-07-27 18:49:50 +02:00
|
|
|
'ManiphestAuxiliaryFieldDefaultSpecification' => 'applications/maniphest/auxiliaryfield/default',
|
|
|
|
'ManiphestAuxiliaryFieldSpecification' => 'applications/maniphest/auxiliaryfield/base',
|
|
|
|
'ManiphestAuxiliaryFieldTypeException' => 'applications/maniphest/auxiliaryfield/typeexception',
|
|
|
|
'ManiphestAuxiliaryFieldValidationException' => 'applications/maniphest/auxiliaryfield/validationexception',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestConstants' => 'applications/maniphest/constants/base',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestController' => 'applications/maniphest/controller/base',
|
|
|
|
'ManiphestDAO' => 'applications/maniphest/storage/base',
|
2011-07-27 18:49:50 +02:00
|
|
|
'ManiphestDefaultTaskExtensions' => 'applications/maniphest/extensions/task',
|
2011-05-10 01:31:26 +02:00
|
|
|
'ManiphestReplyHandler' => 'applications/maniphest/replyhandler',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTask' => 'applications/maniphest/storage/task',
|
2011-07-26 00:34:56 +02:00
|
|
|
'ManiphestTaskAuxiliaryStorage' => 'applications/maniphest/storage/auxiliary',
|
2011-05-21 03:56:18 +02:00
|
|
|
'ManiphestTaskDescriptionChangeController' => 'applications/maniphest/controller/descriptionchange',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskDetailController' => 'applications/maniphest/controller/taskdetail',
|
2011-02-20 23:15:53 +01:00
|
|
|
'ManiphestTaskEditController' => 'applications/maniphest/controller/taskedit',
|
2011-08-05 18:44:43 +02:00
|
|
|
'ManiphestTaskExtensions' => 'applications/maniphest/extensions/base',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskListController' => 'applications/maniphest/controller/tasklist',
|
|
|
|
'ManiphestTaskListView' => 'applications/maniphest/view/tasklist',
|
2011-05-28 23:13:12 +02:00
|
|
|
'ManiphestTaskOwner' => 'applications/maniphest/constants/owner',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskPriority' => 'applications/maniphest/constants/priority',
|
2011-06-30 01:16:33 +02:00
|
|
|
'ManiphestTaskProject' => 'applications/maniphest/storage/taskproject',
|
|
|
|
'ManiphestTaskQuery' => 'applications/maniphest/query',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskStatus' => 'applications/maniphest/constants/status',
|
2011-07-07 19:24:49 +02:00
|
|
|
'ManiphestTaskSubscriber' => 'applications/maniphest/storage/subscriber',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskSummaryView' => 'applications/maniphest/view/tasksummary',
|
|
|
|
'ManiphestTransaction' => 'applications/maniphest/storage/transaction',
|
|
|
|
'ManiphestTransactionDetailView' => 'applications/maniphest/view/transactiondetail',
|
|
|
|
'ManiphestTransactionEditor' => 'applications/maniphest/editor/transaction',
|
|
|
|
'ManiphestTransactionListView' => 'applications/maniphest/view/transactionlist',
|
2011-05-10 17:29:28 +02:00
|
|
|
'ManiphestTransactionPreviewController' => 'applications/maniphest/controller/transactionpreview',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTransactionSaveController' => 'applications/maniphest/controller/transactionsave',
|
|
|
|
'ManiphestTransactionType' => 'applications/maniphest/constants/transactiontype',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestView' => 'applications/maniphest/view/base',
|
2011-01-30 01:16:09 +01:00
|
|
|
'Phabricator404Controller' => 'applications/base/controller/404',
|
2011-01-31 06:28:45 +01:00
|
|
|
'PhabricatorAuthController' => 'applications/auth/controller/base',
|
Build a basic calendar view
Summary:
This is a very small step toward building a Status and possibly an Oncall tool.
Build a calendar view which renders months.
Much of my hesitance to bang these tools out is that dealing with
dates/calendaring is basically horrible, so I'm trying to ease into it.
This calendar is locale-aware and all that jazz.
Test Plan:
- See:
https://secure.phabricator.com/file/view/PHID-FILE-c07a9c663a7d040d2529/
- Verified that months have the right number of days, today is the right day
of the week, months begin on the day after previous months end on, etc.
Reviewed By: aran
Reviewers: jungejason, tuomaspelkonen, aran
Commenters: cwbeck, jungejason
CC: blair, aran, epriestley, cwbeck, jungejason
Differential Revision: 791
2011-08-08 03:26:31 +02:00
|
|
|
'PhabricatorCalendarBrowseController' => 'applications/calendar/controller/browse',
|
|
|
|
'PhabricatorCalendarController' => 'applications/calendar/controller/base',
|
2011-01-24 18:00:29 +01:00
|
|
|
'PhabricatorConduitAPIController' => 'applications/conduit/controller/api',
|
2011-06-14 21:17:14 +02:00
|
|
|
'PhabricatorConduitCertificateToken' => 'applications/conduit/storage/token',
|
2011-01-24 18:00:29 +01:00
|
|
|
'PhabricatorConduitConnectionLog' => 'applications/conduit/storage/connectionlog',
|
|
|
|
'PhabricatorConduitConsoleController' => 'applications/conduit/controller/console',
|
|
|
|
'PhabricatorConduitController' => 'applications/conduit/controller/base',
|
|
|
|
'PhabricatorConduitDAO' => 'applications/conduit/storage/base',
|
|
|
|
'PhabricatorConduitLogController' => 'applications/conduit/controller/log',
|
|
|
|
'PhabricatorConduitMethodCallLog' => 'applications/conduit/storage/methodcalllog',
|
2011-06-14 21:17:14 +02:00
|
|
|
'PhabricatorConduitTokenController' => 'applications/conduit/controller/token',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorController' => 'applications/base/controller/base',
|
2011-06-13 01:06:17 +02:00
|
|
|
'PhabricatorCountdownController' => 'applications/countdown/controller/base',
|
|
|
|
'PhabricatorCountdownDAO' => 'applications/countdown/storage/base',
|
|
|
|
'PhabricatorCountdownDeleteController' => 'applications/countdown/controller/delete',
|
|
|
|
'PhabricatorCountdownEditController' => 'applications/countdown/controller/edit',
|
|
|
|
'PhabricatorCountdownListController' => 'applications/countdown/controller/list',
|
|
|
|
'PhabricatorCountdownViewController' => 'applications/countdown/controller/view',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorDaemon' => 'infrastructure/daemon/base',
|
2011-05-03 02:05:22 +02:00
|
|
|
'PhabricatorDaemonCombinedLogController' => 'applications/daemon/controller/combined',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorDaemonConsoleController' => 'applications/daemon/controller/console',
|
2011-03-14 23:43:56 +01:00
|
|
|
'PhabricatorDaemonControl' => 'infrastructure/daemon/control',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorDaemonController' => 'applications/daemon/controller/base',
|
2011-03-15 21:38:14 +01:00
|
|
|
'PhabricatorDaemonDAO' => 'infrastructure/daemon/storage/base',
|
|
|
|
'PhabricatorDaemonLog' => 'infrastructure/daemon/storage/log',
|
|
|
|
'PhabricatorDaemonLogEvent' => 'infrastructure/daemon/storage/event',
|
2011-05-03 02:05:22 +02:00
|
|
|
'PhabricatorDaemonLogEventsView' => 'applications/daemon/view/daemonlogevents',
|
|
|
|
'PhabricatorDaemonLogListController' => 'applications/daemon/controller/loglist',
|
|
|
|
'PhabricatorDaemonLogListView' => 'applications/daemon/view/daemonloglist',
|
2011-03-15 21:38:14 +01:00
|
|
|
'PhabricatorDaemonLogViewController' => 'applications/daemon/controller/logview',
|
2011-03-14 23:43:56 +01:00
|
|
|
'PhabricatorDaemonReference' => 'infrastructure/daemon/control/reference',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorDaemonTimelineConsoleController' => 'applications/daemon/controller/timeline',
|
|
|
|
'PhabricatorDaemonTimelineEventController' => 'applications/daemon/controller/timelineevent',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorDefaultFileStorageEngineSelector' => 'applications/files/engineselector/default',
|
2011-08-08 00:14:23 +02:00
|
|
|
'PhabricatorDefaultSearchEngineSelector' => 'applications/search/selector/default',
|
2011-07-17 20:06:02 +02:00
|
|
|
'PhabricatorDifferenceEngine' => 'infrastructure/diff/engine',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorDirectoryCategory' => 'applications/directory/storage/category',
|
|
|
|
'PhabricatorDirectoryCategoryDeleteController' => 'applications/directory/controller/categorydelete',
|
|
|
|
'PhabricatorDirectoryCategoryEditController' => 'applications/directory/controller/categoryedit',
|
|
|
|
'PhabricatorDirectoryCategoryListController' => 'applications/directory/controller/categorylist',
|
|
|
|
'PhabricatorDirectoryController' => 'applications/directory/controller/base',
|
|
|
|
'PhabricatorDirectoryDAO' => 'applications/directory/storage/base',
|
|
|
|
'PhabricatorDirectoryItem' => 'applications/directory/storage/item',
|
|
|
|
'PhabricatorDirectoryItemDeleteController' => 'applications/directory/controller/itemdelete',
|
|
|
|
'PhabricatorDirectoryItemEditController' => 'applications/directory/controller/itemedit',
|
|
|
|
'PhabricatorDirectoryItemListController' => 'applications/directory/controller/itemlist',
|
|
|
|
'PhabricatorDirectoryMainController' => 'applications/directory/controller/main',
|
2011-05-12 19:06:54 +02:00
|
|
|
'PhabricatorDisabledUserController' => 'applications/auth/controller/disabled',
|
2011-02-06 01:57:21 +01:00
|
|
|
'PhabricatorDraft' => 'applications/draft/storage/draft',
|
|
|
|
'PhabricatorDraftDAO' => 'applications/draft/storage/base',
|
2011-01-31 20:55:26 +01:00
|
|
|
'PhabricatorEmailLoginController' => 'applications/auth/controller/email',
|
|
|
|
'PhabricatorEmailTokenController' => 'applications/auth/controller/emailtoken',
|
|
|
|
'PhabricatorEnv' => 'infrastructure/env',
|
2011-07-10 00:44:49 +02:00
|
|
|
'PhabricatorFeedConstants' => 'applications/feed/constants/base',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedController' => 'applications/feed/controller/base',
|
|
|
|
'PhabricatorFeedDAO' => 'applications/feed/storage/base',
|
2011-07-10 03:03:59 +02:00
|
|
|
'PhabricatorFeedPublicStreamController' => 'applications/feed/controller/publicstream',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedQuery' => 'applications/feed/query',
|
|
|
|
'PhabricatorFeedStory' => 'applications/feed/story/base',
|
|
|
|
'PhabricatorFeedStoryData' => 'applications/feed/storage/story',
|
2011-07-10 00:44:49 +02:00
|
|
|
'PhabricatorFeedStoryDifferential' => 'applications/feed/story/differential',
|
2011-07-12 16:23:04 +02:00
|
|
|
'PhabricatorFeedStoryPhriction' => 'applications/feed/story/phriction',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedStoryPublisher' => 'applications/feed/publisher',
|
|
|
|
'PhabricatorFeedStoryReference' => 'applications/feed/storage/storyreference',
|
2011-07-09 22:28:09 +02:00
|
|
|
'PhabricatorFeedStoryStatus' => 'applications/feed/story/status',
|
2011-07-10 00:44:49 +02:00
|
|
|
'PhabricatorFeedStoryTypeConstants' => 'applications/feed/constants/story',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedStoryUnknown' => 'applications/feed/story/unknown',
|
|
|
|
'PhabricatorFeedStoryView' => 'applications/feed/view/story',
|
|
|
|
'PhabricatorFeedStreamController' => 'applications/feed/controller/stream',
|
|
|
|
'PhabricatorFeedView' => 'applications/feed/view/base',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFile' => 'applications/files/storage/file',
|
|
|
|
'PhabricatorFileController' => 'applications/files/controller/base',
|
|
|
|
'PhabricatorFileDAO' => 'applications/files/storage/base',
|
2011-05-22 20:55:10 +02:00
|
|
|
'PhabricatorFileDropUploadController' => 'applications/files/controller/dropupload',
|
2011-04-14 00:15:48 +02:00
|
|
|
'PhabricatorFileImageMacro' => 'applications/files/storage/imagemacro',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFileListController' => 'applications/files/controller/list',
|
2011-05-03 19:45:45 +02:00
|
|
|
'PhabricatorFileMacroDeleteController' => 'applications/files/controller/macrodelete',
|
|
|
|
'PhabricatorFileMacroEditController' => 'applications/files/controller/macroedit',
|
|
|
|
'PhabricatorFileMacroListController' => 'applications/files/controller/macrolist',
|
2011-05-02 23:20:24 +02:00
|
|
|
'PhabricatorFileProxyController' => 'applications/files/controller/proxy',
|
|
|
|
'PhabricatorFileProxyImage' => 'applications/files/storage/proxyimage',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFileStorageBlob' => 'applications/files/storage/storageblob',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorFileStorageEngine' => 'applications/files/engine/base',
|
|
|
|
'PhabricatorFileStorageEngineSelector' => 'applications/files/engineselector/base',
|
2011-05-22 23:40:51 +02:00
|
|
|
'PhabricatorFileTransformController' => 'applications/files/controller/transform',
|
2011-01-25 00:52:35 +01:00
|
|
|
'PhabricatorFileURI' => 'applications/files/uri',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFileUploadController' => 'applications/files/controller/upload',
|
|
|
|
'PhabricatorFileViewController' => 'applications/files/controller/view',
|
2011-07-03 18:47:31 +02:00
|
|
|
'PhabricatorGarbageCollectorDaemon' => 'infrastructure/daemon/garbagecollector',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorGoodForNothingWorker' => 'infrastructure/daemon/workers/worker/goodfornothing',
|
2011-02-17 23:32:01 +01:00
|
|
|
'PhabricatorHandleObjectSelectorDataView' => 'applications/phid/handle/view/selector',
|
2011-05-28 20:36:00 +02:00
|
|
|
'PhabricatorHelpController' => 'applications/help/controller/base',
|
|
|
|
'PhabricatorHelpKeyboardShortcutController' => 'applications/help/controller/keyboardshortcut',
|
2011-05-15 18:29:48 +02:00
|
|
|
'PhabricatorIRCBot' => 'infrastructure/daemon/irc/bot',
|
|
|
|
'PhabricatorIRCHandler' => 'infrastructure/daemon/irc/handler/base',
|
|
|
|
'PhabricatorIRCMessage' => 'infrastructure/daemon/irc/message',
|
2011-05-17 23:40:25 +02:00
|
|
|
'PhabricatorIRCObjectNameHandler' => 'infrastructure/daemon/irc/handler/objectname',
|
2011-05-15 18:29:48 +02:00
|
|
|
'PhabricatorIRCProtocolHandler' => 'infrastructure/daemon/irc/handler/protocol',
|
2011-06-26 17:37:47 +02:00
|
|
|
'PhabricatorImageTransformer' => 'applications/files/transform',
|
Bring Javelin into Phabricator via git submodule, not copy-and-paste
Summary:
Javelin is currently embedded in Phabricator via copy-and-paste of prebuilt
packages. This is not so great.
Pull it in as a submodule instead and make all the Phabriator resources declare
proper dependency trees. Add Javelin linting.
Test Plan:
I tried to run through pretty much all the JS functionality on the site. This is
still a high-risk change, but I did a pretty thorough test
Differential: inline comments, revealing diffs, list tokenizers, comment
preview, editing/deleting comments, add review action.
Maniphest: list tokenizer, comment actions
Herald: rule editing, tokenizers, add/remove rows
Reviewed By: tomo
Reviewers: aran, tomo, mroch, jungejason, tuomaspelkonen
CC: aran, tomo, epriestley
Differential Revision: 223
2011-05-04 00:11:55 +02:00
|
|
|
'PhabricatorJavelinLinter' => 'infrastructure/lint/linter/javelin',
|
|
|
|
'PhabricatorLintEngine' => 'infrastructure/lint/engine',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorLiskDAO' => 'applications/base/storage/lisk',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorLocalDiskFileStorageEngine' => 'applications/files/engine/localdisk',
|
2011-01-31 06:28:45 +01:00
|
|
|
'PhabricatorLoginController' => 'applications/auth/controller/login',
|
|
|
|
'PhabricatorLogoutController' => 'applications/auth/controller/logout',
|
2011-01-26 18:33:31 +01:00
|
|
|
'PhabricatorMailImplementationAdapter' => 'applications/metamta/adapter/base',
|
2011-02-08 06:08:32 +01:00
|
|
|
'PhabricatorMailImplementationAmazonSESAdapter' => 'applications/metamta/adapter/amazonses',
|
2011-01-26 18:33:31 +01:00
|
|
|
'PhabricatorMailImplementationPHPMailerLiteAdapter' => 'applications/metamta/adapter/phpmailerlite',
|
2011-05-26 19:00:26 +02:00
|
|
|
'PhabricatorMailImplementationSendGridAdapter' => 'applications/metamta/adapter/sendgrid',
|
Fix a threading issue with Amazon SES
Summary:
Amazon SES does not allow us to set a Message-ID header, which means
that threads are incorrect in Mail.app (and presumably other applications
which respect In-Reply-To and References) because the initial email does not
have anything which attaches it to the rest of the thread. To fix this, never
rely on Message-ID if the mailer doesn't support Message-ID.
(In the Amazon SES case, Amazon generates its own Message-ID which we can't
know ahead of time).
I additionally used all the Lisk isolation from the other tests to make this
testable and wrote tests for it.
I also moved the idea of a thread ID lower in the stack and out of
DifferentialMail, which should not be responsible for implementation details.
NOTE: If you push this, it will cause a one-time break of threading for
everyone using Outlook since I've changed the seed for generating Thread-Index.
I feel like this is okay to avoid introducing more complexity here.
Test Plan:
Created and then updated a revision, messages delivered over Amazon
SES threaded correctly in Mail.app. Verified headers. Unit tests.
Reviewed By: rm
Reviewers: aran, tuomaspelkonen, jungejason, rm
Commenters: aran
CC: aran, rm, epriestley
Differential Revision: 195
2011-04-30 20:47:00 +02:00
|
|
|
'PhabricatorMailImplementationTestAdapter' => 'applications/metamta/adapter/test',
|
2011-05-10 01:31:26 +02:00
|
|
|
'PhabricatorMailReplyHandler' => 'applications/metamta/replyhandler/base',
|
Generalize the markup engine factory
Summary:
This thing services every app but it lives inside Differential right now. Pull
it out, and separate the factory interfaces per-application.
This will let us accommodate changes we need to make for Phriction to support
wiki linking.
Test Plan: Tested remarkup in differential, diffusion, maniphest, people,
slowvote.
Reviewed By: hsb
Reviewers: hsb, codeblock, jungejason, tuomaspelkonen, aran
CC: aran, hsb
Differential Revision: 646
2011-07-12 00:58:32 +02:00
|
|
|
'PhabricatorMarkupEngine' => 'applications/markup/engine',
|
2011-01-26 02:40:21 +01:00
|
|
|
'PhabricatorMetaMTAController' => 'applications/metamta/controller/base',
|
|
|
|
'PhabricatorMetaMTADAO' => 'applications/metamta/storage/base',
|
2011-02-10 02:39:55 +01:00
|
|
|
'PhabricatorMetaMTADaemon' => 'applications/metamta/daemon/mta',
|
2011-06-01 17:33:14 +02:00
|
|
|
'PhabricatorMetaMTAEmailBodyParser' => 'applications/metamta/parser',
|
|
|
|
'PhabricatorMetaMTAEmailBodyParserTestCase' => 'applications/metamta/parser/__tests__',
|
2011-01-26 02:40:21 +01:00
|
|
|
'PhabricatorMetaMTAListController' => 'applications/metamta/controller/list',
|
|
|
|
'PhabricatorMetaMTAMail' => 'applications/metamta/storage/mail',
|
Fix a threading issue with Amazon SES
Summary:
Amazon SES does not allow us to set a Message-ID header, which means
that threads are incorrect in Mail.app (and presumably other applications
which respect In-Reply-To and References) because the initial email does not
have anything which attaches it to the rest of the thread. To fix this, never
rely on Message-ID if the mailer doesn't support Message-ID.
(In the Amazon SES case, Amazon generates its own Message-ID which we can't
know ahead of time).
I additionally used all the Lisk isolation from the other tests to make this
testable and wrote tests for it.
I also moved the idea of a thread ID lower in the stack and out of
DifferentialMail, which should not be responsible for implementation details.
NOTE: If you push this, it will cause a one-time break of threading for
everyone using Outlook since I've changed the seed for generating Thread-Index.
I feel like this is okay to avoid introducing more complexity here.
Test Plan:
Created and then updated a revision, messages delivered over Amazon
SES threaded correctly in Mail.app. Verified headers. Unit tests.
Reviewed By: rm
Reviewers: aran, tuomaspelkonen, jungejason, rm
Commenters: aran
CC: aran, rm, epriestley
Differential Revision: 195
2011-04-30 20:47:00 +02:00
|
|
|
'PhabricatorMetaMTAMailTestCase' => 'applications/metamta/storage/mail/__tests__',
|
2011-01-26 19:40:38 +01:00
|
|
|
'PhabricatorMetaMTAMailingList' => 'applications/metamta/storage/mailinglist',
|
|
|
|
'PhabricatorMetaMTAMailingListEditController' => 'applications/metamta/controller/mailinglistedit',
|
|
|
|
'PhabricatorMetaMTAMailingListsController' => 'applications/metamta/controller/mailinglists',
|
2011-05-05 08:09:42 +02:00
|
|
|
'PhabricatorMetaMTAReceiveController' => 'applications/metamta/controller/receive',
|
|
|
|
'PhabricatorMetaMTAReceivedListController' => 'applications/metamta/controller/receivedlist',
|
|
|
|
'PhabricatorMetaMTAReceivedMail' => 'applications/metamta/storage/receivedmail',
|
2011-01-26 02:40:21 +01:00
|
|
|
'PhabricatorMetaMTASendController' => 'applications/metamta/controller/send',
|
2011-05-30 20:07:05 +02:00
|
|
|
'PhabricatorMetaMTASendGridReceiveController' => 'applications/metamta/controller/sendgridreceive',
|
2011-01-26 18:08:26 +01:00
|
|
|
'PhabricatorMetaMTAViewController' => 'applications/metamta/controller/view',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorMySQLFileStorageEngine' => 'applications/files/engine/mysql',
|
2011-02-28 04:47:22 +01:00
|
|
|
'PhabricatorOAuthDefaultRegistrationController' => 'applications/auth/controller/oauthregistration/default',
|
2011-02-21 07:47:56 +01:00
|
|
|
'PhabricatorOAuthDiagnosticsController' => 'applications/auth/controller/oauthdiagnostics',
|
|
|
|
'PhabricatorOAuthFailureView' => 'applications/auth/view/oauthfailure',
|
|
|
|
'PhabricatorOAuthLoginController' => 'applications/auth/controller/oauth',
|
|
|
|
'PhabricatorOAuthProvider' => 'applications/auth/oauth/provider/base',
|
|
|
|
'PhabricatorOAuthProviderFacebook' => 'applications/auth/oauth/provider/facebook',
|
|
|
|
'PhabricatorOAuthProviderGithub' => 'applications/auth/oauth/provider/github',
|
2011-02-28 04:47:22 +01:00
|
|
|
'PhabricatorOAuthRegistrationController' => 'applications/auth/controller/oauthregistration/base',
|
2011-02-22 07:51:34 +01:00
|
|
|
'PhabricatorOAuthUnlinkController' => 'applications/auth/controller/unlink',
|
2011-07-05 22:18:47 +02:00
|
|
|
'PhabricatorObjectGraph' => 'applications/phid/graph',
|
2011-01-26 18:02:09 +01:00
|
|
|
'PhabricatorObjectHandle' => 'applications/phid/handle',
|
Add object status to Handles
Summary:
We use ObjectHandles as proxy objects which can refer to any other object in the
system. Add the concept of the underlying object's "status" (e.g., open, closed
or busy).
This allows us to render completed tasks and revisions with strikethrough. In
the future, if we implement OOO or something, we could render users with a
"busy" status if they're on vacation, etc.
Test Plan: Viewed a task with closed revisions and dependencies:
https://secure.phabricator.com/file/view/PHID-FILE-6183e81286fa3288d33d/
Reviewed By: codeblock
Reviewers: codeblock, hunterbridges, jungejason, tuomaspelkonen, aran
CC: aran, codeblock
Differential Revision: 772
2011-08-03 15:37:18 +02:00
|
|
|
'PhabricatorObjectHandleConstants' => 'applications/phid/handle/const/base',
|
2011-01-26 18:02:09 +01:00
|
|
|
'PhabricatorObjectHandleData' => 'applications/phid/handle/data',
|
Add object status to Handles
Summary:
We use ObjectHandles as proxy objects which can refer to any other object in the
system. Add the concept of the underlying object's "status" (e.g., open, closed
or busy).
This allows us to render completed tasks and revisions with strikethrough. In
the future, if we implement OOO or something, we could render users with a
"busy" status if they're on vacation, etc.
Test Plan: Viewed a task with closed revisions and dependencies:
https://secure.phabricator.com/file/view/PHID-FILE-6183e81286fa3288d33d/
Reviewed By: codeblock
Reviewers: codeblock, hunterbridges, jungejason, tuomaspelkonen, aran
CC: aran, codeblock
Differential Revision: 772
2011-08-03 15:37:18 +02:00
|
|
|
'PhabricatorObjectHandleStatus' => 'applications/phid/handle/const/status',
|
2011-02-17 07:14:09 +01:00
|
|
|
'PhabricatorObjectSelectorDialog' => 'view/control/objectselector',
|
2011-04-03 23:48:36 +02:00
|
|
|
'PhabricatorOwnersController' => 'applications/owners/controller/base',
|
|
|
|
'PhabricatorOwnersDAO' => 'applications/owners/storage/base',
|
2011-04-04 07:03:27 +02:00
|
|
|
'PhabricatorOwnersDeleteController' => 'applications/owners/controller/delete',
|
2011-04-03 23:48:36 +02:00
|
|
|
'PhabricatorOwnersDetailController' => 'applications/owners/controller/detail',
|
2011-04-04 07:03:27 +02:00
|
|
|
'PhabricatorOwnersEditController' => 'applications/owners/controller/edit',
|
2011-04-03 23:48:36 +02:00
|
|
|
'PhabricatorOwnersListController' => 'applications/owners/controller/list',
|
|
|
|
'PhabricatorOwnersOwner' => 'applications/owners/storage/owner',
|
|
|
|
'PhabricatorOwnersPackage' => 'applications/owners/storage/package',
|
|
|
|
'PhabricatorOwnersPath' => 'applications/owners/storage/path',
|
2011-01-23 06:09:13 +01:00
|
|
|
'PhabricatorPHID' => 'applications/phid/storage/phid',
|
2011-03-03 03:58:21 +01:00
|
|
|
'PhabricatorPHIDConstants' => 'applications/phid/constants',
|
2011-01-23 06:09:13 +01:00
|
|
|
'PhabricatorPHIDController' => 'applications/phid/controller/base',
|
|
|
|
'PhabricatorPHIDDAO' => 'applications/phid/storage/base',
|
|
|
|
'PhabricatorPHIDListController' => 'applications/phid/controller/list',
|
2011-01-26 18:02:09 +01:00
|
|
|
'PhabricatorPHIDLookupController' => 'applications/phid/controller/lookup',
|
2011-06-10 08:53:53 +02:00
|
|
|
'PhabricatorPaste' => 'applications/paste/storage/paste',
|
|
|
|
'PhabricatorPasteController' => 'applications/paste/controller/base',
|
|
|
|
'PhabricatorPasteCreateController' => 'applications/paste/controller/create',
|
|
|
|
'PhabricatorPasteDAO' => 'applications/paste/storage/base',
|
2011-06-14 04:12:30 +02:00
|
|
|
'PhabricatorPasteListController' => 'applications/paste/controller/list',
|
2011-06-10 08:53:53 +02:00
|
|
|
'PhabricatorPasteViewController' => 'applications/paste/controller/view',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorPeopleController' => 'applications/people/controller/base',
|
|
|
|
'PhabricatorPeopleEditController' => 'applications/people/controller/edit',
|
|
|
|
'PhabricatorPeopleListController' => 'applications/people/controller/list',
|
Provide an activity log for login and administrative actions
Summary: This isn't complete, but I figured I'd ship it for review while it's still smallish.
Provide an activity log for high-level system actions (logins, admin actions). This basically allows two things to happen:
- The log itself is useful if there are shenanigans.
- Password login can check it and start CAPTCHA'ing users after a few failed attempts.
I'm going to change how the admin stuff works a little bit too, since right now you can make someone an agent, grab their certificate, revert them back to a normal user, and then act on their behalf over Conduit. This is a little silly, I'm going to move "agent" to the create workflow instead. I'll also add a confirm/email step to the administrative password reset flow.
Test Plan: Took various administrative and non-administrative actions, they appeared in the logs. Filtered the logs in a bunch of different ways.
Reviewers: jungejason, tuomaspelkonen, aran
CC:
Differential Revision: 302
2011-05-18 03:42:21 +02:00
|
|
|
'PhabricatorPeopleLogsController' => 'applications/people/controller/logs',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorPeopleProfileController' => 'applications/people/controller/profile',
|
2011-06-18 10:13:56 +02:00
|
|
|
'PhabricatorProfileView' => 'view/layout/profile',
|
2011-02-21 03:41:23 +01:00
|
|
|
'PhabricatorProject' => 'applications/project/storage/project',
|
|
|
|
'PhabricatorProjectAffiliation' => 'applications/project/storage/affiliation',
|
|
|
|
'PhabricatorProjectAffiliationEditController' => 'applications/project/controller/editaffiliation',
|
|
|
|
'PhabricatorProjectController' => 'applications/project/controller/base',
|
2011-06-26 17:37:47 +02:00
|
|
|
'PhabricatorProjectCreateController' => 'applications/project/controller/create',
|
2011-02-21 03:41:23 +01:00
|
|
|
'PhabricatorProjectDAO' => 'applications/project/storage/base',
|
|
|
|
'PhabricatorProjectListController' => 'applications/project/controller/list',
|
|
|
|
'PhabricatorProjectProfile' => 'applications/project/storage/profile',
|
|
|
|
'PhabricatorProjectProfileController' => 'applications/project/controller/profile',
|
2011-06-18 10:13:56 +02:00
|
|
|
'PhabricatorProjectProfileEditController' => 'applications/project/controller/profileedit',
|
|
|
|
'PhabricatorProjectStatus' => 'applications/project/constants/status',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorProjectSubproject' => 'applications/project/storage/subproject',
|
2011-04-04 19:29:46 +02:00
|
|
|
'PhabricatorRedirectController' => 'applications/base/controller/redirect',
|
Fix conservative CSRF token cycling limit
Summary:
We currently cycle CSRF tokens every hour and check for the last two valid ones.
This means that a form could go stale in as little as an hour, and is certainly
stale after two.
When a stale form is submitted, you basically get a terrible heisen-state where
some of your data might persist if you're lucky but more likely it all just
vanishes. The .js file below outlines some more details.
This is a pretty terrible UX and we don't need to be as conservative about CSRF
validation as we're being. Remedy this problem by:
- Accepting the last 6 CSRF tokens instead of the last 1 (i.e., pages are
valid for at least 6 hours, and for as long as 7).
- Using JS to refresh the CSRF token every 55 minutes (i.e., pages connected
to the internet are valid indefinitely).
- Showing the user an explicit message about what went wrong when CSRF
validation fails so the experience is less bewildering.
They should now only be able to submit with a bad CSRF token if:
- They load a page, disconnect from the internet for 7 hours, reconnect, and
submit the form within 55 minutes; or
- They are actually the victim of a CSRF attack.
We could eventually fix the first one by tracking reconnects, which might be
"free" once the notification server gets built. It will probably never be an
issue in practice.
Test Plan:
- Reduced CSRF cycle frequency to 2 seconds, submitted a form after 15
seconds, got the CSRF exception.
- Reduced csrf-refresh cycle frequency to 3 seconds, submitted a form after 15
seconds, got a clean form post.
- Added debugging code the the csrf refresh to make sure it was doing sensible
things (pulling different tokens, finding all the inputs).
Reviewed By: aran
Reviewers: tuomaspelkonen, jungejason, aran
CC: aran, epriestley
Differential Revision: 660
2011-07-13 23:05:18 +02:00
|
|
|
'PhabricatorRefreshCSRFController' => 'applications/auth/controller/refresh',
|
2011-02-12 03:06:43 +01:00
|
|
|
'PhabricatorRemarkupRuleDifferential' => 'infrastructure/markup/remarkup/markuprule/differential',
|
Provide a "reference-with-full-name" syntax for Remarkup
Summary:
Provide a {T123} syntax which pulls in the entire name of an object, not just a
link to it. A major use for this is organizing projects using wiki pages. Since
handle links show object status now, this lets you organize stuff in an ad-hoc
way and get a reasonable overview of it. We can make handles richer in the
future, too.
The performance on this isn't perfect (it adds some potential single gets) but I
think it's okay for now and I don't want to make remarkup engine even more
complex until the preprocess/postprocess stuff has had a chance to settle and
I'm more confident it works.
In Differential and Maniphest we'll also incorrectly cache the object
state/name, but that'll fix itself once I move the cache code to use
preprocess/postprocess correctly.
Test Plan:
- See https://secure.phabricator.com/file/view/PHID-FILE-5f9ca32407bec20899b9/
for an example.
- Generated and looked over the documentation.
Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran, hunterbridges
CC: skrul, aran, jungejason, epriestley
Differential Revision: 784
2011-08-05 17:50:26 +02:00
|
|
|
'PhabricatorRemarkupRuleDifferentialHandle' => 'infrastructure/markup/remarkup/markuprule/handle/differential',
|
2011-04-11 12:02:19 +02:00
|
|
|
'PhabricatorRemarkupRuleDiffusion' => 'infrastructure/markup/remarkup/markuprule/diffusion',
|
2011-07-15 23:17:55 +02:00
|
|
|
'PhabricatorRemarkupRuleEmbedFile' => 'infrastructure/markup/remarkup/markuprule/embedobject',
|
2011-04-14 00:15:48 +02:00
|
|
|
'PhabricatorRemarkupRuleImageMacro' => 'infrastructure/markup/remarkup/markuprule/imagemacro',
|
2011-02-12 03:06:43 +01:00
|
|
|
'PhabricatorRemarkupRuleManiphest' => 'infrastructure/markup/remarkup/markuprule/maniphest',
|
Provide a "reference-with-full-name" syntax for Remarkup
Summary:
Provide a {T123} syntax which pulls in the entire name of an object, not just a
link to it. A major use for this is organizing projects using wiki pages. Since
handle links show object status now, this lets you organize stuff in an ad-hoc
way and get a reasonable overview of it. We can make handles richer in the
future, too.
The performance on this isn't perfect (it adds some potential single gets) but I
think it's okay for now and I don't want to make remarkup engine even more
complex until the preprocess/postprocess stuff has had a chance to settle and
I'm more confident it works.
In Differential and Maniphest we'll also incorrectly cache the object
state/name, but that'll fix itself once I move the cache code to use
preprocess/postprocess correctly.
Test Plan:
- See https://secure.phabricator.com/file/view/PHID-FILE-5f9ca32407bec20899b9/
for an example.
- Generated and looked over the documentation.
Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran, hunterbridges
CC: skrul, aran, jungejason, epriestley
Differential Revision: 784
2011-08-05 17:50:26 +02:00
|
|
|
'PhabricatorRemarkupRuleManiphestHandle' => 'infrastructure/markup/remarkup/markuprule/handle/maniphest',
|
2011-06-24 19:59:57 +02:00
|
|
|
'PhabricatorRemarkupRuleMention' => 'infrastructure/markup/remarkup/markuprule/mention',
|
Provide a "reference-with-full-name" syntax for Remarkup
Summary:
Provide a {T123} syntax which pulls in the entire name of an object, not just a
link to it. A major use for this is organizing projects using wiki pages. Since
handle links show object status now, this lets you organize stuff in an ad-hoc
way and get a reasonable overview of it. We can make handles richer in the
future, too.
The performance on this isn't perfect (it adds some potential single gets) but I
think it's okay for now and I don't want to make remarkup engine even more
complex until the preprocess/postprocess stuff has had a chance to settle and
I'm more confident it works.
In Differential and Maniphest we'll also incorrectly cache the object
state/name, but that'll fix itself once I move the cache code to use
preprocess/postprocess correctly.
Test Plan:
- See https://secure.phabricator.com/file/view/PHID-FILE-5f9ca32407bec20899b9/
for an example.
- Generated and looked over the documentation.
Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran, hunterbridges
CC: skrul, aran, jungejason, epriestley
Differential Revision: 784
2011-08-05 17:50:26 +02:00
|
|
|
'PhabricatorRemarkupRuleObjectHandle' => 'infrastructure/markup/remarkup/markuprule/handle',
|
2011-05-31 19:23:31 +02:00
|
|
|
'PhabricatorRemarkupRuleObjectName' => 'infrastructure/markup/remarkup/markuprule/objectname',
|
2011-06-27 08:57:43 +02:00
|
|
|
'PhabricatorRemarkupRulePaste' => 'infrastructure/markup/remarkup/markuprule/paste',
|
2011-07-12 05:14:46 +02:00
|
|
|
'PhabricatorRemarkupRulePhriction' => 'infrastructure/markup/remarkup/markuprule/phriction',
|
2011-05-02 23:20:24 +02:00
|
|
|
'PhabricatorRemarkupRuleProxyImage' => 'infrastructure/markup/remarkup/markuprule/proxyimage',
|
2011-05-27 21:50:02 +02:00
|
|
|
'PhabricatorRemarkupRuleYoutube' => 'infrastructure/markup/remarkup/markuprule/youtube',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepository' => 'applications/repository/storage/repository',
|
2011-04-06 05:49:31 +02:00
|
|
|
'PhabricatorRepositoryArcanistProject' => 'applications/repository/storage/arcanistproject',
|
|
|
|
'PhabricatorRepositoryArcanistProjectEditController' => 'applications/repository/controller/arcansistprojectedit',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryCommit' => 'applications/repository/storage/commit',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/base',
|
|
|
|
'PhabricatorRepositoryCommitData' => 'applications/repository/storage/commitdata',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryCommitDiscoveryDaemon' => 'applications/repository/daemon/commitdiscovery/base',
|
2011-04-04 08:23:36 +02:00
|
|
|
'PhabricatorRepositoryCommitHeraldWorker' => 'applications/repository/worker/herald',
|
2011-04-02 02:11:05 +02:00
|
|
|
'PhabricatorRepositoryCommitMessageDetailParser' => 'applications/repository/parser/base',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryCommitMessageParserWorker' => 'applications/repository/worker/commitmessageparser/base',
|
|
|
|
'PhabricatorRepositoryCommitParserWorker' => 'applications/repository/worker/base',
|
|
|
|
'PhabricatorRepositoryCommitTaskDaemon' => 'applications/repository/daemon/committask',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepositoryController' => 'applications/repository/controller/base',
|
|
|
|
'PhabricatorRepositoryCreateController' => 'applications/repository/controller/create',
|
|
|
|
'PhabricatorRepositoryDAO' => 'applications/repository/storage/base',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryDaemon' => 'applications/repository/daemon/base',
|
2011-04-02 02:11:05 +02:00
|
|
|
'PhabricatorRepositoryDefaultCommitMessageDetailParser' => 'applications/repository/parser/default',
|
2011-05-05 21:53:39 +02:00
|
|
|
'PhabricatorRepositoryDeleteController' => 'applications/repository/controller/delete',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepositoryEditController' => 'applications/repository/controller/edit',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryGitCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/git',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryGitCommitDiscoveryDaemon' => 'applications/repository/daemon/commitdiscovery/git',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryGitCommitMessageParserWorker' => 'applications/repository/worker/commitmessageparser/git',
|
2011-03-21 01:46:02 +01:00
|
|
|
'PhabricatorRepositoryGitFetchDaemon' => 'applications/repository/daemon/gitfetch',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepositoryGitHubNotification' => 'applications/repository/storage/githubnotification',
|
|
|
|
'PhabricatorRepositoryGitHubPostReceiveController' => 'applications/repository/controller/github-post-receive',
|
|
|
|
'PhabricatorRepositoryListController' => 'applications/repository/controller/list',
|
2011-03-31 09:33:44 +02:00
|
|
|
'PhabricatorRepositoryShortcut' => 'applications/repository/storage/shortcut',
|
2011-03-11 23:13:23 +01:00
|
|
|
'PhabricatorRepositorySvnCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/svn',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositorySvnCommitDiscoveryDaemon' => 'applications/repository/daemon/commitdiscovery/svn',
|
|
|
|
'PhabricatorRepositorySvnCommitMessageParserWorker' => 'applications/repository/worker/commitmessageparser/svn',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryType' => 'applications/repository/constants/repositorytype',
|
2011-07-31 22:54:58 +02:00
|
|
|
'PhabricatorS3FileStorageEngine' => 'applications/files/engine/s3',
|
2011-05-05 20:00:05 +02:00
|
|
|
'PhabricatorSQLPatchList' => 'infrastructure/setup/sql',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchAbstractDocument' => 'applications/search/index/abstractdocument',
|
2011-05-16 20:43:39 +02:00
|
|
|
'PhabricatorSearchAttachController' => 'applications/search/controller/attach',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchBaseController' => 'applications/search/controller/base',
|
2011-06-20 06:02:48 +02:00
|
|
|
'PhabricatorSearchCommitIndexer' => 'applications/search/index/indexer/repository',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchController' => 'applications/search/controller/search',
|
|
|
|
'PhabricatorSearchDAO' => 'applications/search/storage/base',
|
|
|
|
'PhabricatorSearchDifferentialIndexer' => 'applications/search/index/indexer/differential',
|
|
|
|
'PhabricatorSearchDocument' => 'applications/search/storage/document/document',
|
|
|
|
'PhabricatorSearchDocumentField' => 'applications/search/storage/document/field',
|
|
|
|
'PhabricatorSearchDocumentIndexer' => 'applications/search/index/indexer/base',
|
|
|
|
'PhabricatorSearchDocumentRelationship' => 'applications/search/storage/document/relationship',
|
2011-08-08 00:14:23 +02:00
|
|
|
'PhabricatorSearchEngine' => 'applications/search/engine/base',
|
|
|
|
'PhabricatorSearchEngineMySQL' => 'applications/search/engine/mysql',
|
|
|
|
'PhabricatorSearchEngineSelector' => 'applications/search/selector/base',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchField' => 'applications/search/constants/field',
|
2011-06-15 16:43:43 +02:00
|
|
|
'PhabricatorSearchIndexController' => 'applications/search/controller/index',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchManiphestIndexer' => 'applications/search/index/indexer/maniphest',
|
2011-07-12 02:29:08 +02:00
|
|
|
'PhabricatorSearchPhrictionIndexer' => 'applications/search/index/indexer/phriction',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchQuery' => 'applications/search/storage/query',
|
|
|
|
'PhabricatorSearchRelationship' => 'applications/search/constants/relationship',
|
Improve search result listing
Summary:
Make it prettier, paginate, add user pictures, show document types, clean some
stuff up a little. Plenty of room for improvement but this should make it a lot
more useful.
Test Plan:
Here's what the new one looks like:
https://secure.phabricator.com/file/view/PHID-FILE-edce2b83c2e3a121c2b7/
Reviewed By: jungejason
Reviewers: tomo, jungejason, aran, tuomaspelkonen, mroch
Commenters: tomo
CC: aran, tomo, jungejason, epriestley
Differential Revision: 545
2011-06-28 23:35:02 +02:00
|
|
|
'PhabricatorSearchResultView' => 'applications/search/view/searchresult',
|
2011-05-16 20:43:39 +02:00
|
|
|
'PhabricatorSearchSelectController' => 'applications/search/controller/select',
|
2011-06-23 22:31:20 +02:00
|
|
|
'PhabricatorSearchUserIndexer' => 'applications/search/index/indexer/user',
|
2011-05-05 20:00:05 +02:00
|
|
|
'PhabricatorSetup' => 'infrastructure/setup',
|
2011-07-08 20:13:11 +02:00
|
|
|
'PhabricatorSlowvoteChoice' => 'applications/slowvote/storage/choice',
|
|
|
|
'PhabricatorSlowvoteComment' => 'applications/slowvote/storage/comment',
|
|
|
|
'PhabricatorSlowvoteController' => 'applications/slowvote/controller/base',
|
|
|
|
'PhabricatorSlowvoteCreateController' => 'applications/slowvote/controller/create',
|
|
|
|
'PhabricatorSlowvoteDAO' => 'applications/slowvote/storage/base',
|
|
|
|
'PhabricatorSlowvoteListController' => 'applications/slowvote/controller/list',
|
|
|
|
'PhabricatorSlowvoteOption' => 'applications/slowvote/storage/option',
|
|
|
|
'PhabricatorSlowvotePoll' => 'applications/slowvote/storage/poll',
|
|
|
|
'PhabricatorSlowvotePollController' => 'applications/slowvote/controller/poll',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorStandardPageView' => 'view/page/standard',
|
2011-04-08 20:13:29 +02:00
|
|
|
'PhabricatorStatusController' => 'applications/status/base',
|
2011-07-06 21:12:17 +02:00
|
|
|
'PhabricatorSyntaxHighlighter' => 'applications/markup/syntax',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorTaskmasterDaemon' => 'infrastructure/daemon/workers/taskmaster',
|
2011-04-30 19:11:41 +02:00
|
|
|
'PhabricatorTestCase' => 'infrastructure/testing/testcase',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorTimelineCursor' => 'infrastructure/daemon/timeline/storage/cursor',
|
|
|
|
'PhabricatorTimelineDAO' => 'infrastructure/daemon/timeline/storage/base',
|
|
|
|
'PhabricatorTimelineEvent' => 'infrastructure/daemon/timeline/storage/event',
|
|
|
|
'PhabricatorTimelineEventData' => 'infrastructure/daemon/timeline/storage/eventdata',
|
|
|
|
'PhabricatorTimelineIterator' => 'infrastructure/daemon/timeline/cursor/iterator',
|
2011-06-13 01:06:17 +02:00
|
|
|
'PhabricatorTimer' => 'applications/countdown/storage/timer',
|
2011-05-22 23:40:51 +02:00
|
|
|
'PhabricatorTransformedFile' => 'applications/files/storage/transformed',
|
2011-08-03 17:17:53 +02:00
|
|
|
'PhabricatorTrivialTestCase' => 'infrastructure/testing/testcase/__tests__',
|
2011-01-25 22:48:05 +01:00
|
|
|
'PhabricatorTypeaheadCommonDatasourceController' => 'applications/typeahead/controller/common',
|
|
|
|
'PhabricatorTypeaheadDatasourceController' => 'applications/typeahead/controller/base',
|
2011-04-01 02:06:33 +02:00
|
|
|
'PhabricatorUIExample' => 'applications/uiexample/examples/base',
|
|
|
|
'PhabricatorUIExampleController' => 'applications/uiexample/controller/base',
|
|
|
|
'PhabricatorUIExampleRenderController' => 'applications/uiexample/controller/render',
|
2011-04-04 00:50:06 +02:00
|
|
|
'PhabricatorUIListFilterExample' => 'applications/uiexample/examples/listfilter',
|
2011-04-01 02:06:33 +02:00
|
|
|
'PhabricatorUIPagerExample' => 'applications/uiexample/examples/pager',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorUser' => 'applications/people/storage/user',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserAccountSettingsPanelController' => 'applications/people/controller/settings/panels/account',
|
|
|
|
'PhabricatorUserConduitSettingsPanelController' => 'applications/people/controller/settings/panels/conduit',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorUserDAO' => 'applications/people/storage/base',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserEmailSettingsPanelController' => 'applications/people/controller/settings/panels/email',
|
Provide an activity log for login and administrative actions
Summary: This isn't complete, but I figured I'd ship it for review while it's still smallish.
Provide an activity log for high-level system actions (logins, admin actions). This basically allows two things to happen:
- The log itself is useful if there are shenanigans.
- Password login can check it and start CAPTCHA'ing users after a few failed attempts.
I'm going to change how the admin stuff works a little bit too, since right now you can make someone an agent, grab their certificate, revert them back to a normal user, and then act on their behalf over Conduit. This is a little silly, I'm going to move "agent" to the create workflow instead. I'll also add a confirm/email step to the administrative password reset flow.
Test Plan: Took various administrative and non-administrative actions, they appeared in the logs. Filtered the logs in a bunch of different ways.
Reviewers: jungejason, tuomaspelkonen, aran
CC:
Differential Revision: 302
2011-05-18 03:42:21 +02:00
|
|
|
'PhabricatorUserLog' => 'applications/people/storage/log',
|
2011-02-21 07:47:56 +01:00
|
|
|
'PhabricatorUserOAuthInfo' => 'applications/people/storage/useroauthinfo',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserOAuthSettingsPanelController' => 'applications/people/controller/settings/panels/oauth',
|
2011-07-24 20:02:08 +02:00
|
|
|
'PhabricatorUserPreferenceSettingsPanelController' => 'applications/people/controller/settings/panels/preferences',
|
2011-03-31 04:21:09 +02:00
|
|
|
'PhabricatorUserPreferences' => 'applications/people/storage/preferences',
|
2011-02-20 03:28:41 +01:00
|
|
|
'PhabricatorUserProfile' => 'applications/people/storage/profile',
|
2011-07-25 00:03:59 +02:00
|
|
|
'PhabricatorUserProfileSettingsPanelController' => 'applications/people/controller/settings/panels/profile',
|
2011-07-22 19:17:57 +02:00
|
|
|
'PhabricatorUserSSHKey' => 'applications/people/storage/usersshkey',
|
|
|
|
'PhabricatorUserSSHKeysSettingsPanelController' => 'applications/people/controller/settings/panels/sshkeys',
|
2011-02-06 07:36:21 +01:00
|
|
|
'PhabricatorUserSettingsController' => 'applications/people/controller/settings',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserSettingsPanelController' => 'applications/people/controller/settings/panels/base',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorWorker' => 'infrastructure/daemon/workers/worker',
|
|
|
|
'PhabricatorWorkerDAO' => 'infrastructure/daemon/workers/storage/base',
|
|
|
|
'PhabricatorWorkerTask' => 'infrastructure/daemon/workers/storage/task',
|
|
|
|
'PhabricatorWorkerTaskData' => 'infrastructure/daemon/workers/storage/taskdata',
|
2011-03-27 07:55:18 +02:00
|
|
|
'PhabricatorWorkerTaskDetailController' => 'applications/daemon/controller/workertaskdetail',
|
2011-04-07 04:17:05 +02:00
|
|
|
'PhabricatorXHPASTViewController' => 'applications/xhpastview/controller/base',
|
|
|
|
'PhabricatorXHPASTViewDAO' => 'applications/xhpastview/storage/base',
|
|
|
|
'PhabricatorXHPASTViewFrameController' => 'applications/xhpastview/controller/viewframe',
|
|
|
|
'PhabricatorXHPASTViewFramesetController' => 'applications/xhpastview/controller/viewframeset',
|
|
|
|
'PhabricatorXHPASTViewInputController' => 'applications/xhpastview/controller/viewinput',
|
|
|
|
'PhabricatorXHPASTViewPanelController' => 'applications/xhpastview/controller/viewpanel',
|
|
|
|
'PhabricatorXHPASTViewParseTree' => 'applications/xhpastview/storage/parsetree',
|
|
|
|
'PhabricatorXHPASTViewRunController' => 'applications/xhpastview/controller/run',
|
|
|
|
'PhabricatorXHPASTViewStreamController' => 'applications/xhpastview/controller/viewstream',
|
|
|
|
'PhabricatorXHPASTViewTreeController' => 'applications/xhpastview/controller/viewtree',
|
2011-02-02 22:48:52 +01:00
|
|
|
'PhabricatorXHProfController' => 'applications/xhprof/controller/base',
|
|
|
|
'PhabricatorXHProfProfileController' => 'applications/xhprof/controller/profile',
|
|
|
|
'PhabricatorXHProfProfileSymbolView' => 'applications/xhprof/view/symbol',
|
|
|
|
'PhabricatorXHProfProfileTopLevelView' => 'applications/xhprof/view/toplevel',
|
2011-07-12 16:23:04 +02:00
|
|
|
'PhrictionActionConstants' => 'applications/phriction/constants/action',
|
|
|
|
'PhrictionConstants' => 'applications/phriction/constants/base',
|
2011-07-11 21:34:53 +02:00
|
|
|
'PhrictionContent' => 'applications/phriction/storage/content',
|
2011-07-11 17:54:22 +02:00
|
|
|
'PhrictionController' => 'applications/phriction/controller/base',
|
|
|
|
'PhrictionDAO' => 'applications/phriction/storage/base',
|
2011-07-17 20:06:02 +02:00
|
|
|
'PhrictionDiffController' => 'applications/phriction/controller/diff',
|
2011-07-11 17:54:22 +02:00
|
|
|
'PhrictionDocument' => 'applications/phriction/storage/document',
|
|
|
|
'PhrictionDocumentController' => 'applications/phriction/controller/document',
|
2011-07-17 03:25:45 +02:00
|
|
|
'PhrictionDocumentPreviewController' => 'applications/phriction/controller/documentpreview',
|
2011-07-12 17:08:03 +02:00
|
|
|
'PhrictionDocumentTestCase' => 'applications/phriction/storage/document/__tests__',
|
2011-07-11 21:34:53 +02:00
|
|
|
'PhrictionEditController' => 'applications/phriction/controller/edit',
|
2011-07-12 00:06:19 +02:00
|
|
|
'PhrictionHistoryController' => 'applications/phriction/controller/history',
|
2011-07-12 00:42:12 +02:00
|
|
|
'PhrictionListController' => 'applications/phriction/controller/list',
|
2011-01-16 22:51:39 +01:00
|
|
|
),
|
|
|
|
'function' =>
|
|
|
|
array(
|
|
|
|
'_qsprintf_check_scalar_type' => 'storage/qsprintf',
|
|
|
|
'_qsprintf_check_type' => 'storage/qsprintf',
|
2011-01-31 20:55:26 +01:00
|
|
|
'celerity_generate_unique_node_id' => 'infrastructure/celerity/api',
|
|
|
|
'celerity_register_resource_map' => 'infrastructure/celerity/map',
|
|
|
|
'javelin_render_tag' => 'infrastructure/javelin/markup',
|
2011-06-18 22:07:02 +02:00
|
|
|
'phabricator_date' => 'view/utils',
|
|
|
|
'phabricator_datetime' => 'view/utils',
|
2011-01-31 03:24:57 +01:00
|
|
|
'phabricator_format_relative_time' => 'view/utils',
|
|
|
|
'phabricator_format_timestamp' => 'view/utils',
|
|
|
|
'phabricator_format_units_generic' => 'view/utils',
|
2011-02-15 00:34:20 +01:00
|
|
|
'phabricator_render_form' => 'infrastructure/javelin/markup',
|
2011-06-18 22:07:02 +02:00
|
|
|
'phabricator_time' => 'view/utils',
|
2011-01-16 22:51:39 +01:00
|
|
|
'qsprintf' => 'storage/qsprintf',
|
|
|
|
'queryfx' => 'storage/queryfx',
|
|
|
|
'queryfx_all' => 'storage/queryfx',
|
|
|
|
'queryfx_one' => 'storage/queryfx',
|
2011-01-31 20:55:26 +01:00
|
|
|
'require_celerity_resource' => 'infrastructure/celerity/api',
|
2011-01-16 22:51:39 +01:00
|
|
|
'vqsprintf' => 'storage/qsprintf',
|
|
|
|
'vqueryfx' => 'storage/queryfx',
|
2011-01-27 20:35:04 +01:00
|
|
|
'vqueryfx_all' => 'storage/queryfx',
|
2011-01-16 22:51:39 +01:00
|
|
|
'xsprintf_query' => 'storage/qsprintf',
|
|
|
|
),
|
|
|
|
'requires_class' =>
|
|
|
|
array(
|
2011-05-09 10:10:40 +02:00
|
|
|
'Aphront304Response' => 'AphrontResponse',
|
2011-01-30 21:08:40 +01:00
|
|
|
'Aphront400Response' => 'AphrontResponse',
|
2011-01-16 22:51:39 +01:00
|
|
|
'Aphront404Response' => 'AphrontResponse',
|
2011-01-25 20:57:47 +01:00
|
|
|
'AphrontAjaxResponse' => 'AphrontResponse',
|
Improve drag-and-drop uploader
Summary:
Make it discoverable, show uploading progress, show file thumbnails, allow you
to remove files, make it a generic form component.
Test Plan:
Uploaded ducks
Reviewed By: tomo
Reviewers: aran, tomo, jungejason, tuomaspelkonen
CC: anjali, aran, epriestley, tomo
Differential Revision: 334
2011-05-23 01:11:41 +02:00
|
|
|
'AphrontAttachedFileView' => 'AphrontView',
|
Fix conservative CSRF token cycling limit
Summary:
We currently cycle CSRF tokens every hour and check for the last two valid ones.
This means that a form could go stale in as little as an hour, and is certainly
stale after two.
When a stale form is submitted, you basically get a terrible heisen-state where
some of your data might persist if you're lucky but more likely it all just
vanishes. The .js file below outlines some more details.
This is a pretty terrible UX and we don't need to be as conservative about CSRF
validation as we're being. Remedy this problem by:
- Accepting the last 6 CSRF tokens instead of the last 1 (i.e., pages are
valid for at least 6 hours, and for as long as 7).
- Using JS to refresh the CSRF token every 55 minutes (i.e., pages connected
to the internet are valid indefinitely).
- Showing the user an explicit message about what went wrong when CSRF
validation fails so the experience is less bewildering.
They should now only be able to submit with a bad CSRF token if:
- They load a page, disconnect from the internet for 7 hours, reconnect, and
submit the form within 55 minutes; or
- They are actually the victim of a CSRF attack.
We could eventually fix the first one by tracking reconnects, which might be
"free" once the notification server gets built. It will probably never be an
issue in practice.
Test Plan:
- Reduced CSRF cycle frequency to 2 seconds, submitted a form after 15
seconds, got the CSRF exception.
- Reduced csrf-refresh cycle frequency to 3 seconds, submitted a form after 15
seconds, got a clean form post.
- Added debugging code the the csrf refresh to make sure it was doing sensible
things (pulling different tokens, finding all the inputs).
Reviewed By: aran
Reviewers: tuomaspelkonen, jungejason, aran
CC: aran, epriestley
Differential Revision: 660
2011-07-13 23:05:18 +02:00
|
|
|
'AphrontCSRFException' => 'AphrontException',
|
Build a basic calendar view
Summary:
This is a very small step toward building a Status and possibly an Oncall tool.
Build a calendar view which renders months.
Much of my hesitance to bang these tools out is that dealing with
dates/calendaring is basically horrible, so I'm trying to ease into it.
This calendar is locale-aware and all that jazz.
Test Plan:
- See:
https://secure.phabricator.com/file/view/PHID-FILE-c07a9c663a7d040d2529/
- Verified that months have the right number of days, today is the right day
of the week, months begin on the day after previous months end on, etc.
Reviewed By: aran
Reviewers: jungejason, tuomaspelkonen, aran
Commenters: cwbeck, jungejason
CC: blair, aran, epriestley, cwbeck, jungejason
Differential Revision: 791
2011-08-08 03:26:31 +02:00
|
|
|
'AphrontCalendarMonthView' => 'AphrontView',
|
Tweak style on "Create Another Task" button
Summary:
Not totally sure I'm in love with this but I think it's somewhat non-terrible,
despite the lack of lens flare.
Also made "Cancel" take you back to the task if you got to "Create" from "Create
Another Task".
Test Plan:
- Style:
https://secure.phabricator.com/file/view/PHID-FILE-ad37d3c1f3b2c7a7a7d1/
- Hit "Cancel" from "Create Another", got sent back to task.
- Hit "Cancel" from normal create, got sent back to list.
- Tried to save an invalid task after making changes to CC/Projects, changes
were preserved.
Reviewed By: codeblock
Reviewers: hunterbridges, jungejason, tuomaspelkonen, aran, codeblock
CC: aran, epriestley, codeblock
Differential Revision: 736
2011-07-27 19:46:22 +02:00
|
|
|
'AphrontContextBarView' => 'AphrontView',
|
2011-03-13 01:17:34 +01:00
|
|
|
'AphrontCrumbsView' => 'AphrontView',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontDefaultApplicationConfiguration' => 'AphrontApplicationConfiguration',
|
|
|
|
'AphrontDefaultApplicationController' => 'AphrontController',
|
|
|
|
'AphrontDialogResponse' => 'AphrontResponse',
|
|
|
|
'AphrontDialogView' => 'AphrontView',
|
|
|
|
'AphrontErrorView' => 'AphrontView',
|
2011-05-23 02:06:42 +02:00
|
|
|
'AphrontFilePreviewView' => 'AphrontView',
|
2011-01-23 03:33:00 +01:00
|
|
|
'AphrontFileResponse' => 'AphrontResponse',
|
2011-01-26 02:40:21 +01:00
|
|
|
'AphrontFormCheckboxControl' => 'AphrontFormControl',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormControl' => 'AphrontView',
|
2011-02-05 02:53:14 +01:00
|
|
|
'AphrontFormDividerControl' => 'AphrontFormControl',
|
Improve drag-and-drop uploader
Summary:
Make it discoverable, show uploading progress, show file thumbnails, allow you
to remove files, make it a generic form component.
Test Plan:
Uploaded ducks
Reviewed By: tomo
Reviewers: aran, tomo, jungejason, tuomaspelkonen
CC: anjali, aran, epriestley, tomo
Differential Revision: 334
2011-05-23 01:11:41 +02:00
|
|
|
'AphrontFormDragAndDropUploadControl' => 'AphrontFormControl',
|
2011-01-23 03:33:00 +01:00
|
|
|
'AphrontFormFileControl' => 'AphrontFormControl',
|
2011-06-10 00:28:29 +02:00
|
|
|
'AphrontFormLayoutView' => 'AphrontView',
|
2011-01-24 20:36:53 +01:00
|
|
|
'AphrontFormMarkupControl' => 'AphrontFormControl',
|
2011-01-31 20:55:26 +01:00
|
|
|
'AphrontFormPasswordControl' => 'AphrontFormControl',
|
|
|
|
'AphrontFormRecaptchaControl' => 'AphrontFormControl',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormSelectControl' => 'AphrontFormControl',
|
2011-01-23 03:33:00 +01:00
|
|
|
'AphrontFormStaticControl' => 'AphrontFormControl',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormSubmitControl' => 'AphrontFormControl',
|
|
|
|
'AphrontFormTextAreaControl' => 'AphrontFormControl',
|
|
|
|
'AphrontFormTextControl' => 'AphrontFormControl',
|
2011-04-04 00:50:06 +02:00
|
|
|
'AphrontFormToggleButtonsControl' => 'AphrontFormControl',
|
2011-01-25 22:48:05 +01:00
|
|
|
'AphrontFormTokenizerControl' => 'AphrontFormControl',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontFormView' => 'AphrontView',
|
2011-02-20 21:50:28 +01:00
|
|
|
'AphrontHeadsupActionListView' => 'AphrontView',
|
|
|
|
'AphrontHeadsupActionView' => 'AphrontView',
|
2011-04-30 19:11:41 +02:00
|
|
|
'AphrontIsolatedDatabaseConnection' => 'AphrontDatabaseConnection',
|
|
|
|
'AphrontIsolatedDatabaseConnectionTestCase' => 'PhabricatorTestCase',
|
2011-06-08 20:53:10 +02:00
|
|
|
'AphrontKeyboardShortcutsAvailableView' => 'AphrontView',
|
2011-04-04 00:50:06 +02:00
|
|
|
'AphrontListFilterView' => 'AphrontView',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontMySQLDatabaseConnection' => 'AphrontDatabaseConnection',
|
|
|
|
'AphrontNullView' => 'AphrontView',
|
|
|
|
'AphrontPageView' => 'AphrontView',
|
2011-04-01 02:06:33 +02:00
|
|
|
'AphrontPagerView' => 'AphrontView',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontPanelView' => 'AphrontView',
|
2011-04-30 09:18:13 +02:00
|
|
|
'AphrontQueryAccessDeniedException' => 'AphrontQueryRecoverableException',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontQueryConnectionException' => 'AphrontQueryException',
|
|
|
|
'AphrontQueryConnectionLostException' => 'AphrontQueryRecoverableException',
|
|
|
|
'AphrontQueryCountException' => 'AphrontQueryException',
|
2011-01-31 06:28:45 +01:00
|
|
|
'AphrontQueryDuplicateKeyException' => 'AphrontQueryException',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontQueryObjectMissingException' => 'AphrontQueryException',
|
|
|
|
'AphrontQueryParameterException' => 'AphrontQueryException',
|
|
|
|
'AphrontQueryRecoverableException' => 'AphrontQueryException',
|
2011-01-26 22:21:12 +01:00
|
|
|
'AphrontRedirectException' => 'AphrontException',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontRedirectResponse' => 'AphrontResponse',
|
2011-05-16 20:43:39 +02:00
|
|
|
'AphrontReloadResponse' => 'AphrontRedirectResponse',
|
2011-01-30 18:15:01 +01:00
|
|
|
'AphrontRequestFailureView' => 'AphrontView',
|
2011-01-24 18:00:29 +01:00
|
|
|
'AphrontSideNavView' => 'AphrontView',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontTableView' => 'AphrontView',
|
2011-03-23 04:41:02 +01:00
|
|
|
'AphrontTokenizerTemplateView' => 'AphrontView',
|
2011-04-04 04:20:47 +02:00
|
|
|
'AphrontTypeaheadTemplateView' => 'AphrontView',
|
2011-01-16 22:51:39 +01:00
|
|
|
'AphrontWebpageResponse' => 'AphrontResponse',
|
2011-01-25 18:59:31 +01:00
|
|
|
'CelerityResourceController' => 'AphrontController',
|
2011-01-24 20:30:10 +01:00
|
|
|
'ConduitAPI_conduit_connect_Method' => 'ConduitAPIMethod',
|
2011-06-14 21:17:14 +02:00
|
|
|
'ConduitAPI_conduit_getcertificate_Method' => 'ConduitAPIMethod',
|
2011-02-19 07:36:32 +01:00
|
|
|
'ConduitAPI_conduit_ping_Method' => 'ConduitAPIMethod',
|
2011-03-15 21:38:14 +01:00
|
|
|
'ConduitAPI_daemon_launched_Method' => 'ConduitAPIMethod',
|
|
|
|
'ConduitAPI_daemon_log_Method' => 'ConduitAPIMethod',
|
2011-01-24 20:01:53 +01:00
|
|
|
'ConduitAPI_differential_creatediff_Method' => 'ConduitAPIMethod',
|
2011-02-06 22:49:23 +01:00
|
|
|
'ConduitAPI_differential_createrevision_Method' => 'ConduitAPIMethod',
|
2011-02-06 23:43:06 +01:00
|
|
|
'ConduitAPI_differential_find_Method' => 'ConduitAPIMethod',
|
2011-04-21 00:29:02 +02:00
|
|
|
'ConduitAPI_differential_getalldiffs_Method' => 'ConduitAPIMethod',
|
2011-02-09 18:41:26 +01:00
|
|
|
'ConduitAPI_differential_getcommitmessage_Method' => 'ConduitAPIMethod',
|
2011-02-19 07:28:03 +01:00
|
|
|
'ConduitAPI_differential_getcommitpaths_Method' => 'ConduitAPIMethod',
|
2011-02-19 07:15:28 +01:00
|
|
|
'ConduitAPI_differential_getdiff_Method' => 'ConduitAPIMethod',
|
2011-04-21 01:38:16 +02:00
|
|
|
'ConduitAPI_differential_getrevision_Method' => 'ConduitAPIMethod',
|
2011-04-20 01:24:45 +02:00
|
|
|
'ConduitAPI_differential_getrevisionfeedback_Method' => 'ConduitAPIMethod',
|
2011-02-09 18:48:26 +01:00
|
|
|
'ConduitAPI_differential_markcommitted_Method' => 'ConduitAPIMethod',
|
2011-02-06 22:42:00 +01:00
|
|
|
'ConduitAPI_differential_parsecommitmessage_Method' => 'ConduitAPIMethod',
|
2011-01-24 21:07:34 +01:00
|
|
|
'ConduitAPI_differential_setdiffproperty_Method' => 'ConduitAPIMethod',
|
2011-02-06 23:00:32 +01:00
|
|
|
'ConduitAPI_differential_updaterevision_Method' => 'ConduitAPIMethod',
|
2011-04-22 03:47:04 +02:00
|
|
|
'ConduitAPI_differential_updatetaskrevisionassoc_Method' => 'ConduitAPIMethod',
|
2011-06-09 01:16:59 +02:00
|
|
|
'ConduitAPI_differential_updateunitresults_Method' => 'ConduitAPIMethod',
|
2011-04-14 01:39:08 +02:00
|
|
|
'ConduitAPI_diffusion_getcommits_Method' => 'ConduitAPIMethod',
|
2011-05-20 00:36:17 +02:00
|
|
|
'ConduitAPI_diffusion_getrecentcommitsbypath_Method' => 'ConduitAPIMethod',
|
2011-07-05 17:35:18 +02:00
|
|
|
'ConduitAPI_feed_publish_Method' => 'ConduitAPIMethod',
|
2011-05-21 18:53:50 +02:00
|
|
|
'ConduitAPI_file_download_Method' => 'ConduitAPIMethod',
|
2011-07-29 19:00:16 +02:00
|
|
|
'ConduitAPI_file_info_Method' => 'ConduitAPIMethod',
|
2011-01-24 18:00:29 +01:00
|
|
|
'ConduitAPI_file_upload_Method' => 'ConduitAPIMethod',
|
2011-06-27 10:00:28 +02:00
|
|
|
'ConduitAPI_maniphest_info_Method' => 'ConduitAPIMethod',
|
2011-07-30 03:31:14 +02:00
|
|
|
'ConduitAPI_paste_Method' => 'ConduitAPIMethod',
|
|
|
|
'ConduitAPI_paste_create_Method' => 'ConduitAPI_paste_Method',
|
|
|
|
'ConduitAPI_paste_info_Method' => 'ConduitAPI_paste_Method',
|
2011-04-12 06:51:36 +02:00
|
|
|
'ConduitAPI_path_getowners_Method' => 'ConduitAPIMethod',
|
2011-07-13 04:18:20 +02:00
|
|
|
'ConduitAPI_slowvote_info_Method' => 'ConduitAPIMethod',
|
2011-01-24 20:36:53 +01:00
|
|
|
'ConduitAPI_user_find_Method' => 'ConduitAPIMethod',
|
2011-04-08 03:27:39 +02:00
|
|
|
'ConduitAPI_user_whoami_Method' => 'ConduitAPIMethod',
|
2011-02-12 01:48:43 +01:00
|
|
|
'DarkConsoleConfigPlugin' => 'DarkConsolePlugin',
|
2011-02-03 07:38:42 +01:00
|
|
|
'DarkConsoleController' => 'PhabricatorController',
|
2011-02-02 22:48:52 +01:00
|
|
|
'DarkConsoleErrorLogPlugin' => 'DarkConsolePlugin',
|
|
|
|
'DarkConsoleRequestPlugin' => 'DarkConsolePlugin',
|
|
|
|
'DarkConsoleServicesPlugin' => 'DarkConsolePlugin',
|
|
|
|
'DarkConsoleXHProfPlugin' => 'DarkConsolePlugin',
|
2011-01-30 20:02:22 +01:00
|
|
|
'DifferentialAddCommentView' => 'AphrontView',
|
2011-08-10 20:29:08 +02:00
|
|
|
'DifferentialAuxiliaryField' => 'DifferentialDAO',
|
2011-08-11 00:36:18 +02:00
|
|
|
'DifferentialBlameRevisionFieldSpecification' => 'DifferentialFieldSpecification',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialCCWelcomeMail' => 'DifferentialReviewRequestMail',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialChangeset' => 'DifferentialDAO',
|
2011-01-24 22:18:41 +01:00
|
|
|
'DifferentialChangesetDetailView' => 'AphrontView',
|
2011-01-25 20:57:47 +01:00
|
|
|
'DifferentialChangesetListView' => 'AphrontView',
|
2011-01-25 00:52:35 +01:00
|
|
|
'DifferentialChangesetViewController' => 'DifferentialController',
|
2011-01-30 19:37:36 +01:00
|
|
|
'DifferentialComment' => 'DifferentialDAO',
|
2011-01-30 21:08:40 +01:00
|
|
|
'DifferentialCommentMail' => 'DifferentialMail',
|
2011-02-01 03:05:20 +01:00
|
|
|
'DifferentialCommentPreviewController' => 'DifferentialController',
|
2011-01-30 21:08:40 +01:00
|
|
|
'DifferentialCommentSaveController' => 'DifferentialController',
|
2011-01-24 22:18:41 +01:00
|
|
|
'DifferentialController' => 'PhabricatorController',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialDAO' => 'PhabricatorLiskDAO',
|
2011-08-10 20:29:08 +02:00
|
|
|
'DifferentialDefaultFieldSelector' => 'DifferentialFieldSelector',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialDiff' => 'DifferentialDAO',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialDiffContentMail' => 'DifferentialMail',
|
2011-02-05 21:20:18 +01:00
|
|
|
'DifferentialDiffCreateController' => 'DifferentialController',
|
2011-01-24 21:07:34 +01:00
|
|
|
'DifferentialDiffProperty' => 'DifferentialDAO',
|
2011-01-24 22:18:41 +01:00
|
|
|
'DifferentialDiffTableOfContentsView' => 'AphrontView',
|
|
|
|
'DifferentialDiffViewController' => 'DifferentialController',
|
2011-05-01 04:40:05 +02:00
|
|
|
'DifferentialExceptionMail' => 'DifferentialMail',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialHunk' => 'DifferentialDAO',
|
2011-02-02 00:52:04 +01:00
|
|
|
'DifferentialInlineComment' => 'DifferentialDAO',
|
2011-02-02 01:42:36 +01:00
|
|
|
'DifferentialInlineCommentEditController' => 'DifferentialController',
|
2011-02-03 04:38:43 +01:00
|
|
|
'DifferentialInlineCommentPreviewController' => 'DifferentialController',
|
2011-02-02 01:42:36 +01:00
|
|
|
'DifferentialInlineCommentView' => 'AphrontView',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialNewDiffMail' => 'DifferentialReviewRequestMail',
|
2011-06-08 21:39:03 +02:00
|
|
|
'DifferentialPrimaryPaneView' => 'AphrontView',
|
2011-05-10 01:31:26 +02:00
|
|
|
'DifferentialReplyHandler' => 'PhabricatorMailReplyHandler',
|
2011-08-11 00:36:18 +02:00
|
|
|
'DifferentialRevertPlanFieldSpecification' => 'DifferentialFieldSpecification',
|
2011-01-26 02:17:19 +01:00
|
|
|
'DifferentialReviewRequestMail' => 'DifferentialMail',
|
2011-01-24 20:01:53 +01:00
|
|
|
'DifferentialRevision' => 'DifferentialDAO',
|
2011-01-30 19:37:36 +01:00
|
|
|
'DifferentialRevisionCommentListView' => 'AphrontView',
|
|
|
|
'DifferentialRevisionCommentView' => 'AphrontView',
|
2011-01-27 23:55:52 +01:00
|
|
|
'DifferentialRevisionDetailView' => 'AphrontView',
|
2011-01-25 22:26:09 +01:00
|
|
|
'DifferentialRevisionEditController' => 'DifferentialController',
|
2011-01-26 00:19:06 +01:00
|
|
|
'DifferentialRevisionListController' => 'DifferentialController',
|
2011-01-27 23:55:52 +01:00
|
|
|
'DifferentialRevisionUpdateHistoryView' => 'AphrontView',
|
|
|
|
'DifferentialRevisionViewController' => 'DifferentialController',
|
2011-02-19 23:36:13 +01:00
|
|
|
'DifferentialSubscribeController' => 'DifferentialController',
|
Differential Updates View
Summary:
This adds a new view to differential called Updates.
The high-level goal of Updates is to enabled differential to be
effectively used without email notifications. I've tried doing things
like automatically deleting differential emails where I'm in the 'to'
line since they show up on the main diffential page but then there's
always the chance an important diff flies by without me seeing it. Also,
sometimes someone comments on a diff post-commit but differential
doesn't surface those diffs.
I re-created a test db on my devserver using mysqldump to get data on
revs > 230000 so I would have some test data. We need to add a simple
viewtime table but I didn't want to do that in production. Here's the
table:
CREATE TABLE differential_viewtime (
viewerPHID varchar(64) not null,
objectPHID varchar(64) not null,
viewTime int unsigned not null,
PRIMARY KEY (viewerPHID, objectPHID)
);
Issues:
-Once we turn this on, all diffs will be 'unviewed'. What do you think
about a 'Clear All' button or something?
-Maybe we should add a pager
This feature would be insanely useful, let me know what you think.
Test Plan:
Loaded Updates in my sandbox
http://phabricator.dev1577.snc6.facebook.com/differential/filter/updates/
Clicked a diff, then went back, made sure diff disappeared from Updates
list
Reviewed By: tuomaspelkonen
Reviewers: epriestley, jungejason, tuomaspelkonen
Commenters: epriestley
CC: epriestley, elynde, tuomaspelkonen
Differential Revision: 169
2011-04-27 10:27:06 +02:00
|
|
|
'DifferentialViewTime' => 'DifferentialDAO',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionBranchTableView' => 'DiffusionView',
|
2011-03-08 02:25:47 +01:00
|
|
|
'DiffusionBrowseController' => 'DiffusionController',
|
2011-03-08 18:54:55 +01:00
|
|
|
'DiffusionBrowseFileController' => 'DiffusionController',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionBrowseTableView' => 'DiffusionView',
|
2011-03-14 06:03:30 +01:00
|
|
|
'DiffusionChangeController' => 'DiffusionController',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionCommitChangeTableView' => 'DiffusionView',
|
2011-03-11 18:34:22 +01:00
|
|
|
'DiffusionCommitController' => 'DiffusionController',
|
2011-07-24 02:09:03 +02:00
|
|
|
'DiffusionCommitListController' => 'DiffusionController',
|
2011-03-08 00:13:36 +01:00
|
|
|
'DiffusionController' => 'PhabricatorController',
|
2011-03-31 02:36:16 +02:00
|
|
|
'DiffusionDiffController' => 'DiffusionController',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionGitBranchQuery' => 'DiffusionBranchQuery',
|
2011-03-08 02:25:47 +01:00
|
|
|
'DiffusionGitBrowseQuery' => 'DiffusionBrowseQuery',
|
2011-03-31 03:17:36 +02:00
|
|
|
'DiffusionGitDiffQuery' => 'DiffusionDiffQuery',
|
2011-03-08 18:54:55 +01:00
|
|
|
'DiffusionGitFileContentQuery' => 'DiffusionFileContentQuery',
|
2011-03-09 02:31:44 +01:00
|
|
|
'DiffusionGitHistoryQuery' => 'DiffusionHistoryQuery',
|
2011-03-31 08:27:06 +02:00
|
|
|
'DiffusionGitLastModifiedQuery' => 'DiffusionLastModifiedQuery',
|
2011-03-08 23:29:02 +01:00
|
|
|
'DiffusionGitRequest' => 'DiffusionRequest',
|
2011-03-09 02:31:44 +01:00
|
|
|
'DiffusionHistoryController' => 'DiffusionController',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionHistoryTableView' => 'DiffusionView',
|
2011-03-08 00:13:36 +01:00
|
|
|
'DiffusionHomeController' => 'DiffusionController',
|
2011-03-31 08:27:06 +02:00
|
|
|
'DiffusionLastModifiedController' => 'DiffusionController',
|
2011-04-04 04:20:47 +02:00
|
|
|
'DiffusionPathCompleteController' => 'DiffusionController',
|
|
|
|
'DiffusionPathValidateController' => 'DiffusionController',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionRepositoryController' => 'DiffusionController',
|
|
|
|
'DiffusionSvnBrowseQuery' => 'DiffusionBrowseQuery',
|
2011-03-31 02:36:16 +02:00
|
|
|
'DiffusionSvnDiffQuery' => 'DiffusionDiffQuery',
|
2011-03-14 06:03:30 +01:00
|
|
|
'DiffusionSvnFileContentQuery' => 'DiffusionFileContentQuery',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionSvnHistoryQuery' => 'DiffusionHistoryQuery',
|
2011-03-31 08:27:06 +02:00
|
|
|
'DiffusionSvnLastModifiedQuery' => 'DiffusionLastModifiedQuery',
|
2011-03-23 03:34:47 +01:00
|
|
|
'DiffusionSvnRequest' => 'DiffusionRequest',
|
2011-03-13 01:17:34 +01:00
|
|
|
'DiffusionView' => 'AphrontView',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldAction' => 'HeraldDAO',
|
|
|
|
'HeraldApplyTranscript' => 'HeraldDAO',
|
2011-04-04 08:23:36 +02:00
|
|
|
'HeraldCommitAdapter' => 'HeraldObjectAdapter',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldCondition' => 'HeraldDAO',
|
2011-03-22 21:49:46 +01:00
|
|
|
'HeraldController' => 'PhabricatorController',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldDAO' => 'PhabricatorLiskDAO',
|
2011-03-24 19:07:36 +01:00
|
|
|
'HeraldDeleteController' => 'HeraldController',
|
2011-03-25 05:32:26 +01:00
|
|
|
'HeraldDifferentialRevisionAdapter' => 'HeraldObjectAdapter',
|
2011-03-24 21:49:21 +01:00
|
|
|
'HeraldDryRunAdapter' => 'HeraldObjectAdapter',
|
2011-03-22 21:49:46 +01:00
|
|
|
'HeraldHomeController' => 'HeraldController',
|
2011-03-22 22:34:38 +01:00
|
|
|
'HeraldNewController' => 'HeraldController',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldRule' => 'HeraldDAO',
|
2011-03-22 23:27:52 +01:00
|
|
|
'HeraldRuleController' => 'HeraldController',
|
2011-03-24 21:49:21 +01:00
|
|
|
'HeraldTestConsoleController' => 'HeraldController',
|
2011-03-22 21:22:40 +01:00
|
|
|
'HeraldTranscript' => 'HeraldDAO',
|
2011-03-25 05:32:26 +01:00
|
|
|
'HeraldTranscriptController' => 'HeraldController',
|
|
|
|
'HeraldTranscriptListController' => 'HeraldController',
|
2011-04-30 19:11:59 +02:00
|
|
|
'LiskIsolationTestCase' => 'PhabricatorTestCase',
|
|
|
|
'LiskIsolationTestDAO' => 'LiskDAO',
|
2011-07-27 18:49:50 +02:00
|
|
|
'ManiphestAuxiliaryFieldDefaultSpecification' => 'ManiphestAuxiliaryFieldSpecification',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestController' => 'PhabricatorController',
|
|
|
|
'ManiphestDAO' => 'PhabricatorLiskDAO',
|
2011-08-05 18:44:43 +02:00
|
|
|
'ManiphestDefaultTaskExtensions' => 'ManiphestTaskExtensions',
|
2011-05-10 01:31:26 +02:00
|
|
|
'ManiphestReplyHandler' => 'PhabricatorMailReplyHandler',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTask' => 'ManiphestDAO',
|
2011-07-26 00:34:56 +02:00
|
|
|
'ManiphestTaskAuxiliaryStorage' => 'ManiphestDAO',
|
2011-05-21 03:56:18 +02:00
|
|
|
'ManiphestTaskDescriptionChangeController' => 'ManiphestController',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskDetailController' => 'ManiphestController',
|
2011-02-20 23:15:53 +01:00
|
|
|
'ManiphestTaskEditController' => 'ManiphestController',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTaskListController' => 'ManiphestController',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestTaskListView' => 'ManiphestView',
|
|
|
|
'ManiphestTaskOwner' => 'ManiphestConstants',
|
|
|
|
'ManiphestTaskPriority' => 'ManiphestConstants',
|
2011-06-30 01:16:33 +02:00
|
|
|
'ManiphestTaskProject' => 'ManiphestDAO',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestTaskStatus' => 'ManiphestConstants',
|
2011-07-07 19:24:49 +02:00
|
|
|
'ManiphestTaskSubscriber' => 'ManiphestDAO',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestTaskSummaryView' => 'ManiphestView',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTransaction' => 'ManiphestDAO',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestTransactionDetailView' => 'ManiphestView',
|
|
|
|
'ManiphestTransactionListView' => 'ManiphestView',
|
2011-05-10 17:29:28 +02:00
|
|
|
'ManiphestTransactionPreviewController' => 'ManiphestController',
|
2011-02-08 19:53:59 +01:00
|
|
|
'ManiphestTransactionSaveController' => 'ManiphestController',
|
2011-07-04 22:04:22 +02:00
|
|
|
'ManiphestTransactionType' => 'ManiphestConstants',
|
|
|
|
'ManiphestView' => 'AphrontView',
|
2011-01-30 01:16:09 +01:00
|
|
|
'Phabricator404Controller' => 'PhabricatorController',
|
2011-01-26 22:21:12 +01:00
|
|
|
'PhabricatorAuthController' => 'PhabricatorController',
|
Build a basic calendar view
Summary:
This is a very small step toward building a Status and possibly an Oncall tool.
Build a calendar view which renders months.
Much of my hesitance to bang these tools out is that dealing with
dates/calendaring is basically horrible, so I'm trying to ease into it.
This calendar is locale-aware and all that jazz.
Test Plan:
- See:
https://secure.phabricator.com/file/view/PHID-FILE-c07a9c663a7d040d2529/
- Verified that months have the right number of days, today is the right day
of the week, months begin on the day after previous months end on, etc.
Reviewed By: aran
Reviewers: jungejason, tuomaspelkonen, aran
Commenters: cwbeck, jungejason
CC: blair, aran, epriestley, cwbeck, jungejason
Differential Revision: 791
2011-08-08 03:26:31 +02:00
|
|
|
'PhabricatorCalendarBrowseController' => 'PhabricatorCalendarController',
|
|
|
|
'PhabricatorCalendarController' => 'PhabricatorController',
|
2011-01-24 18:00:29 +01:00
|
|
|
'PhabricatorConduitAPIController' => 'PhabricatorConduitController',
|
2011-06-14 21:17:14 +02:00
|
|
|
'PhabricatorConduitCertificateToken' => 'PhabricatorConduitDAO',
|
2011-01-24 18:00:29 +01:00
|
|
|
'PhabricatorConduitConnectionLog' => 'PhabricatorConduitDAO',
|
|
|
|
'PhabricatorConduitConsoleController' => 'PhabricatorConduitController',
|
|
|
|
'PhabricatorConduitController' => 'PhabricatorController',
|
|
|
|
'PhabricatorConduitDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorConduitLogController' => 'PhabricatorConduitController',
|
|
|
|
'PhabricatorConduitMethodCallLog' => 'PhabricatorConduitDAO',
|
2011-06-14 21:17:14 +02:00
|
|
|
'PhabricatorConduitTokenController' => 'PhabricatorConduitController',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorController' => 'AphrontController',
|
2011-06-13 01:06:17 +02:00
|
|
|
'PhabricatorCountdownController' => 'PhabricatorController',
|
|
|
|
'PhabricatorCountdownDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorCountdownDeleteController' => 'PhabricatorCountdownController',
|
|
|
|
'PhabricatorCountdownEditController' => 'PhabricatorCountdownController',
|
|
|
|
'PhabricatorCountdownListController' => 'PhabricatorCountdownController',
|
|
|
|
'PhabricatorCountdownViewController' => 'PhabricatorCountdownController',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorDaemon' => 'PhutilDaemon',
|
2011-05-03 02:05:22 +02:00
|
|
|
'PhabricatorDaemonCombinedLogController' => 'PhabricatorDaemonController',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorDaemonConsoleController' => 'PhabricatorDaemonController',
|
|
|
|
'PhabricatorDaemonController' => 'PhabricatorController',
|
2011-03-15 21:38:14 +01:00
|
|
|
'PhabricatorDaemonDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorDaemonLog' => 'PhabricatorDaemonDAO',
|
|
|
|
'PhabricatorDaemonLogEvent' => 'PhabricatorDaemonDAO',
|
2011-05-03 02:05:22 +02:00
|
|
|
'PhabricatorDaemonLogEventsView' => 'AphrontView',
|
|
|
|
'PhabricatorDaemonLogListController' => 'PhabricatorDaemonController',
|
|
|
|
'PhabricatorDaemonLogListView' => 'AphrontView',
|
2011-03-15 21:38:14 +01:00
|
|
|
'PhabricatorDaemonLogViewController' => 'PhabricatorDaemonController',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorDaemonTimelineConsoleController' => 'PhabricatorDaemonController',
|
|
|
|
'PhabricatorDaemonTimelineEventController' => 'PhabricatorDaemonController',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorDefaultFileStorageEngineSelector' => 'PhabricatorFileStorageEngineSelector',
|
2011-08-08 00:14:23 +02:00
|
|
|
'PhabricatorDefaultSearchEngineSelector' => 'PhabricatorSearchEngineSelector',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorDirectoryCategory' => 'PhabricatorDirectoryDAO',
|
|
|
|
'PhabricatorDirectoryCategoryDeleteController' => 'PhabricatorDirectoryController',
|
|
|
|
'PhabricatorDirectoryCategoryEditController' => 'PhabricatorDirectoryController',
|
|
|
|
'PhabricatorDirectoryCategoryListController' => 'PhabricatorDirectoryController',
|
|
|
|
'PhabricatorDirectoryController' => 'PhabricatorController',
|
|
|
|
'PhabricatorDirectoryDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorDirectoryItem' => 'PhabricatorDirectoryDAO',
|
|
|
|
'PhabricatorDirectoryItemDeleteController' => 'PhabricatorDirectoryController',
|
|
|
|
'PhabricatorDirectoryItemEditController' => 'PhabricatorDirectoryController',
|
|
|
|
'PhabricatorDirectoryItemListController' => 'PhabricatorDirectoryController',
|
|
|
|
'PhabricatorDirectoryMainController' => 'PhabricatorDirectoryController',
|
2011-05-12 19:06:54 +02:00
|
|
|
'PhabricatorDisabledUserController' => 'PhabricatorAuthController',
|
2011-02-06 01:57:21 +01:00
|
|
|
'PhabricatorDraft' => 'PhabricatorDraftDAO',
|
|
|
|
'PhabricatorDraftDAO' => 'PhabricatorLiskDAO',
|
2011-01-31 20:55:26 +01:00
|
|
|
'PhabricatorEmailLoginController' => 'PhabricatorAuthController',
|
|
|
|
'PhabricatorEmailTokenController' => 'PhabricatorAuthController',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedController' => 'PhabricatorController',
|
|
|
|
'PhabricatorFeedDAO' => 'PhabricatorLiskDAO',
|
2011-07-10 03:03:59 +02:00
|
|
|
'PhabricatorFeedPublicStreamController' => 'PhabricatorFeedController',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedStoryData' => 'PhabricatorFeedDAO',
|
2011-07-10 00:44:49 +02:00
|
|
|
'PhabricatorFeedStoryDifferential' => 'PhabricatorFeedStory',
|
2011-07-12 16:23:04 +02:00
|
|
|
'PhabricatorFeedStoryPhriction' => 'PhabricatorFeedStory',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedStoryReference' => 'PhabricatorFeedDAO',
|
2011-07-09 22:28:09 +02:00
|
|
|
'PhabricatorFeedStoryStatus' => 'PhabricatorFeedStory',
|
2011-07-10 00:44:49 +02:00
|
|
|
'PhabricatorFeedStoryTypeConstants' => 'PhabricatorFeedConstants',
|
2011-07-05 17:35:18 +02:00
|
|
|
'PhabricatorFeedStoryUnknown' => 'PhabricatorFeedStory',
|
|
|
|
'PhabricatorFeedStoryView' => 'PhabricatorFeedView',
|
|
|
|
'PhabricatorFeedStreamController' => 'PhabricatorFeedController',
|
|
|
|
'PhabricatorFeedView' => 'AphrontView',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFile' => 'PhabricatorFileDAO',
|
|
|
|
'PhabricatorFileController' => 'PhabricatorController',
|
|
|
|
'PhabricatorFileDAO' => 'PhabricatorLiskDAO',
|
2011-05-22 20:55:10 +02:00
|
|
|
'PhabricatorFileDropUploadController' => 'PhabricatorFileController',
|
2011-04-14 00:15:48 +02:00
|
|
|
'PhabricatorFileImageMacro' => 'PhabricatorFileDAO',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFileListController' => 'PhabricatorFileController',
|
2011-05-03 19:45:45 +02:00
|
|
|
'PhabricatorFileMacroDeleteController' => 'PhabricatorFileController',
|
|
|
|
'PhabricatorFileMacroEditController' => 'PhabricatorFileController',
|
|
|
|
'PhabricatorFileMacroListController' => 'PhabricatorFileController',
|
2011-05-02 23:20:24 +02:00
|
|
|
'PhabricatorFileProxyController' => 'PhabricatorFileController',
|
|
|
|
'PhabricatorFileProxyImage' => 'PhabricatorFileDAO',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFileStorageBlob' => 'PhabricatorFileDAO',
|
2011-05-22 23:40:51 +02:00
|
|
|
'PhabricatorFileTransformController' => 'PhabricatorFileController',
|
2011-01-23 03:33:00 +01:00
|
|
|
'PhabricatorFileUploadController' => 'PhabricatorFileController',
|
|
|
|
'PhabricatorFileViewController' => 'PhabricatorFileController',
|
2011-07-03 18:47:31 +02:00
|
|
|
'PhabricatorGarbageCollectorDaemon' => 'PhabricatorDaemon',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorGoodForNothingWorker' => 'PhabricatorWorker',
|
2011-05-28 20:36:00 +02:00
|
|
|
'PhabricatorHelpController' => 'PhabricatorController',
|
|
|
|
'PhabricatorHelpKeyboardShortcutController' => 'PhabricatorHelpController',
|
2011-05-15 18:29:48 +02:00
|
|
|
'PhabricatorIRCBot' => 'PhabricatorDaemon',
|
2011-05-17 23:40:25 +02:00
|
|
|
'PhabricatorIRCObjectNameHandler' => 'PhabricatorIRCHandler',
|
2011-05-15 18:29:48 +02:00
|
|
|
'PhabricatorIRCProtocolHandler' => 'PhabricatorIRCHandler',
|
Bring Javelin into Phabricator via git submodule, not copy-and-paste
Summary:
Javelin is currently embedded in Phabricator via copy-and-paste of prebuilt
packages. This is not so great.
Pull it in as a submodule instead and make all the Phabriator resources declare
proper dependency trees. Add Javelin linting.
Test Plan:
I tried to run through pretty much all the JS functionality on the site. This is
still a high-risk change, but I did a pretty thorough test
Differential: inline comments, revealing diffs, list tokenizers, comment
preview, editing/deleting comments, add review action.
Maniphest: list tokenizer, comment actions
Herald: rule editing, tokenizers, add/remove rows
Reviewed By: tomo
Reviewers: aran, tomo, mroch, jungejason, tuomaspelkonen
CC: aran, tomo, epriestley
Differential Revision: 223
2011-05-04 00:11:55 +02:00
|
|
|
'PhabricatorJavelinLinter' => 'ArcanistLinter',
|
|
|
|
'PhabricatorLintEngine' => 'PhutilLintEngine',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorLiskDAO' => 'LiskDAO',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorLocalDiskFileStorageEngine' => 'PhabricatorFileStorageEngine',
|
2011-01-26 22:21:12 +01:00
|
|
|
'PhabricatorLoginController' => 'PhabricatorAuthController',
|
2011-01-31 03:52:29 +01:00
|
|
|
'PhabricatorLogoutController' => 'PhabricatorAuthController',
|
2011-02-10 02:39:55 +01:00
|
|
|
'PhabricatorMailImplementationAmazonSESAdapter' => 'PhabricatorMailImplementationPHPMailerLiteAdapter',
|
2011-01-26 18:33:31 +01:00
|
|
|
'PhabricatorMailImplementationPHPMailerLiteAdapter' => 'PhabricatorMailImplementationAdapter',
|
2011-05-26 19:00:26 +02:00
|
|
|
'PhabricatorMailImplementationSendGridAdapter' => 'PhabricatorMailImplementationAdapter',
|
Fix a threading issue with Amazon SES
Summary:
Amazon SES does not allow us to set a Message-ID header, which means
that threads are incorrect in Mail.app (and presumably other applications
which respect In-Reply-To and References) because the initial email does not
have anything which attaches it to the rest of the thread. To fix this, never
rely on Message-ID if the mailer doesn't support Message-ID.
(In the Amazon SES case, Amazon generates its own Message-ID which we can't
know ahead of time).
I additionally used all the Lisk isolation from the other tests to make this
testable and wrote tests for it.
I also moved the idea of a thread ID lower in the stack and out of
DifferentialMail, which should not be responsible for implementation details.
NOTE: If you push this, it will cause a one-time break of threading for
everyone using Outlook since I've changed the seed for generating Thread-Index.
I feel like this is okay to avoid introducing more complexity here.
Test Plan:
Created and then updated a revision, messages delivered over Amazon
SES threaded correctly in Mail.app. Verified headers. Unit tests.
Reviewed By: rm
Reviewers: aran, tuomaspelkonen, jungejason, rm
Commenters: aran
CC: aran, rm, epriestley
Differential Revision: 195
2011-04-30 20:47:00 +02:00
|
|
|
'PhabricatorMailImplementationTestAdapter' => 'PhabricatorMailImplementationAdapter',
|
2011-01-26 02:40:21 +01:00
|
|
|
'PhabricatorMetaMTAController' => 'PhabricatorController',
|
|
|
|
'PhabricatorMetaMTADAO' => 'PhabricatorLiskDAO',
|
2011-03-17 01:46:29 +01:00
|
|
|
'PhabricatorMetaMTADaemon' => 'PhabricatorDaemon',
|
2011-06-01 17:33:14 +02:00
|
|
|
'PhabricatorMetaMTAEmailBodyParserTestCase' => 'PhabricatorTestCase',
|
2011-01-26 02:40:21 +01:00
|
|
|
'PhabricatorMetaMTAListController' => 'PhabricatorMetaMTAController',
|
|
|
|
'PhabricatorMetaMTAMail' => 'PhabricatorMetaMTADAO',
|
Fix a threading issue with Amazon SES
Summary:
Amazon SES does not allow us to set a Message-ID header, which means
that threads are incorrect in Mail.app (and presumably other applications
which respect In-Reply-To and References) because the initial email does not
have anything which attaches it to the rest of the thread. To fix this, never
rely on Message-ID if the mailer doesn't support Message-ID.
(In the Amazon SES case, Amazon generates its own Message-ID which we can't
know ahead of time).
I additionally used all the Lisk isolation from the other tests to make this
testable and wrote tests for it.
I also moved the idea of a thread ID lower in the stack and out of
DifferentialMail, which should not be responsible for implementation details.
NOTE: If you push this, it will cause a one-time break of threading for
everyone using Outlook since I've changed the seed for generating Thread-Index.
I feel like this is okay to avoid introducing more complexity here.
Test Plan:
Created and then updated a revision, messages delivered over Amazon
SES threaded correctly in Mail.app. Verified headers. Unit tests.
Reviewed By: rm
Reviewers: aran, tuomaspelkonen, jungejason, rm
Commenters: aran
CC: aran, rm, epriestley
Differential Revision: 195
2011-04-30 20:47:00 +02:00
|
|
|
'PhabricatorMetaMTAMailTestCase' => 'PhabricatorTestCase',
|
2011-01-26 19:40:38 +01:00
|
|
|
'PhabricatorMetaMTAMailingList' => 'PhabricatorMetaMTADAO',
|
|
|
|
'PhabricatorMetaMTAMailingListEditController' => 'PhabricatorMetaMTAController',
|
|
|
|
'PhabricatorMetaMTAMailingListsController' => 'PhabricatorMetaMTAController',
|
2011-05-05 08:09:42 +02:00
|
|
|
'PhabricatorMetaMTAReceiveController' => 'PhabricatorMetaMTAController',
|
|
|
|
'PhabricatorMetaMTAReceivedListController' => 'PhabricatorMetaMTAController',
|
|
|
|
'PhabricatorMetaMTAReceivedMail' => 'PhabricatorMetaMTADAO',
|
2011-01-26 02:40:21 +01:00
|
|
|
'PhabricatorMetaMTASendController' => 'PhabricatorMetaMTAController',
|
2011-05-30 20:07:05 +02:00
|
|
|
'PhabricatorMetaMTASendGridReceiveController' => 'PhabricatorMetaMTAController',
|
2011-01-26 18:08:26 +01:00
|
|
|
'PhabricatorMetaMTAViewController' => 'PhabricatorMetaMTAController',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorMySQLFileStorageEngine' => 'PhabricatorFileStorageEngine',
|
2011-02-28 04:47:22 +01:00
|
|
|
'PhabricatorOAuthDefaultRegistrationController' => 'PhabricatorOAuthRegistrationController',
|
2011-02-21 07:47:56 +01:00
|
|
|
'PhabricatorOAuthDiagnosticsController' => 'PhabricatorAuthController',
|
|
|
|
'PhabricatorOAuthFailureView' => 'AphrontView',
|
|
|
|
'PhabricatorOAuthLoginController' => 'PhabricatorAuthController',
|
|
|
|
'PhabricatorOAuthProviderFacebook' => 'PhabricatorOAuthProvider',
|
|
|
|
'PhabricatorOAuthProviderGithub' => 'PhabricatorOAuthProvider',
|
2011-02-28 04:47:22 +01:00
|
|
|
'PhabricatorOAuthRegistrationController' => 'PhabricatorAuthController',
|
2011-02-22 07:51:34 +01:00
|
|
|
'PhabricatorOAuthUnlinkController' => 'PhabricatorAuthController',
|
2011-07-05 22:18:47 +02:00
|
|
|
'PhabricatorObjectGraph' => 'AbstractDirectedGraph',
|
Add object status to Handles
Summary:
We use ObjectHandles as proxy objects which can refer to any other object in the
system. Add the concept of the underlying object's "status" (e.g., open, closed
or busy).
This allows us to render completed tasks and revisions with strikethrough. In
the future, if we implement OOO or something, we could render users with a
"busy" status if they're on vacation, etc.
Test Plan: Viewed a task with closed revisions and dependencies:
https://secure.phabricator.com/file/view/PHID-FILE-6183e81286fa3288d33d/
Reviewed By: codeblock
Reviewers: codeblock, hunterbridges, jungejason, tuomaspelkonen, aran
CC: aran, codeblock
Differential Revision: 772
2011-08-03 15:37:18 +02:00
|
|
|
'PhabricatorObjectHandleStatus' => 'PhabricatorObjectHandleConstants',
|
2011-04-03 23:48:36 +02:00
|
|
|
'PhabricatorOwnersController' => 'PhabricatorController',
|
|
|
|
'PhabricatorOwnersDAO' => 'PhabricatorLiskDAO',
|
2011-04-04 07:03:27 +02:00
|
|
|
'PhabricatorOwnersDeleteController' => 'PhabricatorOwnersController',
|
2011-04-03 23:48:36 +02:00
|
|
|
'PhabricatorOwnersDetailController' => 'PhabricatorOwnersController',
|
2011-04-04 07:03:27 +02:00
|
|
|
'PhabricatorOwnersEditController' => 'PhabricatorOwnersController',
|
2011-04-03 23:48:36 +02:00
|
|
|
'PhabricatorOwnersListController' => 'PhabricatorOwnersController',
|
|
|
|
'PhabricatorOwnersOwner' => 'PhabricatorOwnersDAO',
|
|
|
|
'PhabricatorOwnersPackage' => 'PhabricatorOwnersDAO',
|
|
|
|
'PhabricatorOwnersPath' => 'PhabricatorOwnersDAO',
|
2011-01-23 06:09:13 +01:00
|
|
|
'PhabricatorPHID' => 'PhabricatorPHIDDAO',
|
|
|
|
'PhabricatorPHIDController' => 'PhabricatorController',
|
|
|
|
'PhabricatorPHIDDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorPHIDListController' => 'PhabricatorPHIDController',
|
2011-01-26 18:02:09 +01:00
|
|
|
'PhabricatorPHIDLookupController' => 'PhabricatorPHIDController',
|
2011-06-10 08:53:53 +02:00
|
|
|
'PhabricatorPaste' => 'PhabricatorPasteDAO',
|
|
|
|
'PhabricatorPasteController' => 'PhabricatorController',
|
|
|
|
'PhabricatorPasteCreateController' => 'PhabricatorPasteController',
|
|
|
|
'PhabricatorPasteDAO' => 'PhabricatorLiskDAO',
|
2011-06-14 04:12:30 +02:00
|
|
|
'PhabricatorPasteListController' => 'PhabricatorPasteController',
|
2011-06-10 08:53:53 +02:00
|
|
|
'PhabricatorPasteViewController' => 'PhabricatorPasteController',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorPeopleController' => 'PhabricatorController',
|
|
|
|
'PhabricatorPeopleEditController' => 'PhabricatorPeopleController',
|
|
|
|
'PhabricatorPeopleListController' => 'PhabricatorPeopleController',
|
Provide an activity log for login and administrative actions
Summary: This isn't complete, but I figured I'd ship it for review while it's still smallish.
Provide an activity log for high-level system actions (logins, admin actions). This basically allows two things to happen:
- The log itself is useful if there are shenanigans.
- Password login can check it and start CAPTCHA'ing users after a few failed attempts.
I'm going to change how the admin stuff works a little bit too, since right now you can make someone an agent, grab their certificate, revert them back to a normal user, and then act on their behalf over Conduit. This is a little silly, I'm going to move "agent" to the create workflow instead. I'll also add a confirm/email step to the administrative password reset flow.
Test Plan: Took various administrative and non-administrative actions, they appeared in the logs. Filtered the logs in a bunch of different ways.
Reviewers: jungejason, tuomaspelkonen, aran
CC:
Differential Revision: 302
2011-05-18 03:42:21 +02:00
|
|
|
'PhabricatorPeopleLogsController' => 'PhabricatorPeopleController',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorPeopleProfileController' => 'PhabricatorPeopleController',
|
2011-06-18 10:13:56 +02:00
|
|
|
'PhabricatorProfileView' => 'AphrontView',
|
2011-02-21 03:41:23 +01:00
|
|
|
'PhabricatorProject' => 'PhabricatorProjectDAO',
|
|
|
|
'PhabricatorProjectAffiliation' => 'PhabricatorProjectDAO',
|
|
|
|
'PhabricatorProjectAffiliationEditController' => 'PhabricatorProjectController',
|
|
|
|
'PhabricatorProjectController' => 'PhabricatorController',
|
2011-06-26 17:37:47 +02:00
|
|
|
'PhabricatorProjectCreateController' => 'PhabricatorProjectController',
|
2011-02-21 03:41:23 +01:00
|
|
|
'PhabricatorProjectDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorProjectListController' => 'PhabricatorProjectController',
|
|
|
|
'PhabricatorProjectProfile' => 'PhabricatorProjectDAO',
|
|
|
|
'PhabricatorProjectProfileController' => 'PhabricatorProjectController',
|
2011-06-18 10:13:56 +02:00
|
|
|
'PhabricatorProjectProfileEditController' => 'PhabricatorProjectController',
|
2011-07-20 07:48:38 +02:00
|
|
|
'PhabricatorProjectSubproject' => 'PhabricatorProjectDAO',
|
2011-04-04 19:29:46 +02:00
|
|
|
'PhabricatorRedirectController' => 'PhabricatorController',
|
Fix conservative CSRF token cycling limit
Summary:
We currently cycle CSRF tokens every hour and check for the last two valid ones.
This means that a form could go stale in as little as an hour, and is certainly
stale after two.
When a stale form is submitted, you basically get a terrible heisen-state where
some of your data might persist if you're lucky but more likely it all just
vanishes. The .js file below outlines some more details.
This is a pretty terrible UX and we don't need to be as conservative about CSRF
validation as we're being. Remedy this problem by:
- Accepting the last 6 CSRF tokens instead of the last 1 (i.e., pages are
valid for at least 6 hours, and for as long as 7).
- Using JS to refresh the CSRF token every 55 minutes (i.e., pages connected
to the internet are valid indefinitely).
- Showing the user an explicit message about what went wrong when CSRF
validation fails so the experience is less bewildering.
They should now only be able to submit with a bad CSRF token if:
- They load a page, disconnect from the internet for 7 hours, reconnect, and
submit the form within 55 minutes; or
- They are actually the victim of a CSRF attack.
We could eventually fix the first one by tracking reconnects, which might be
"free" once the notification server gets built. It will probably never be an
issue in practice.
Test Plan:
- Reduced CSRF cycle frequency to 2 seconds, submitted a form after 15
seconds, got the CSRF exception.
- Reduced csrf-refresh cycle frequency to 3 seconds, submitted a form after 15
seconds, got a clean form post.
- Added debugging code the the csrf refresh to make sure it was doing sensible
things (pulling different tokens, finding all the inputs).
Reviewed By: aran
Reviewers: tuomaspelkonen, jungejason, aran
CC: aran, epriestley
Differential Revision: 660
2011-07-13 23:05:18 +02:00
|
|
|
'PhabricatorRefreshCSRFController' => 'PhabricatorAuthController',
|
2011-05-31 19:23:31 +02:00
|
|
|
'PhabricatorRemarkupRuleDifferential' => 'PhabricatorRemarkupRuleObjectName',
|
Provide a "reference-with-full-name" syntax for Remarkup
Summary:
Provide a {T123} syntax which pulls in the entire name of an object, not just a
link to it. A major use for this is organizing projects using wiki pages. Since
handle links show object status now, this lets you organize stuff in an ad-hoc
way and get a reasonable overview of it. We can make handles richer in the
future, too.
The performance on this isn't perfect (it adds some potential single gets) but I
think it's okay for now and I don't want to make remarkup engine even more
complex until the preprocess/postprocess stuff has had a chance to settle and
I'm more confident it works.
In Differential and Maniphest we'll also incorrectly cache the object
state/name, but that'll fix itself once I move the cache code to use
preprocess/postprocess correctly.
Test Plan:
- See https://secure.phabricator.com/file/view/PHID-FILE-5f9ca32407bec20899b9/
for an example.
- Generated and looked over the documentation.
Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran, hunterbridges
CC: skrul, aran, jungejason, epriestley
Differential Revision: 784
2011-08-05 17:50:26 +02:00
|
|
|
'PhabricatorRemarkupRuleDifferentialHandle' => 'PhabricatorRemarkupRuleObjectHandle',
|
2011-04-11 12:02:19 +02:00
|
|
|
'PhabricatorRemarkupRuleDiffusion' => 'PhutilRemarkupRule',
|
2011-07-15 23:17:55 +02:00
|
|
|
'PhabricatorRemarkupRuleEmbedFile' => 'PhutilRemarkupRule',
|
2011-04-14 00:15:48 +02:00
|
|
|
'PhabricatorRemarkupRuleImageMacro' => 'PhutilRemarkupRule',
|
2011-05-31 19:23:31 +02:00
|
|
|
'PhabricatorRemarkupRuleManiphest' => 'PhabricatorRemarkupRuleObjectName',
|
Provide a "reference-with-full-name" syntax for Remarkup
Summary:
Provide a {T123} syntax which pulls in the entire name of an object, not just a
link to it. A major use for this is organizing projects using wiki pages. Since
handle links show object status now, this lets you organize stuff in an ad-hoc
way and get a reasonable overview of it. We can make handles richer in the
future, too.
The performance on this isn't perfect (it adds some potential single gets) but I
think it's okay for now and I don't want to make remarkup engine even more
complex until the preprocess/postprocess stuff has had a chance to settle and
I'm more confident it works.
In Differential and Maniphest we'll also incorrectly cache the object
state/name, but that'll fix itself once I move the cache code to use
preprocess/postprocess correctly.
Test Plan:
- See https://secure.phabricator.com/file/view/PHID-FILE-5f9ca32407bec20899b9/
for an example.
- Generated and looked over the documentation.
Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran, hunterbridges
CC: skrul, aran, jungejason, epriestley
Differential Revision: 784
2011-08-05 17:50:26 +02:00
|
|
|
'PhabricatorRemarkupRuleManiphestHandle' => 'PhabricatorRemarkupRuleObjectHandle',
|
2011-06-24 19:59:57 +02:00
|
|
|
'PhabricatorRemarkupRuleMention' => 'PhutilRemarkupRule',
|
Provide a "reference-with-full-name" syntax for Remarkup
Summary:
Provide a {T123} syntax which pulls in the entire name of an object, not just a
link to it. A major use for this is organizing projects using wiki pages. Since
handle links show object status now, this lets you organize stuff in an ad-hoc
way and get a reasonable overview of it. We can make handles richer in the
future, too.
The performance on this isn't perfect (it adds some potential single gets) but I
think it's okay for now and I don't want to make remarkup engine even more
complex until the preprocess/postprocess stuff has had a chance to settle and
I'm more confident it works.
In Differential and Maniphest we'll also incorrectly cache the object
state/name, but that'll fix itself once I move the cache code to use
preprocess/postprocess correctly.
Test Plan:
- See https://secure.phabricator.com/file/view/PHID-FILE-5f9ca32407bec20899b9/
for an example.
- Generated and looked over the documentation.
Reviewed By: jungejason
Reviewers: jungejason, tuomaspelkonen, aran, hunterbridges
CC: skrul, aran, jungejason, epriestley
Differential Revision: 784
2011-08-05 17:50:26 +02:00
|
|
|
'PhabricatorRemarkupRuleObjectHandle' => 'PhutilRemarkupRule',
|
2011-05-31 19:23:31 +02:00
|
|
|
'PhabricatorRemarkupRuleObjectName' => 'PhutilRemarkupRule',
|
2011-06-27 08:57:43 +02:00
|
|
|
'PhabricatorRemarkupRulePaste' => 'PhabricatorRemarkupRuleObjectName',
|
2011-07-12 05:14:46 +02:00
|
|
|
'PhabricatorRemarkupRulePhriction' => 'PhutilRemarkupRule',
|
2011-05-02 23:20:24 +02:00
|
|
|
'PhabricatorRemarkupRuleProxyImage' => 'PhutilRemarkupRule',
|
2011-05-27 21:50:02 +02:00
|
|
|
'PhabricatorRemarkupRuleYoutube' => 'PhutilRemarkupRule',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepository' => 'PhabricatorRepositoryDAO',
|
2011-04-06 05:49:31 +02:00
|
|
|
'PhabricatorRepositoryArcanistProject' => 'PhabricatorRepositoryDAO',
|
|
|
|
'PhabricatorRepositoryArcanistProjectEditController' => 'PhabricatorRepositoryController',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryCommit' => 'PhabricatorRepositoryDAO',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryCommitChangeParserWorker' => 'PhabricatorRepositoryCommitParserWorker',
|
|
|
|
'PhabricatorRepositoryCommitData' => 'PhabricatorRepositoryDAO',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryCommitDiscoveryDaemon' => 'PhabricatorRepositoryDaemon',
|
2011-04-04 08:23:36 +02:00
|
|
|
'PhabricatorRepositoryCommitHeraldWorker' => 'PhabricatorRepositoryCommitParserWorker',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryCommitMessageParserWorker' => 'PhabricatorRepositoryCommitParserWorker',
|
|
|
|
'PhabricatorRepositoryCommitParserWorker' => 'PhabricatorWorker',
|
|
|
|
'PhabricatorRepositoryCommitTaskDaemon' => 'PhabricatorRepositoryDaemon',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepositoryController' => 'PhabricatorController',
|
2011-03-11 23:13:23 +01:00
|
|
|
'PhabricatorRepositoryCreateController' => 'PhabricatorRepositoryController',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepositoryDAO' => 'PhabricatorLiskDAO',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryDaemon' => 'PhabricatorDaemon',
|
2011-04-02 02:11:05 +02:00
|
|
|
'PhabricatorRepositoryDefaultCommitMessageDetailParser' => 'PhabricatorRepositoryCommitMessageDetailParser',
|
2011-05-05 21:53:39 +02:00
|
|
|
'PhabricatorRepositoryDeleteController' => 'PhabricatorRepositoryController',
|
2011-03-11 23:13:23 +01:00
|
|
|
'PhabricatorRepositoryEditController' => 'PhabricatorRepositoryController',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryGitCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorRepositoryGitCommitDiscoveryDaemon' => 'PhabricatorRepositoryCommitDiscoveryDaemon',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositoryGitCommitMessageParserWorker' => 'PhabricatorRepositoryCommitMessageParserWorker',
|
2011-03-21 01:46:02 +01:00
|
|
|
'PhabricatorRepositoryGitFetchDaemon' => 'PhabricatorRepositoryDaemon',
|
2011-02-13 03:26:15 +01:00
|
|
|
'PhabricatorRepositoryGitHubNotification' => 'PhabricatorRepositoryDAO',
|
|
|
|
'PhabricatorRepositoryGitHubPostReceiveController' => 'PhabricatorRepositoryController',
|
2011-03-11 23:13:23 +01:00
|
|
|
'PhabricatorRepositoryListController' => 'PhabricatorRepositoryController',
|
2011-03-31 09:33:44 +02:00
|
|
|
'PhabricatorRepositoryShortcut' => 'PhabricatorRepositoryDAO',
|
2011-03-11 23:13:23 +01:00
|
|
|
'PhabricatorRepositorySvnCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker',
|
2011-03-11 18:34:22 +01:00
|
|
|
'PhabricatorRepositorySvnCommitDiscoveryDaemon' => 'PhabricatorRepositoryCommitDiscoveryDaemon',
|
|
|
|
'PhabricatorRepositorySvnCommitMessageParserWorker' => 'PhabricatorRepositoryCommitMessageParserWorker',
|
2011-07-31 22:54:58 +02:00
|
|
|
'PhabricatorS3FileStorageEngine' => 'PhabricatorFileStorageEngine',
|
2011-05-16 20:43:39 +02:00
|
|
|
'PhabricatorSearchAttachController' => 'PhabricatorSearchController',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchBaseController' => 'PhabricatorController',
|
2011-06-20 06:02:48 +02:00
|
|
|
'PhabricatorSearchCommitIndexer' => 'PhabricatorSearchDocumentIndexer',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchController' => 'PhabricatorSearchBaseController',
|
|
|
|
'PhabricatorSearchDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorSearchDifferentialIndexer' => 'PhabricatorSearchDocumentIndexer',
|
|
|
|
'PhabricatorSearchDocument' => 'PhabricatorSearchDAO',
|
|
|
|
'PhabricatorSearchDocumentField' => 'PhabricatorSearchDAO',
|
|
|
|
'PhabricatorSearchDocumentRelationship' => 'PhabricatorSearchDAO',
|
2011-08-08 00:14:23 +02:00
|
|
|
'PhabricatorSearchEngineMySQL' => 'PhabricatorSearchEngine',
|
2011-06-15 16:43:43 +02:00
|
|
|
'PhabricatorSearchIndexController' => 'PhabricatorSearchBaseController',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchManiphestIndexer' => 'PhabricatorSearchDocumentIndexer',
|
2011-07-12 02:29:08 +02:00
|
|
|
'PhabricatorSearchPhrictionIndexer' => 'PhabricatorSearchDocumentIndexer',
|
2011-02-15 00:34:20 +01:00
|
|
|
'PhabricatorSearchQuery' => 'PhabricatorSearchDAO',
|
Improve search result listing
Summary:
Make it prettier, paginate, add user pictures, show document types, clean some
stuff up a little. Plenty of room for improvement but this should make it a lot
more useful.
Test Plan:
Here's what the new one looks like:
https://secure.phabricator.com/file/view/PHID-FILE-edce2b83c2e3a121c2b7/
Reviewed By: jungejason
Reviewers: tomo, jungejason, aran, tuomaspelkonen, mroch
Commenters: tomo
CC: aran, tomo, jungejason, epriestley
Differential Revision: 545
2011-06-28 23:35:02 +02:00
|
|
|
'PhabricatorSearchResultView' => 'AphrontView',
|
2011-05-16 20:43:39 +02:00
|
|
|
'PhabricatorSearchSelectController' => 'PhabricatorSearchController',
|
2011-06-23 22:31:20 +02:00
|
|
|
'PhabricatorSearchUserIndexer' => 'PhabricatorSearchDocumentIndexer',
|
2011-07-08 20:13:11 +02:00
|
|
|
'PhabricatorSlowvoteChoice' => 'PhabricatorSlowvoteDAO',
|
|
|
|
'PhabricatorSlowvoteComment' => 'PhabricatorSlowvoteDAO',
|
|
|
|
'PhabricatorSlowvoteController' => 'PhabricatorController',
|
|
|
|
'PhabricatorSlowvoteCreateController' => 'PhabricatorSlowvoteController',
|
|
|
|
'PhabricatorSlowvoteDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorSlowvoteListController' => 'PhabricatorSlowvoteController',
|
|
|
|
'PhabricatorSlowvoteOption' => 'PhabricatorSlowvoteDAO',
|
|
|
|
'PhabricatorSlowvotePoll' => 'PhabricatorSlowvoteDAO',
|
|
|
|
'PhabricatorSlowvotePollController' => 'PhabricatorSlowvoteController',
|
2011-01-23 02:48:55 +01:00
|
|
|
'PhabricatorStandardPageView' => 'AphrontPageView',
|
2011-04-08 20:13:29 +02:00
|
|
|
'PhabricatorStatusController' => 'PhabricatorController',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorTaskmasterDaemon' => 'PhabricatorDaemon',
|
2011-04-30 19:11:41 +02:00
|
|
|
'PhabricatorTestCase' => 'ArcanistPhutilTestCase',
|
2011-03-07 07:29:22 +01:00
|
|
|
'PhabricatorTimelineCursor' => 'PhabricatorTimelineDAO',
|
|
|
|
'PhabricatorTimelineDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorTimelineEvent' => 'PhabricatorTimelineDAO',
|
|
|
|
'PhabricatorTimelineEventData' => 'PhabricatorTimelineDAO',
|
2011-06-13 01:06:17 +02:00
|
|
|
'PhabricatorTimer' => 'PhabricatorCountdownDAO',
|
2011-05-22 23:40:51 +02:00
|
|
|
'PhabricatorTransformedFile' => 'PhabricatorFileDAO',
|
2011-08-03 17:17:53 +02:00
|
|
|
'PhabricatorTrivialTestCase' => 'PhabricatorTestCase',
|
2011-01-25 22:48:05 +01:00
|
|
|
'PhabricatorTypeaheadCommonDatasourceController' => 'PhabricatorTypeaheadDatasourceController',
|
|
|
|
'PhabricatorTypeaheadDatasourceController' => 'PhabricatorController',
|
2011-04-01 02:06:33 +02:00
|
|
|
'PhabricatorUIExampleController' => 'PhabricatorController',
|
|
|
|
'PhabricatorUIExampleRenderController' => 'PhabricatorUIExampleController',
|
2011-04-04 00:50:06 +02:00
|
|
|
'PhabricatorUIListFilterExample' => 'PhabricatorUIExample',
|
2011-04-01 02:06:33 +02:00
|
|
|
'PhabricatorUIPagerExample' => 'PhabricatorUIExample',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorUser' => 'PhabricatorUserDAO',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserAccountSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
|
|
|
'PhabricatorUserConduitSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
2011-01-24 03:09:16 +01:00
|
|
|
'PhabricatorUserDAO' => 'PhabricatorLiskDAO',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserEmailSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
Provide an activity log for login and administrative actions
Summary: This isn't complete, but I figured I'd ship it for review while it's still smallish.
Provide an activity log for high-level system actions (logins, admin actions). This basically allows two things to happen:
- The log itself is useful if there are shenanigans.
- Password login can check it and start CAPTCHA'ing users after a few failed attempts.
I'm going to change how the admin stuff works a little bit too, since right now you can make someone an agent, grab their certificate, revert them back to a normal user, and then act on their behalf over Conduit. This is a little silly, I'm going to move "agent" to the create workflow instead. I'll also add a confirm/email step to the administrative password reset flow.
Test Plan: Took various administrative and non-administrative actions, they appeared in the logs. Filtered the logs in a bunch of different ways.
Reviewers: jungejason, tuomaspelkonen, aran
CC:
Differential Revision: 302
2011-05-18 03:42:21 +02:00
|
|
|
'PhabricatorUserLog' => 'PhabricatorUserDAO',
|
2011-02-21 07:47:56 +01:00
|
|
|
'PhabricatorUserOAuthInfo' => 'PhabricatorUserDAO',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserOAuthSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
2011-07-24 20:02:08 +02:00
|
|
|
'PhabricatorUserPreferenceSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
2011-03-31 04:21:09 +02:00
|
|
|
'PhabricatorUserPreferences' => 'PhabricatorUserDAO',
|
2011-02-20 03:28:41 +01:00
|
|
|
'PhabricatorUserProfile' => 'PhabricatorUserDAO',
|
2011-07-25 00:03:59 +02:00
|
|
|
'PhabricatorUserProfileSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
2011-07-22 19:17:57 +02:00
|
|
|
'PhabricatorUserSSHKey' => 'PhabricatorUserDAO',
|
|
|
|
'PhabricatorUserSSHKeysSettingsPanelController' => 'PhabricatorUserSettingsPanelController',
|
2011-02-06 07:36:21 +01:00
|
|
|
'PhabricatorUserSettingsController' => 'PhabricatorPeopleController',
|
2011-07-18 17:02:00 +02:00
|
|
|
'PhabricatorUserSettingsPanelController' => 'PhabricatorPeopleController',
|
2011-03-10 22:48:29 +01:00
|
|
|
'PhabricatorWorkerDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorWorkerTask' => 'PhabricatorWorkerDAO',
|
|
|
|
'PhabricatorWorkerTaskData' => 'PhabricatorWorkerDAO',
|
2011-03-27 07:55:18 +02:00
|
|
|
'PhabricatorWorkerTaskDetailController' => 'PhabricatorDaemonController',
|
2011-04-07 04:17:05 +02:00
|
|
|
'PhabricatorXHPASTViewController' => 'PhabricatorController',
|
|
|
|
'PhabricatorXHPASTViewDAO' => 'PhabricatorLiskDAO',
|
|
|
|
'PhabricatorXHPASTViewFrameController' => 'PhabricatorXHPASTViewController',
|
|
|
|
'PhabricatorXHPASTViewFramesetController' => 'PhabricatorXHPASTViewController',
|
|
|
|
'PhabricatorXHPASTViewInputController' => 'PhabricatorXHPASTViewPanelController',
|
|
|
|
'PhabricatorXHPASTViewPanelController' => 'PhabricatorXHPASTViewController',
|
|
|
|
'PhabricatorXHPASTViewParseTree' => 'PhabricatorXHPASTViewDAO',
|
|
|
|
'PhabricatorXHPASTViewRunController' => 'PhabricatorXHPASTViewController',
|
|
|
|
'PhabricatorXHPASTViewStreamController' => 'PhabricatorXHPASTViewPanelController',
|
|
|
|
'PhabricatorXHPASTViewTreeController' => 'PhabricatorXHPASTViewPanelController',
|
2011-02-02 22:48:52 +01:00
|
|
|
'PhabricatorXHProfController' => 'PhabricatorController',
|
|
|
|
'PhabricatorXHProfProfileController' => 'PhabricatorXHProfController',
|
|
|
|
'PhabricatorXHProfProfileSymbolView' => 'AphrontView',
|
|
|
|
'PhabricatorXHProfProfileTopLevelView' => 'AphrontView',
|
2011-07-12 16:23:04 +02:00
|
|
|
'PhrictionActionConstants' => 'PhrictionConstants',
|
2011-07-11 21:34:53 +02:00
|
|
|
'PhrictionContent' => 'PhrictionDAO',
|
2011-07-11 17:54:22 +02:00
|
|
|
'PhrictionController' => 'PhabricatorController',
|
|
|
|
'PhrictionDAO' => 'PhabricatorLiskDAO',
|
2011-07-17 20:06:02 +02:00
|
|
|
'PhrictionDiffController' => 'PhrictionController',
|
2011-07-11 17:54:22 +02:00
|
|
|
'PhrictionDocument' => 'PhrictionDAO',
|
|
|
|
'PhrictionDocumentController' => 'PhrictionController',
|
2011-07-17 03:25:45 +02:00
|
|
|
'PhrictionDocumentPreviewController' => 'PhrictionController',
|
2011-07-12 17:08:03 +02:00
|
|
|
'PhrictionDocumentTestCase' => 'PhabricatorTestCase',
|
2011-07-11 21:34:53 +02:00
|
|
|
'PhrictionEditController' => 'PhrictionController',
|
2011-07-12 00:06:19 +02:00
|
|
|
'PhrictionHistoryController' => 'PhrictionController',
|
2011-07-12 00:42:12 +02:00
|
|
|
'PhrictionListController' => 'PhrictionController',
|
2011-01-16 22:51:39 +01:00
|
|
|
),
|
|
|
|
'requires_interface' =>
|
|
|
|
array(
|
|
|
|
),
|
|
|
|
));
|