{"action":"created","comment":{"url":"https://api.github.com/repos/ricochet-im/ricochet/pulls/comments/28501900","id":28501900,"diff_hunk":"@@ -219,9 +219,24 @@ void ContactUser::onConnected()\n     if (!m_settings->read(\"sentUpgradeNotification\").isNull())\n         m_settings->write(\"sentUpgradeNotification\", QJsonValue());\n \n+    /* The 'rejected' mark comes from failed authentication to someone who we thought was a known\n+     * contact. Normally, it would mean that you were removed from that person's contacts. It's\n+     * possible for this to be undone; for example, if that person sends you a new contact request,\n+     * it will be automatically accepted. If this happens, unset the 'rejected' flag for correct UI.\n+     */\n+    if (m_settings->read(\"rejected\").toBool()) {\n+        qDebug() << \"Contact had marked us as rejected, but now they've connected again. Re-enabling.\";\n+        m_settings->write(\"rejected\", QJsonValue());","path":"src/core/ContactUser.cpp","position":24,"original_position":24,"commit_id":"4e694feddbd84a0341c2201aa6b8edad680abb11","original_commit_id":"4e694feddbd84a0341c2201aa6b8edad680abb11","user":{"login":"rburchell","id":125863,"avatar_url":"https://avatars.githubusercontent.com/u/125863?v=3","gravatar_id":"","url":"https://api.github.com/users/rburchell","html_url":"https://github.com/rburchell","followers_url":"https://api.github.com/users/rburchell/followers","following_url":"https://api.github.com/users/rburchell/following{/other_user}","gists_url":"https://api.github.com/users/rburchell/gists{/gist_id}","starred_url":"https://api.github.com/users/rburchell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rburchell/subscriptions","organizations_url":"https://api.github.com/users/rburchell/orgs","repos_url":"https://api.github.com/users/rburchell/repos","events_url":"https://api.github.com/users/rburchell/events{/privacy}","received_events_url":"https://api.github.com/users/rburchell/received_events","type":"User","site_admin":false},"body":"Idle thought: An \"unset\" method might be clearer than writing null values?","created_at":"2015-04-16T11:29:40Z","updated_at":"2015-04-16T11:29:40Z","html_url":"https://github.com/ricochet-im/ricochet/pull/162#discussion_r28501900","pull_request_url":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162","_links":{"self":{"href":"https://api.github.com/repos/ricochet-im/ricochet/pulls/comments/28501900"},"html":{"href":"https://github.com/ricochet-im/ricochet/pull/162#discussion_r28501900"},"pull_request":{"href":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162"}}},"pull_request":{"url":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162","id":33127533,"html_url":"https://github.com/ricochet-im/ricochet/pull/162","diff_url":"https://github.com/ricochet-im/ricochet/pull/162.diff","patch_url":"https://github.com/ricochet-im/ricochet/pull/162.patch","issue_url":"https://api.github.com/repos/ricochet-im/ricochet/issues/162","number":162,"state":"open","locked":false,"title":"Unmark 'rejected' contacts if they successfully connect","user":{"login":"special","id":80188,"avatar_url":"https://avatars.githubusercontent.com/u/80188?v=3","gravatar_id":"","url":"https://api.github.com/users/special","html_url":"https://github.com/special","followers_url":"https://api.github.com/users/special/followers","following_url":"https://api.github.com/users/special/following{/other_user}","gists_url":"https://api.github.com/users/special/gists{/gist_id}","starred_url":"https://api.github.com/users/special/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/special/subscriptions","organizations_url":"https://api.github.com/users/special/orgs","repos_url":"https://api.github.com/users/special/repos","events_url":"https://api.github.com/users/special/events{/privacy}","received_events_url":"https://api.github.com/users/special/received_events","type":"User","site_admin":false},"body":"The 'rejected' mark comes from contacts that reject our authentication,\r\nnormally because they removed us as a contact. If that person then sends\r\na new contact request, it will be automatically accepted, and allowed to\r\nconnect. In this case, the rejected mark should be removed.\r\n\r\nAlso added a BUG for the case where a connection is established with a\r\ncontact, and the contact's status doesn't match.","created_at":"2015-04-12T22:13:09Z","updated_at":"2015-04-16T11:29:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"11cdf49f8efceb056693a2764959622344b65037","assignee":null,"milestone":{"url":"https://api.github.com/repos/ricochet-im/ricochet/milestones/7","html_url":"https://github.com/ricochet-im/ricochet/milestones/1.1.1","labels_url":"https://api.github.com/repos/ricochet-im/ricochet/milestones/7/labels","id":1062764,"number":7,"title":"1.1.1","description":"","creator":{"login":"special","id":80188,"avatar_url":"https://avatars.githubusercontent.com/u/80188?v=3","gravatar_id":"","url":"https://api.github.com/users/special","html_url":"https://github.com/special","followers_url":"https://api.github.com/users/special/followers","following_url":"https://api.github.com/users/special/following{/other_user}","gists_url":"https://api.github.com/users/special/gists{/gist_id}","starred_url":"https://api.github.com/users/special/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/special/subscriptions","organizations_url":"https://api.github.com/users/special/orgs","repos_url":"https://api.github.com/users/special/repos","events_url":"https://api.github.com/users/special/events{/privacy}","received_events_url":"https://api.github.com/users/special/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":0,"state":"open","created_at":"2015-04-11T00:42:28Z","updated_at":"2015-04-13T05:06:17Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162/commits","review_comments_url":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162/comments","review_comment_url":"https://api.github.com/repos/ricochet-im/ricochet/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ricochet-im/ricochet/issues/162/comments","statuses_url":"https://api.github.com/repos/ricochet-im/ricochet/statuses/4e694feddbd84a0341c2201aa6b8edad680abb11","head":{"label":"special:unmark-rejected","ref":"unmark-rejected","sha":"4e694feddbd84a0341c2201aa6b8edad680abb11","user":{"login":"special","id":80188,"avatar_url":"https://avatars.githubusercontent.com/u/80188?v=3","gravatar_id":"","url":"https://api.github.com/users/special","html_url":"https://github.com/special","followers_url":"https://api.github.com/users/special/followers","following_url":"https://api.github.com/users/special/following{/other_user}","gists_url":"https://api.github.com/users/special/gists{/gist_id}","starred_url":"https://api.github.com/users/special/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/special/subscriptions","organizations_url":"https://api.github.com/users/special/orgs","repos_url":"https://api.github.com/users/special/repos","events_url":"https://api.github.com/users/special/events{/privacy}","received_events_url":"https://api.github.com/users/special/received_events","type":"User","site_admin":false},"repo":{"id":21765064,"name":"ricochet","full_name":"special/ricochet","owner":{"login":"special","id":80188,"avatar_url":"https://avatars.githubusercontent.com/u/80188?v=3","gravatar_id":"","url":"https://api.github.com/users/special","html_url":"https://github.com/special","followers_url":"https://api.github.com/users/special/followers","following_url":"https://api.github.com/users/special/following{/other_user}","gists_url":"https://api.github.com/users/special/gists{/gist_id}","starred_url":"https://api.github.com/users/special/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/special/subscriptions","organizations_url":"https://api.github.com/users/special/orgs","repos_url":"https://api.github.com/users/special/repos","events_url":"https://api.github.com/users/special/events{/privacy}","received_events_url":"https://api.github.com/users/special/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/special/ricochet","description":"Anonymous peer-to-peer instant messaging","fork":true,"url":"https://api.github.com/repos/special/ricochet","forks_url":"https://api.github.com/repos/special/ricochet/forks","keys_url":"https://api.github.com/repos/special/ricochet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/special/ricochet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/special/ricochet/teams","hooks_url":"https://api.github.com/repos/special/ricochet/hooks","issue_events_url":"https://api.github.com/repos/special/ricochet/issues/events{/number}","events_url":"https://api.github.com/repos/special/ricochet/events","assignees_url":"https://api.github.com/repos/special/ricochet/assignees{/user}","branches_url":"https://api.github.com/repos/special/ricochet/branches{/branch}","tags_url":"https://api.github.com/repos/special/ricochet/tags","blobs_url":"https://api.github.com/repos/special/ricochet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/special/ricochet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/special/ricochet/git/refs{/sha}","trees_url":"https://api.github.com/repos/special/ricochet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/special/ricochet/statuses/{sha}","languages_url":"https://api.github.com/repos/special/ricochet/languages","stargazers_url":"https://api.github.com/repos/special/ricochet/stargazers","contributors_url":"https://api.github.com/repos/special/ricochet/contributors","subscribers_url":"https://api.github.com/repos/special/ricochet/subscribers","subscription_url":"https://api.github.com/repos/special/ricochet/subscription","commits_url":"https://api.github.com/repos/special/ricochet/commits{/sha}","git_commits_url":"https://api.github.com/repos/special/ricochet/git/commits{/sha}","comments_url":"https://api.github.com/repos/special/ricochet/comments{/number}","issue_comment_url":"https://api.github.com/repos/special/ricochet/issues/comments{/number}","contents_url":"https://api.github.com/repos/special/ricochet/contents/{+path}","compare_url":"https://api.github.com/repos/special/ricochet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/special/ricochet/merges","archive_url":"https://api.github.com/repos/special/ricochet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/special/ricochet/downloads","issues_url":"https://api.github.com/repos/special/ricochet/issues{/number}","pulls_url":"https://api.github.com/repos/special/ricochet/pulls{/number}","milestones_url":"https://api.github.com/repos/special/ricochet/milestones{/number}","notifications_url":"https://api.github.com/repos/special/ricochet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/special/ricochet/labels{/name}","releases_url":"https://api.github.com/repos/special/ricochet/releases{/id}","created_at":"2014-07-12T10:50:37Z","updated_at":"2015-03-18T21:53:53Z","pushed_at":"2015-04-15T22:06:39Z","git_url":"git://github.com/special/ricochet.git","ssh_url":"git@github.com:special/ricochet.git","clone_url":"https://github.com/special/ricochet.git","svn_url":"https://github.com/special/ricochet","homepage":"https://ricochet.im/","size":2842,"stargazers_count":2,"watchers_count":2,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"ricochet-im:master","ref":"master","sha":"2b296cb60af4ed40ca2e73b41582b3125d8844bc","user":{"login":"ricochet-im","id":7889762,"avatar_url":"https://avatars.githubusercontent.com/u/7889762?v=3","gravatar_id":"","url":"https://api.github.com/users/ricochet-im","html_url":"https://github.com/ricochet-im","followers_url":"https://api.github.com/users/ricochet-im/followers","following_url":"https://api.github.com/users/ricochet-im/following{/other_user}","gists_url":"https://api.github.com/users/ricochet-im/gists{/gist_id}","starred_url":"https://api.github.com/users/ricochet-im/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricochet-im/subscriptions","organizations_url":"https://api.github.com/users/ricochet-im/orgs","repos_url":"https://api.github.com/users/ricochet-im/repos","events_url":"https://api.github.com/users/ricochet-im/events{/privacy}","received_events_url":"https://api.github.com/users/ricochet-im/received_events","type":"Organization","site_admin":false},"repo":{"id":762837,"name":"ricochet","full_name":"ricochet-im/ricochet","owner":{"login":"ricochet-im","id":7889762,"avatar_url":"https://avatars.githubusercontent.com/u/7889762?v=3","gravatar_id":"","url":"https://api.github.com/users/ricochet-im","html_url":"https://github.com/ricochet-im","followers_url":"https://api.github.com/users/ricochet-im/followers","following_url":"https://api.github.com/users/ricochet-im/following{/other_user}","gists_url":"https://api.github.com/users/ricochet-im/gists{/gist_id}","starred_url":"https://api.github.com/users/ricochet-im/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricochet-im/subscriptions","organizations_url":"https://api.github.com/users/ricochet-im/orgs","repos_url":"https://api.github.com/users/ricochet-im/repos","events_url":"https://api.github.com/users/ricochet-im/events{/privacy}","received_events_url":"https://api.github.com/users/ricochet-im/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ricochet-im/ricochet","description":"Anonymous peer-to-peer instant messaging","fork":false,"url":"https://api.github.com/repos/ricochet-im/ricochet","forks_url":"https://api.github.com/repos/ricochet-im/ricochet/forks","keys_url":"https://api.github.com/repos/ricochet-im/ricochet/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ricochet-im/ricochet/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ricochet-im/ricochet/teams","hooks_url":"https://api.github.com/repos/ricochet-im/ricochet/hooks","issue_events_url":"https://api.github.com/repos/ricochet-im/ricochet/issues/events{/number}","events_url":"https://api.github.com/repos/ricochet-im/ricochet/events","assignees_url":"https://api.github.com/repos/ricochet-im/ricochet/assignees{/user}","branches_url":"https://api.github.com/repos/ricochet-im/ricochet/branches{/branch}","tags_url":"https://api.github.com/repos/ricochet-im/ricochet/tags","blobs_url":"https://api.github.com/repos/ricochet-im/ricochet/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ricochet-im/ricochet/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ricochet-im/ricochet/git/refs{/sha}","trees_url":"https://api.github.com/repos/ricochet-im/ricochet/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ricochet-im/ricochet/statuses/{sha}","languages_url":"https://api.github.com/repos/ricochet-im/ricochet/languages","stargazers_url":"https://api.github.com/repos/ricochet-im/ricochet/stargazers","contributors_url":"https://api.github.com/repos/ricochet-im/ricochet/contributors","subscribers_url":"https://api.github.com/repos/ricochet-im/ricochet/subscribers","subscription_url":"https://api.github.com/repos/ricochet-im/ricochet/subscription","commits_url":"https://api.github.com/repos/ricochet-im/ricochet/commits{/sha}","git_commits_url":"https://api.github.com/repos/ricochet-im/ricochet/git/commits{/sha}","comments_url":"https://api.github.com/repos/ricochet-im/ricochet/comments{/number}","issue_comment_url":"https://api.github.com/repos/ricochet-im/ricochet/issues/comments{/number}","contents_url":"https://api.github.com/repos/ricochet-im/ricochet/contents/{+path}","compare_url":"https://api.github.com/repos/ricochet-im/ricochet/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ricochet-im/ricochet/merges","archive_url":"https://api.github.com/repos/ricochet-im/ricochet/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ricochet-im/ricochet/downloads","issues_url":"https://api.github.com/repos/ricochet-im/ricochet/issues{/number}","pulls_url":"https://api.github.com/repos/ricochet-im/ricochet/pulls{/number}","milestones_url":"https://api.github.com/repos/ricochet-im/ricochet/milestones{/number}","notifications_url":"https://api.github.com/repos/ricochet-im/ricochet/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ricochet-im/ricochet/labels{/name}","releases_url":"https://api.github.com/repos/ricochet-im/ricochet/releases{/id}","created_at":"2010-07-07T23:01:23Z","updated_at":"2015-04-15T23:39:14Z","pushed_at":"2015-04-15T21:45:12Z","git_url":"git://github.com/ricochet-im/ricochet.git","ssh_url":"git@github.com:ricochet-im/ricochet.git","clone_url":"https://github.com/ricochet-im/ricochet.git","svn_url":"https://github.com/ricochet-im/ricochet","homepage":"https://ricochet.im/","size":5296,"stargazers_count":746,"watchers_count":746,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":98,"mirror_url":null,"open_issues_count":62,"forks":98,"open_issues":62,"watchers":746,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162"},"html":{"href":"https://github.com/ricochet-im/ricochet/pull/162"},"issue":{"href":"https://api.github.com/repos/ricochet-im/ricochet/issues/162"},"comments":{"href":"https://api.github.com/repos/ricochet-im/ricochet/issues/162/comments"},"review_comments":{"href":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162/comments"},"review_comment":{"href":"https://api.github.com/repos/ricochet-im/ricochet/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ricochet-im/ricochet/pulls/162/commits"},"statuses":{"href":"https://api.github.com/repos/ricochet-im/ricochet/statuses/4e694feddbd84a0341c2201aa6b8edad680abb11"}}}}