{"action":"created","issue":{"url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/4441","labels_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/4441/labels{/name}","comments_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/4441/comments","events_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/4441/events","html_url":"https://github.com/CenterForOpenScience/osf.io/pull/4441","id":111066061,"number":4441,"title":"[Feature][Ready for Demo] Add button to reset client application secret","user":{"login":"mfraezz","id":5659262,"avatar_url":"https://avatars.githubusercontent.com/u/5659262?v=3","gravatar_id":"","url":"https://api.github.com/users/mfraezz","html_url":"https://github.com/mfraezz","followers_url":"https://api.github.com/users/mfraezz/followers","following_url":"https://api.github.com/users/mfraezz/following{/other_user}","gists_url":"https://api.github.com/users/mfraezz/gists{/gist_id}","starred_url":"https://api.github.com/users/mfraezz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mfraezz/subscriptions","organizations_url":"https://api.github.com/users/mfraezz/orgs","repos_url":"https://api.github.com/users/mfraezz/repos","events_url":"https://api.github.com/users/mfraezz/events{/privacy}","received_events_url":"https://api.github.com/users/mfraezz/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-10-12T22:17:52Z","updated_at":"2015-11-02T17:45:09Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/CenterForOpenScience/osf.io/pulls/4441","html_url":"https://github.com/CenterForOpenScience/osf.io/pull/4441","diff_url":"https://github.com/CenterForOpenScience/osf.io/pull/4441.diff","patch_url":"https://github.com/CenterForOpenScience/osf.io/pull/4441.patch"},"body":"Purpose\r\n======\r\nAllow users with developer applications to reset their client secrets in the event of a security compromise (e.g. committing it to github, unauthorized access discovered, etc.).\r\n\r\nChanges\r\n=======\r\nEdits to:\r\n- serializers: `*ApplicationBaseSerializer` created to generalize some repeated code\r\n- models: function added to reset secret\r\n- urls: endpoint added to reset secret\r\n- views: mixin added for generalization, view added for resetting secret\r\n- language: language added to inform user about resetting secret\r\n- frontend: UI updated to allow user to reset secret\r\n\r\nSide Effects\r\n=========\r\nNone\r\n\r\nTesting\r\n----------\r\n1. Make dev app through UI\r\n- Configure https://github.com/abought/osf_oauth2_demo with credentials, ensure basic functionality\r\n    - Note: above demo project currently not functional due to recent changes to cas / scopes\r\n- Reset secret with UI, don't update credentials yet\r\n- Ensure lack of functionality\r\n- Update secret, reauthorize\r\n- Ensure basic functionality\r\n\r\n[#OSF-4351]"},"comment":{"url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/comments/153097019","html_url":"https://github.com/CenterForOpenScience/osf.io/pull/4441#issuecomment-153097019","issue_url":"https://api.github.com/repos/CenterForOpenScience/osf.io/issues/4441","id":153097019,"user":{"login":"samanehsan","id":6414394,"avatar_url":"https://avatars.githubusercontent.com/u/6414394?v=3","gravatar_id":"","url":"https://api.github.com/users/samanehsan","html_url":"https://github.com/samanehsan","followers_url":"https://api.github.com/users/samanehsan/followers","following_url":"https://api.github.com/users/samanehsan/following{/other_user}","gists_url":"https://api.github.com/users/samanehsan/gists{/gist_id}","starred_url":"https://api.github.com/users/samanehsan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/samanehsan/subscriptions","organizations_url":"https://api.github.com/users/samanehsan/orgs","repos_url":"https://api.github.com/users/samanehsan/repos","events_url":"https://api.github.com/users/samanehsan/events{/privacy}","received_events_url":"https://api.github.com/users/samanehsan/received_events","type":"User","site_admin":false},"created_at":"2015-11-02T17:45:09Z","updated_at":"2015-11-02T17:45:09Z","body":"Pass complete @mfraezz :maple_leaf: I was unable to do functional testing because I have some CAS errors to resolve, but I do not think that should hold up this PR. "}}