{"action":"created","issue":{"url":"https://api.github.com/repos/cockpit-project/cockpit/issues/10322","repository_url":"https://api.github.com/repos/cockpit-project/cockpit","labels_url":"https://api.github.com/repos/cockpit-project/cockpit/issues/10322/labels{/name}","comments_url":"https://api.github.com/repos/cockpit-project/cockpit/issues/10322/comments","events_url":"https://api.github.com/repos/cockpit-project/cockpit/issues/10322/events","html_url":"https://github.com/cockpit-project/cockpit/issues/10322","id":370765048,"node_id":"MDU6SXNzdWUzNzA3NjUwNDg=","number":10322,"title":"Incorrect error displayed when password cannot be changed yet due to system policy","user":{"login":"deryni","id":302055,"node_id":"MDQ6VXNlcjMwMjA1NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/302055?v=4","gravatar_id":"","url":"https://api.github.com/users/deryni","html_url":"https://github.com/deryni","followers_url":"https://api.github.com/users/deryni/followers","following_url":"https://api.github.com/users/deryni/following{/other_user}","gists_url":"https://api.github.com/users/deryni/gists{/gist_id}","starred_url":"https://api.github.com/users/deryni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deryni/subscriptions","organizations_url":"https://api.github.com/users/deryni/orgs","repos_url":"https://api.github.com/users/deryni/repos","events_url":"https://api.github.com/users/deryni/events{/privacy}","received_events_url":"https://api.github.com/users/deryni/received_events","type":"User","site_admin":false},"labels":[{"id":163902973,"node_id":"MDU6TGFiZWwxNjM5MDI5NzM=","url":"https://api.github.com/repos/cockpit-project/cockpit/labels/needsdesign","name":"needsdesign","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":{"login":"garrett","id":10246,"node_id":"MDQ6VXNlcjEwMjQ2","avatar_url":"https://avatars2.githubusercontent.com/u/10246?v=4","gravatar_id":"","url":"https://api.github.com/users/garrett","html_url":"https://github.com/garrett","followers_url":"https://api.github.com/users/garrett/followers","following_url":"https://api.github.com/users/garrett/following{/other_user}","gists_url":"https://api.github.com/users/garrett/gists{/gist_id}","starred_url":"https://api.github.com/users/garrett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garrett/subscriptions","organizations_url":"https://api.github.com/users/garrett/orgs","repos_url":"https://api.github.com/users/garrett/repos","events_url":"https://api.github.com/users/garrett/events{/privacy}","received_events_url":"https://api.github.com/users/garrett/received_events","type":"User","site_admin":false},"assignees":[{"login":"garrett","id":10246,"node_id":"MDQ6VXNlcjEwMjQ2","avatar_url":"https://avatars2.githubusercontent.com/u/10246?v=4","gravatar_id":"","url":"https://api.github.com/users/garrett","html_url":"https://github.com/garrett","followers_url":"https://api.github.com/users/garrett/followers","following_url":"https://api.github.com/users/garrett/following{/other_user}","gists_url":"https://api.github.com/users/garrett/gists{/gist_id}","starred_url":"https://api.github.com/users/garrett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garrett/subscriptions","organizations_url":"https://api.github.com/users/garrett/orgs","repos_url":"https://api.github.com/users/garrett/repos","events_url":"https://api.github.com/users/garrett/events{/privacy}","received_events_url":"https://api.github.com/users/garrett/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2018-10-16T19:31:14Z","updated_at":"2018-10-17T07:32:24Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"When system policy is configured to require a minimum time between password changes and a user attempts to change their password via the cockpit Accounts page an incorrect error message is displayed.\r\n\r\nWhat the user sees:\r\n<img width=\"616\" alt=\"incorrect-error\" src=\"https://user-images.githubusercontent.com/302055/47030313-7de16800-d13b-11e8-96be-de9b3d2db560.png\">\r\n\r\nWhat actually happens:\r\n<img width=\"572\" alt=\"output-from-passwd\" src=\"https://user-images.githubusercontent.com/302055/47030594-f811ec80-d13b-11e8-82fc-113faf867d55.png\">\r\n\r\nThe minimal fix for this issue would look like this:\r\n<img width=\"613\" alt=\"correct-error\" src=\"https://user-images.githubusercontent.com/302055/47030369-9a7da000-d13b-11e8-9799-4ac65a0155de.png\">\r\n\r\nBut I think we can do better than that by presenting the last changed date to the user and disabling the button when they can't change it yet, with a tooltip that tells them how long they have to wait. Something like this mockup:\r\n<img width=\"407\" alt=\"show-last-changed-date\" src=\"https://user-images.githubusercontent.com/302055/47030654-18da4200-d13c-11e8-87ff-47d74a75452c.png\">\r\n<hr/>\r\n<img width=\"368\" alt=\"change-wait-tooltip\" src=\"https://user-images.githubusercontent.com/302055/47030662-1b3c9c00-d13c-11e8-987a-8974d57e9628.png\">\r\n\r\nI've started looking into what it would take to get something like that mockup in place but wanted to make sure the design was good before I spent too much time on it."},"comment":{"url":"https://api.github.com/repos/cockpit-project/cockpit/issues/comments/430521257","html_url":"https://github.com/cockpit-project/cockpit/issues/10322#issuecomment-430521257","issue_url":"https://api.github.com/repos/cockpit-project/cockpit/issues/10322","id":430521257,"node_id":"MDEyOklzc3VlQ29tbWVudDQzMDUyMTI1Nw==","user":{"login":"martinpitt","id":200109,"node_id":"MDQ6VXNlcjIwMDEwOQ==","avatar_url":"https://avatars3.githubusercontent.com/u/200109?v=4","gravatar_id":"","url":"https://api.github.com/users/martinpitt","html_url":"https://github.com/martinpitt","followers_url":"https://api.github.com/users/martinpitt/followers","following_url":"https://api.github.com/users/martinpitt/following{/other_user}","gists_url":"https://api.github.com/users/martinpitt/gists{/gist_id}","starred_url":"https://api.github.com/users/martinpitt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinpitt/subscriptions","organizations_url":"https://api.github.com/users/martinpitt/orgs","repos_url":"https://api.github.com/users/martinpitt/repos","events_url":"https://api.github.com/users/martinpitt/events{/privacy}","received_events_url":"https://api.github.com/users/martinpitt/received_events","type":"User","site_admin":false},"created_at":"2018-10-17T07:32:24Z","updated_at":"2018-10-17T07:32:24Z","author_association":"MEMBER","body":"Design-wise, the \"full\" solution looks great to me -- it's not intrusive, precise, and consistent to what we do in Cockpit in other places. @garrett,  do you mind having a quick look to confirm?"}}
{"actor":{"display_login":"martinpitt"}}