{"action":"created","issue":{"url":"https://api.github.com/repos/codice/ddf/issues/3171","repository_url":"https://api.github.com/repos/codice/ddf","labels_url":"https://api.github.com/repos/codice/ddf/issues/3171/labels{/name}","comments_url":"https://api.github.com/repos/codice/ddf/issues/3171/comments","events_url":"https://api.github.com/repos/codice/ddf/issues/3171/events","html_url":"https://github.com/codice/ddf/pull/3171","id":315970500,"number":3171,"title":"DDF-3744 Prevent background tabs from logging active user out","user":{"login":"SmithJosh","id":3878142,"avatar_url":"https://avatars0.githubusercontent.com/u/3878142?v=4","gravatar_id":"","url":"https://api.github.com/users/SmithJosh","html_url":"https://github.com/SmithJosh","followers_url":"https://api.github.com/users/SmithJosh/followers","following_url":"https://api.github.com/users/SmithJosh/following{/other_user}","gists_url":"https://api.github.com/users/SmithJosh/gists{/gist_id}","starred_url":"https://api.github.com/users/SmithJosh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SmithJosh/subscriptions","organizations_url":"https://api.github.com/users/SmithJosh/orgs","repos_url":"https://api.github.com/users/SmithJosh/repos","events_url":"https://api.github.com/users/SmithJosh/events{/privacy}","received_events_url":"https://api.github.com/users/SmithJosh/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"stustison","id":4391679,"avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false},"assignees":[{"login":"stustison","id":4391679,"avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false},{"login":"andrewkfiedler","id":11984853,"avatar_url":"https://avatars3.githubusercontent.com/u/11984853?v=4","gravatar_id":"","url":"https://api.github.com/users/andrewkfiedler","html_url":"https://github.com/andrewkfiedler","followers_url":"https://api.github.com/users/andrewkfiedler/followers","following_url":"https://api.github.com/users/andrewkfiedler/following{/other_user}","gists_url":"https://api.github.com/users/andrewkfiedler/gists{/gist_id}","starred_url":"https://api.github.com/users/andrewkfiedler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andrewkfiedler/subscriptions","organizations_url":"https://api.github.com/users/andrewkfiedler/orgs","repos_url":"https://api.github.com/users/andrewkfiedler/repos","events_url":"https://api.github.com/users/andrewkfiedler/events{/privacy}","received_events_url":"https://api.github.com/users/andrewkfiedler/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-04-19T17:29:07Z","updated_at":"2018-04-19T20:56:14Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/3171","html_url":"https://github.com/codice/ddf/pull/3171","diff_url":"https://github.com/codice/ddf/pull/3171.diff","patch_url":"https://github.com/codice/ddf/pull/3171.patch"},"body":"#### What does this PR do?    \r\nThis PR sychronizes user activity across tabs using localStorage. When the user is active in any tab, all tabs are notified. Session timeout prompts appear in all open tabs at the same time, and closing the prompt in one tab closes the prompt in all tabs.\r\n\r\n#### Who is reviewing it? \r\n@brendan-hofmann @emanns95 @bakejeyner @blen-desta @brjeter \r\n \r\n#### Select relevant component teams: \r\n@codice/security \r\n@codice/ui \r\n\r\n#### Choose 2 committers to review/merge the PR. \r\n(please choose ONLY two committers from below, delete the rest)\r\n@andrewkfiedler \r\n@stustison  \r\n\r\n#### How should this be tested? (List steps with links to updated documentation)\r\nTest the following for Intrigue and the Admin UI separately. Then test with both open:\r\n* Verify continue working button closes prompt\r\n* Verify navigating to DDF in another tab closes any open prompts\r\n* Verify prompts are synchronized across open tabs\r\n    * All appear at the same time\r\n    * Timers are in-sync\r\n    * Closing one closes all\r\n\r\nNote: This PR has two commits. The first contains logging statements that may be helpful for testing. The second just removes these.\r\n\r\n#### Any background context you want to provide?\r\nPreviously, each tab tracked user activity independently, and initiated a logout after a defined period of inactivity. This caused the user to be logged out when inactive in any tab.\r\n\r\n#### What are the relevant tickets?\r\n[DDF-3744](https://codice.atlassian.net/browse/DDF-3744)\r\n#### Screenshots (if appropriate)\r\n#### Checklist:\r\n- [ ] Documentation Updated\r\n- [ ] Update / Add Unit Tests\r\n- [ ] Update / Add Integration Tests\r\n\r\n#### Notes on Review Process\r\nPlease see [Notes on Review Process](https://codice.atlassian.net/wiki/spaces/DDF/pages/71946981/Pull+Request+Guidelines) for further guidance on requirements for merging and abbreviated reviews. \r\n\r\n#### Review Comment Legend:\r\n- ✏️ (Pencil) This comment is a nitpick or style suggestion, no action required for approval. This comment should provide a suggestion either as an in line code snippet or a gist. \r\n- ❓ (Question Mark) This comment is to gain a clearer understanding of design or code choices, clarification is required but action may not be necessary for approval.\r\n- ❗ (Exclamation Mark) This comment is critical and requires clarification or action before approval.\r\n"},"comment":{"url":"https://api.github.com/repos/codice/ddf/issues/comments/382878130","html_url":"https://github.com/codice/ddf/pull/3171#issuecomment-382878130","issue_url":"https://api.github.com/repos/codice/ddf/issues/3171","id":382878130,"user":{"login":"SmithJosh","id":3878142,"avatar_url":"https://avatars0.githubusercontent.com/u/3878142?v=4","gravatar_id":"","url":"https://api.github.com/users/SmithJosh","html_url":"https://github.com/SmithJosh","followers_url":"https://api.github.com/users/SmithJosh/followers","following_url":"https://api.github.com/users/SmithJosh/following{/other_user}","gists_url":"https://api.github.com/users/SmithJosh/gists{/gist_id}","starred_url":"https://api.github.com/users/SmithJosh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SmithJosh/subscriptions","organizations_url":"https://api.github.com/users/SmithJosh/orgs","repos_url":"https://api.github.com/users/SmithJosh/repos","events_url":"https://api.github.com/users/SmithJosh/events{/privacy}","received_events_url":"https://api.github.com/users/SmithJosh/received_events","type":"User","site_admin":false},"created_at":"2018-04-19T20:56:13Z","updated_at":"2018-04-19T20:56:13Z","author_association":"CONTRIBUTOR","body":"I tried using sessionStorage, but it's per-tab. It doesn't work in this case. What kind of weirdness are you thinking of, though? Whenever a page is loaded, the localStorage gets set so that should avoid using stale values, at least"}}
{"actor":{"display_login":"SmithJosh"}}