summary refs log tree commit diff
path: root/synapse (follow)
Commit message (Expand)AuthorAgeFilesLines
* Return whether a user is an admin within a groupLuke Barnard2017-11-071-2/+3
* Merge pull request #2576 from maximevaillancourt/exclude-noscript-url-previewMatthew Hodgson2017-11-071-1/+8
|\
| * Ignore noscript tags when generating URL previewsMaxime Vaillancourt2017-10-251-1/+8
* | Logging and logcontext fixes for LimiterRichard van der Hoff2017-11-071-7/+17
* | Merge pull request #2630 from matrix-org/luke/fix-rooms-in-groupDavid Baker2017-11-021-3/+1
|\ \
| * | Make the get_rooms_in_group API more saneLuke Barnard2017-11-021-3/+1
* | | Merge pull request #2629 from matrix-org/rav/register_inhibit_loginDavid Baker2017-11-021-12/+16
|\ \ \ | |/ / |/| |
| * | support inhibit_login in /registerRichard van der Hoff2017-11-021-12/+16
* | | Merge remote-tracking branch 'origin/develop' into rav/module_api_hooksDavid Baker2017-11-023-45/+137
|\ \ \
| * \ \ Merge pull request #2627 from matrix-org/rav/custom_rest_endpointsDavid Baker2017-11-023-0/+74
| |\ \ \
| | * | | Add a hook for custom rest endpointsRichard van der Hoff2017-11-023-0/+74
| | |/ /
| * | | Merge pull request #2626 from matrix-org/rav/refactor_module_apiDavid Baker2017-11-022-69/+82
| |\ \ \
| * | | | Factor out _configure_named_resourceRichard van der Hoff2017-11-021-46/+64
| | |/ / | |/| |
* | | | Add more hooks to ModuleApiRichard van der Hoff2017-11-021-0/+34
| |/ / |/| |
* | | Factor _AccountHandler proxy out to ModuleApiRichard van der Hoff2017-11-022-69/+82
|/ /
* | Merge pull request #2624 from matrix-org/rav/password_provider_notify_logoutDavid Baker2017-11-022-7/+32
|\ \
| * | Notify auth providers on logoutRichard van der Hoff2017-11-012-7/+32
* | | Merge pull request #2623 from matrix-org/rav/callbacks_for_auth_providersDavid Baker2017-11-022-7/+15
|\ \ \
| * | | Fix user-interactive password authRichard van der Hoff2017-11-011-1/+3
| * | | Allow password_auth_providers to return a callbackRichard van der Hoff2017-11-012-6/+12
| |/ /
* | | Merge pull request #2622 from matrix-org/rav/db_access_for_auth_providersDavid Baker2017-11-021-0/+16
|\ \ \ | |/ / |/| |
| * | Let auth providers get to the databaseRichard van der Hoff2017-10-311-0/+16
* | | Merge pull request #2620 from matrix-org/rav/auth_non_passwordRichard van der Hoff2017-11-011-22/+96
|\ \ \
| * | | Let password auth providers handle arbitrary login typesRichard van der Hoff2017-11-011-22/+96
| |/ /
* | | Merge pull request #2621 from matrix-org/rav/refactor_accesstoken_deleteDavid Baker2017-11-016-27/+62
|\ \ \
| * \ \ Merge remote-tracking branch 'origin/develop' into rav/refactor_accesstoken_d...David Baker2017-11-0114-95/+62
| |\ \ \
| * | | | Move access token deletion into auth handlerRichard van der Hoff2017-11-016-27/+62
| | |/ / | |/| |
* | | | Merge pull request #2617 from matrix-org/matthew/auto-displaynameMatthew Hodgson2017-11-011-2/+4
|\ \ \ \ | |_|/ / |/| | |
| * | | switch to setting default displayname in the storage layerMatthew Hodgson2017-11-012-10/+5
| * | | automatically set default displayname on registerMatthew Hodgson2017-11-011-1/+8
* | | | Merge pull request #2615 from matrix-org/rav/break_auth_device_depDavid Baker2017-11-013-13/+6
|\ \ \ \
| * | | | Break dependency of auth_handler on device_handlerRichard van der Hoff2017-11-013-13/+6
| | |/ / | |/| |
* | | | Merge pull request #2613 from matrix-org/rav/kill_refresh_tokensDavid Baker2017-11-015-60/+14
|\ \ \ \
| * | | | Remove the last vestiges of refresh_tokensRichard van der Hoff2017-10-315-60/+14
| |/ / /
* | | | Apparently this is pythonDavid Baker2017-11-011-1/+1
* | | | Log login requestsDavid Baker2017-11-011-0/+10
| |/ / |/| |
* | | Merge pull request #2612 from matrix-org/luke/groups-room-relationship-is-publicLuke Barnard2017-11-016-22/+32
|\ \ \ | |/ / |/| |
| * | Leave `is_public` as required argument of update_room_group_associationLuke Barnard2017-11-011-1/+1
| * | Update docs for updating room group associationLuke Barnard2017-11-012-2/+2
| * | Flake8Luke Barnard2017-10-312-5/+9
| * | Modify group room association API to allow modification of is_publicLuke Barnard2017-10-316-19/+25
* | | DB schema interface for password auth providersRichard van der Hoff2017-10-312-0/+77
|/ /
* | Merge pull request #2609 from matrix-org/rav/refactor_loginDavid Baker2017-10-312-57/+78
|\ \
| * | Refactor some logic from LoginRestServlet into AuthHandlerRichard van der Hoff2017-10-312-57/+78
* | | Clean up backwards-compat hacks for ldapRichard van der Hoff2017-10-311-20/+19
|/ /
* | Fix wording on group creation errorLuke Barnard2017-10-301-1/+1
* | fix typoMatthew Hodgson2017-10-291-1/+1
* | Fix typo when checking if user is invited to groupErik Johnston2017-10-271-1/+4
* | Fix bad mergeErik Johnston2017-10-271-1/+3
* | Merge branch 'erikj/attestation_jitter' of github.com:matrix-org/synapse into...Erik Johnston2017-10-271-1/+11
|\ \
| * | Add jitter to validity period of attestationsErik Johnston2017-10-271-1/+12
* | | Merge branch 'erikj/attestation_local_fix' of github.com:matrix-org/synapse i...Erik Johnston2017-10-273-9/+36
|\ \ \
| * | | Import loggerErik Johnston2017-10-271-0/+5
| * | | FixupErik Johnston2017-10-272-5/+5
| * | | Remove incorrect attestationsErik Johnston2017-10-272-0/+19
| * | | Log if we try to do attestations for our own user and groupErik Johnston2017-10-271-2/+8
| * | | Don't generate group attestations for local usersErik Johnston2017-10-271-2/+3
| |/ /
* | | Merge pull request #2595 from matrix-org/erikj/attestation_commnetErik Johnston2017-10-271-0/+22
|\ \ \
| * | | Add comment about attestationsErik Johnston2017-10-271-0/+22
* | | | Merge pull request #2591 from matrix-org/rav/device_delete_authRichard van der Hoff2017-10-271-5/+8
|\ \ \ \
| * | | | Device deletion: check UI auth matches access tokenRichard van der Hoff2017-10-271-5/+8
* | | | | Merge pull request #2589 from matrix-org/rav/as_deactivate_accountRichard van der Hoff2017-10-272-17/+33
|\ \ \ \ \
| * | | | | Allow ASes to deactivate their own usersRichard van der Hoff2017-10-272-17/+33
| | |_|_|/ | |/| | |
* | | | | Merge pull request #2582 from matrix-org/luke/group-is-publicLuke Barnard2017-10-275-98/+189
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Request is_public from databaseLuke Barnard2017-10-271-1/+3
| * | | | group is dictLuke Barnard2017-10-271-1/+1
| * | | | Create groups with is_public = TrueLuke Barnard2017-10-271-0/+1
| * | | | Fix create_group to pass requester_user_idLuke Barnard2017-10-271-1/+1
| * | | | Correct logic for checking private group membershipLuke Barnard2017-10-271-1/+1
| * | | | Make it workLuke Barnard2017-10-261-1/+1
| * | | | Recreate groups table instead of adding columnLuke Barnard2017-10-261-2/+16
| * | | | Awful hack to get default trueLuke Barnard2017-10-261-1/+2
| * | | | Bump schema version to 46Luke Barnard2017-10-261-1/+1
| * | | | delintLuke Barnard2017-10-262-15/+67
| * | | | Add is_public to groups table to allow for private groupsLuke Barnard2017-10-263-95/+116
| |/ / /
* | | | Merge pull request #2586 from matrix-org/rav/frontend_proxy_auth_headerRichard van der Hoff2017-10-272-28/+87
|\ \ \ \
| * | | | Docstring for post_urlencoded_get_jsonRichard van der Hoff2017-10-271-0/+11
| * | | | Front-end proxy: pass through auth headerRichard van der Hoff2017-10-261-0/+7
| * | | | SimpleHTTPClient: add support for headersRichard van der Hoff2017-10-261-28/+69
* | | | | Merge pull request #2585 from matrix-org/rav/unstable_to_r0Richard van der Hoff2017-10-271-2/+1
|\ \ \ \ \
| * | | | | Support /keys/upload on /r0 as well as /unstableRichard van der Hoff2017-10-261-2/+1
| |/ / / /
* | | | | Merge pull request #2584 from matrix-org/rav/fix_httpclient_logcontextsRichard van der Hoff2017-10-271-10/+9
|\ \ \ \ \
| * | | | | Fix logcontext leaks in httpclientRichard van der Hoff2017-10-261-10/+9
| |/ / / /
* | | | | Merge pull request #2574 from matrix-org/erikj/room_list_fixesErik Johnston2017-10-274-11/+22
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Update room_list.pyErik Johnston2017-10-261-1/+1
| * | | | Do logcontexts outside ResponseCacheErik Johnston2017-10-255-13/+21
| * | | | Add logging and fix log contexts for publicRoomsErik Johnston2017-10-252-1/+4
* | | | | Merge pull request #2581 from matrix-org/rav/fix_init_with_no_logfileRichard van der Hoff2017-10-261-1/+5
|\ \ \ \ \ | |_|/ / / |/| | | |
| * | | | Fix error when running synapse with no logfileRichard van der Hoff2017-10-261-1/+5
| | |/ / | |/| |
* | | | add release endpoints for /thirdpartyKrombel2017-10-261-7/+4
* | | | register some /unstable endpoints in /r0 as wellKrombel2017-10-264-20/+9
|/ / /
* | | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2017-10-251-1/+1
|\ \ \ | | |/ | |/|
| * | Bump version and changelog github/release-v0.24.1 release-v0.24.1Erik Johnston2017-10-241-1/+1
| |/
* / tip for generating tls_fingerprintsMatthew Hodgson2017-10-241-0/+6
|/
* Merge branch 'develop' of github.com:matrix-org/synapse into erikj/group_fed_...Erik Johnston2017-10-2454-129/+143
|\
| * fix vars named `l`Richard van der Hoff2017-10-232-7/+4
| * replace 'except:' with 'except Exception:'Richard van der Hoff2017-10-2352-88/+88
| * Merge pull request #2566 from matrix-org/rav/media_logcontext_leakRichard van der Hoff2017-10-231-1/+4
| |\
| | * Fix a logcontext leak in the media repoRichard van der Hoff2017-10-231-1/+4
| * | Merge pull request #2561 from matrix-org/rav/id_checkingRichard van der Hoff2017-10-233-33/+47
| |\ \ | | |/ | |/|
| | * Validate group ids when parsingRichard van der Hoff2017-10-212-16/+22
| | * Allow = in mxids and groupidsRichard van der Hoff2017-10-203-5/+4
| | * Disallow capital letters in useridsRichard van der Hoff2017-10-203-16/+25
* | | Correctly wire in update group profile over federationErik Johnston2017-10-232-11/+31
|/ /
* | Merge branch 'master' of github.com:matrix-org/synapse into developErik Johnston2017-10-231-1/+1
|\ \
| * | Bump version and changelog github/release-v0.24.0 release-v0.24.0Erik Johnston2017-10-231-1/+1
| * | Correctly bump version v0.24.0-rc1Erik Johnston2017-10-191-1/+1
| * | Bump version and changelogErik Johnston2017-10-191-1/+1
| |/
* / Remove pointless create() methodRichard van der Hoff2017-10-206-12/+8
|/
* Flake8Erik Johnston2017-10-192-6/+4
* Add missing file...Erik Johnston2017-10-191-0/+36
* Add config to enable group creationErik Johnston2017-10-192-3/+12
* Enforce sensible group IDsErik Johnston2017-10-191-1/+19
* Fix typoErik Johnston2017-10-191-1/+1
* Fix typo in group attestation handlingErik Johnston2017-10-192-2/+3
* Fix typo in thumbnail generationErik Johnston2017-10-191-2/+5
* Fix typoErik Johnston2017-10-191-1/+1
* Merge pull request #2553 from matrix-org/rav/fix_500_on_event_sendRichard van der Hoff2017-10-181-1/+0
|\
| * Fix 500 error when we get an error handling a PDURichard van der Hoff2017-10-171-1/+0
* | Merge pull request #2552 from matrix-org/rav/fix_500_on_dodgy_powerlevelsRichard van der Hoff2017-10-171-3/+3
|\ \ | |/ |/|
| * Fix 500 error when fields missing from power_levels eventRichard van der Hoff2017-10-171-3/+3
* | Doc some more dynamic Homeserver methodsRichard van der Hoff2017-10-171-0/+8
* | Merge pull request #2550 from krombel/fix_thumbnail_2548Erik Johnston2017-10-171-2/+2
|\ \ | |/ |/|
| * fix thumbnailing (#2548)Krombel2017-10-171-2/+2
* | Improve error handling for missing files (#2551)Richard van der Hoff2017-10-173-17/+33
* | Merge pull request #2549 from matrix-org/rav/event_persist_logcontextsRichard van der Hoff2017-10-172-7/+22
|\ \
| * | Fix logcontext handling for persist_eventsRichard van der Hoff2017-10-172-7/+22
| |/
* | Merge pull request #2545 from matrix-org/dbkr/auto_join_roomsDavid Baker2017-10-172-0/+41
|\ \ | |/ |/|
| * pep8David Baker2017-10-171-1/+2
| * Add config option to auto-join new users to roomsDavid Baker2017-10-162-0/+40
* | DelintLuke Barnard2017-10-163-1/+3
* | Make it work. Warn about lack of user profileLuke Barnard2017-10-161-2/+2
* | _create_rererouter for get_invited_users_in_groupLuke Barnard2017-10-161-17/+2
* | Merge branch 'develop' into luke/groups-invited-usersLuke Barnard2017-10-161-1/+1
|\ \
| * \ Merge pull request #2543 from matrix-org/luke/fix-on-group-invite-no-profileLuke Barnard2017-10-161-2/+5
| |\ \ | | |/ | |/|
| * | Omit the *s for @room notificationsDavid Baker2017-10-161-1/+1
* | | Implement GET /groups/$groupId/invited_usersLuke Barnard2017-10-166-1/+115
| |/ |/|
* | Log a warning when no profile for invited memberLuke Barnard2017-10-161-2/+5
|/
* Add try/finally block to close t_byte_sourceErik Johnston2017-10-131-24/+41
* Remove old commentErik Johnston2017-10-131-1/+0
* Don't reuse source but instead copy from primary media store to backupErik Johnston2017-10-132-22/+9
* PEP8Erik Johnston2017-10-131-1/+1
* Move type into keyErik Johnston2017-10-131-3/+3
* CommentErik Johnston2017-10-131-1/+1
* Remove spurious additionErik Johnston2017-10-131-4/+0
* Don't needlessly rename variableErik Johnston2017-10-131-13/+13
* Add paths back in...Erik Johnston2017-10-131-4/+4
* Remove unnecessary diffErik Johnston2017-10-131-3/+1
* Make things be absolute paths againErik Johnston2017-10-131-7/+7
* s/write_to_file/write_to_file_and_backup/Erik Johnston2017-10-131-5/+5
* Fix upErik Johnston2017-10-132-43/+32
* Fix up thumbnailing functionErik Johnston2017-10-133-75/+73
* Fix typoErik Johnston2017-10-131-1/+1
* Fix up commentsErik Johnston2017-10-131-2/+26
* Move makedirs to threadErik Johnston2017-10-131-2/+1
* Use make_deferred_yieldableErik Johnston2017-10-131-7/+7
* Fix commentsErik Johnston2017-10-122-1/+4
* Don't close prematurely..Erik Johnston2017-10-121-2/+5
* getvalue closes bufferErik Johnston2017-10-121-11/+10
* Get len before closeErik Johnston2017-10-121-6/+11
* Don't close file prematurelyErik Johnston2017-10-122-8/+18
* Copy everything to backupErik Johnston2017-10-125-77/+151
* TypoErik Johnston2017-10-121-1/+1
* Remove dead codeErik Johnston2017-10-121-3/+0
* Fix typosErik Johnston2017-10-121-20/+26
* Fix typoErik Johnston2017-10-121-1/+1
* Basic implementation of backup media storeErik Johnston2017-10-124-126/+131
* log when we get an exception handling replication updateshera2017-10-121-1/+5
* Merge pull request #2531 from matrix-org/dbkr/spamcheck_error_messagesDavid Baker2017-10-121-2/+6
|\
| * fix isinstanceDavid Baker2017-10-111-1/+1
| * Allow error strings from spam checkerDavid Baker2017-10-111-2/+6
* | Merge pull request #2532 from matrix-org/rav/fix_linearizerRichard van der Hoff2017-10-111-2/+22
|\ \
| * | Fix stackoverflow and logcontexts from linearizerRichard van der Hoff2017-10-111-2/+22
* | | Merge pull request #2529 from matrix-org/rav/fix_transaction_failure_handlingRichard van der Hoff2017-10-111-2/+3
|\ \ \
| * | | log pdu_failures from incoming transactionsRichard van der Hoff2017-10-111-2/+3
| |/ /
* | | Merge pull request #2515 from matrix-org/rav/fix_receipt_logcontextRichard van der Hoff2017-10-111-0/+51
|\ \ \
| * | | logformatter: fix AttributeErrorRichard van der Hoff2017-10-111-3/+11
| * | | Fancy logformatter to format exceptions betterRichard van der Hoff2017-10-091-0/+43
* | | | Fix fetching remote summariesErik Johnston2017-10-111-2/+2
* | | | peeeeeeeeep8888888888888888888888888888Erik Johnston2017-10-111-1/+1
* | | | Fix group stream replicationErik Johnston2017-10-111-7/+7
* | | | Merge pull request #2530 from matrix-org/rav/fix_receipt_logcontextRichard van der Hoff2017-10-111-0/+4
|\ \ \ \
| * | | | fix a logcontext leak in read receipt handlingRichard van der Hoff2017-10-111-0/+4
| | |/ / | |/| |
* | | | Fix typo in invite to groupErik Johnston2017-10-111-1/+1
* | | | Fix typoErik Johnston2017-10-111-1/+1
* | | | Fix attestations to check correct server nameErik Johnston2017-10-111-10/+20
| |_|/ |/| |
* | | Fix schema delta versionsErik Johnston2017-10-113-1/+1
* | | Merge pull request #2466 from matrix-org/erikj/groups_mergedErik Johnston2017-10-1131-57/+4786
|\ \ \
| * | | Validate room idsErik Johnston2017-10-111-1/+5
| * | | Don't corrupt cacheErik Johnston2017-10-051-0/+1
| * | | Merge branch 'develop' into erikj/groups_mergedDavid Baker2017-10-0226-273/+930
| |\ \ \
| * | | | Add remove room APIErik Johnston2017-09-266-1/+72
| * | | | Add unique index to group_rooms tableErik Johnston2017-09-262-3/+1
| * | | | Add is_publicised to group summaryErik Johnston2017-09-261-25/+31
| * | | | Remove user from group summary when the leave the groupErik Johnston2017-09-211-0/+8
| * | | | Revert: Keep room_id's in group summaryErik Johnston2017-09-211-0/+1
| * | | | Keep room_id's in group summaryErik Johnston2017-09-211-1/+0
| * | | | Correctly return next tokenErik Johnston2017-09-201-1/+2
| * | | | Fix initial syncErik Johnston2017-09-201-1/+9
| * | | | Ensure that creator of group sees group down /syncErik Johnston2017-09-192-4/+31
| * | | | Merge branch 'develop' of github.com:matrix-org/synapse into erikj/groups_mergedErik Johnston2017-09-1924-546/+580
| |\ \ \ \
| * | | | | Add user profiles to summary from group serverErik Johnston2017-08-253-2/+30
| * | | | | Fix typos and reinheritErik Johnston2017-08-251-12/+6
| * | | | | Split out profile handler to fix testsErik Johnston2017-08-258-22/+30
| * | | | | Add remote profile cacheErik Johnston2017-08-255-5/+237
| * | | | | Add _simple_updateErik Johnston2017-08-251-19/+32
| * | | | | Merge pull request #2410 from matrix-org/erikj/groups_publiciseErik Johnston2017-08-216-0/+197
| |\ \ \ \ \
| | * | | | | Use BOOLEAN rather than TEXT typeErik Johnston2017-08-211-1/+1
| | * | | | | FixupErik Johnston2017-08-112-9/+14
| | * | | | | Add bulk group publicised lookup APIErik Johnston2017-08-095-0/+142
| | * | | | | Allow update group publicityErik Johnston2017-08-082-0/+43
| | * | | | | Store whether the user wants to publicise their membership of a groupErik Johnston2017-08-083-0/+7
| * | | | | | Groups: Fix mising json.load in initial syncErik Johnston2017-08-211-1/+7
| |/ / / / /
| * | | | | Remove stale TODO commentsErik Johnston2017-08-041-10/+0
| * | | | | Update commentErik Johnston2017-07-241-2/+2
| * | | | | Use join rather than joined, etc.Erik Johnston2017-07-241-2/+2
| * | | | | Fix all the typosErik Johnston2017-07-241-8/+7
| * | | | | Include users membership in group in summary APIErik Johnston2017-07-242-0/+60
| * | | | | Check users/rooms are in group before adding to summaryErik Johnston2017-07-241-0/+25
| * | | | | Correctly add joins to correct segmentErik Johnston2017-07-241-1/+1
| * | | | | Merge pull request #2378 from matrix-org/erikj/group_sync_supportErik Johnston2017-07-2111-10/+281
| |\ \ \ \ \
| | * | | | | Add notifierErik Johnston2017-07-201-0/+1
| | * | | | | Fix replication. And notifyErik Johnston2017-07-205-4/+119
| | * | | | | Remember to cast to boolErik Johnston2017-07-201-1/+1
| | * | | | | Fix bug in generating current tokenErik Johnston2017-07-201-0/+2
| | * | | | | Add groups to sync streamErik Johnston2017-07-207-6/+159
| * | | | | | Merge pull request #2377 from matrix-org/erikj/group_profile_updateErik Johnston2017-07-205-0/+55
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| | * | | | | Remove spurious content paramErik Johnston2017-07-201-1/+1
| | * | | | | Check values are stringsErik Johnston2017-07-201-1/+4
| | * | | | | Fix a storage descErik Johnston2017-07-201-1/+1
| | * | | | | Add update group profile APIErik Johnston2017-07-205-0/+52
| * | | | | | Fix typoErik Johnston2017-07-201-1/+1
| |/ / / / /
| * | | | | CommentsErik Johnston2017-07-184-13/+24
| * | | | | CommentsErik Johnston2017-07-182-103/+88
| * | | | | Fix permissionsErik Johnston2017-07-181-2/+6
| * | | | | Add DELETEErik Johnston2017-07-181-0/+46
| * | | | | Add 'args' param to post_jsonErik Johnston2017-07-181-9/+15
| * | | | | Fix typosErik Johnston2017-07-183-12/+22
| * | | | | Correctly parse query paramsErik Johnston2017-07-181-19/+19
| * | | | | Update federation client pokesErik Johnston2017-07-181-13/+22
| * | | | | Add client apisErik Johnston2017-07-182-10/+188
| * | | | | CommentsErik Johnston2017-07-182-15/+22
| * | | | | Use transport client directlyErik Johnston2017-07-181-18/+25
| * | | | | CommentErik Johnston2017-07-181-0/+14
| * | | | | Remove sync stuffErik Johnston2017-07-182-29/+1
| * | | | | Add GroupID typeErik Johnston2017-07-181-0/+5
| * | | | | Remove unused tablesErik Johnston2017-07-181-7/+0
| * | | | | Remove sync stuffErik Johnston2017-07-182-70/+0
| * | | | | Add local group server supportErik Johnston2017-07-1710-2/+1248
| * | | | | Ensure category and role ids are non-nullErik Johnston2017-07-141-0/+24