{"action":"created","issue":{"url":"https://api.github.com/repos/concrete5/concrete5/issues/7210","repository_url":"https://api.github.com/repos/concrete5/concrete5","labels_url":"https://api.github.com/repos/concrete5/concrete5/issues/7210/labels{/name}","comments_url":"https://api.github.com/repos/concrete5/concrete5/issues/7210/comments","events_url":"https://api.github.com/repos/concrete5/concrete5/issues/7210/events","html_url":"https://github.com/concrete5/concrete5/issues/7210","id":371228202,"node_id":"MDU6SXNzdWUzNzEyMjgyMDI=","number":7210,"title":"Add deactivate user on unsuccessful login settings; add notification for it.","user":{"login":"aembler","id":527809,"node_id":"MDQ6VXNlcjUyNzgwOQ==","avatar_url":"https://avatars2.githubusercontent.com/u/527809?v=4","gravatar_id":"","url":"https://api.github.com/users/aembler","html_url":"https://github.com/aembler","followers_url":"https://api.github.com/users/aembler/followers","following_url":"https://api.github.com/users/aembler/following{/other_user}","gists_url":"https://api.github.com/users/aembler/gists{/gist_id}","starred_url":"https://api.github.com/users/aembler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aembler/subscriptions","organizations_url":"https://api.github.com/users/aembler/orgs","repos_url":"https://api.github.com/users/aembler/repos","events_url":"https://api.github.com/users/aembler/events{/privacy}","received_events_url":"https://api.github.com/users/aembler/received_events","type":"User","site_admin":false},"labels":[{"id":302795249,"node_id":"MDU6TGFiZWwzMDI3OTUyNDk=","url":"https://api.github.com/repos/concrete5/concrete5/labels/accepted:in%20progress","name":"accepted:in progress","color":"009800","default":false},{"id":397928696,"node_id":"MDU6TGFiZWwzOTc5Mjg2OTY=","url":"https://api.github.com/repos/concrete5/concrete5/labels/priority:must%20have","name":"priority:must have","color":"ff0000","default":false},{"id":302794895,"node_id":"MDU6TGFiZWwzMDI3OTQ4OTU=","url":"https://api.github.com/repos/concrete5/concrete5/labels/type:enhancement","name":"type:enhancement","color":"207de5","default":false}],"state":"open","locked":false,"assignee":{"login":"KorvinSzanto","id":1007419,"node_id":"MDQ6VXNlcjEwMDc0MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/1007419?v=4","gravatar_id":"","url":"https://api.github.com/users/KorvinSzanto","html_url":"https://github.com/KorvinSzanto","followers_url":"https://api.github.com/users/KorvinSzanto/followers","following_url":"https://api.github.com/users/KorvinSzanto/following{/other_user}","gists_url":"https://api.github.com/users/KorvinSzanto/gists{/gist_id}","starred_url":"https://api.github.com/users/KorvinSzanto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KorvinSzanto/subscriptions","organizations_url":"https://api.github.com/users/KorvinSzanto/orgs","repos_url":"https://api.github.com/users/KorvinSzanto/repos","events_url":"https://api.github.com/users/KorvinSzanto/events{/privacy}","received_events_url":"https://api.github.com/users/KorvinSzanto/received_events","type":"User","site_admin":false},"assignees":[{"login":"KorvinSzanto","id":1007419,"node_id":"MDQ6VXNlcjEwMDc0MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/1007419?v=4","gravatar_id":"","url":"https://api.github.com/users/KorvinSzanto","html_url":"https://github.com/KorvinSzanto","followers_url":"https://api.github.com/users/KorvinSzanto/followers","following_url":"https://api.github.com/users/KorvinSzanto/following{/other_user}","gists_url":"https://api.github.com/users/KorvinSzanto/gists{/gist_id}","starred_url":"https://api.github.com/users/KorvinSzanto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KorvinSzanto/subscriptions","organizations_url":"https://api.github.com/users/KorvinSzanto/orgs","repos_url":"https://api.github.com/users/KorvinSzanto/repos","events_url":"https://api.github.com/users/KorvinSzanto/events{/privacy}","received_events_url":"https://api.github.com/users/KorvinSzanto/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/concrete5/concrete5/milestones/29","html_url":"https://github.com/concrete5/concrete5/milestone/29","labels_url":"https://api.github.com/repos/concrete5/concrete5/milestones/29/labels","id":3523762,"node_id":"MDk6TWlsZXN0b25lMzUyMzc2Mg==","number":29,"title":"8.5.0","description":"Another major release of concrete5, including\r\n\r\n* A full-featured REST API\r\n* Iterative improvements to the file manager\r\n* Much more","creator":{"login":"aembler","id":527809,"node_id":"MDQ6VXNlcjUyNzgwOQ==","avatar_url":"https://avatars2.githubusercontent.com/u/527809?v=4","gravatar_id":"","url":"https://api.github.com/users/aembler","html_url":"https://github.com/aembler","followers_url":"https://api.github.com/users/aembler/followers","following_url":"https://api.github.com/users/aembler/following{/other_user}","gists_url":"https://api.github.com/users/aembler/gists{/gist_id}","starred_url":"https://api.github.com/users/aembler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aembler/subscriptions","organizations_url":"https://api.github.com/users/aembler/orgs","repos_url":"https://api.github.com/users/aembler/repos","events_url":"https://api.github.com/users/aembler/events{/privacy}","received_events_url":"https://api.github.com/users/aembler/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":1,"state":"open","created_at":"2018-07-25T19:34:36Z","updated_at":"2018-10-17T21:11:43Z","due_on":"2018-10-01T07:00:00Z","closed_at":null},"comments":1,"created_at":"2018-10-17T19:15:36Z","updated_at":"2018-10-29T22:28:59Z","closed_at":null,"author_association":"MEMBER","body":"Currently, concrete5 can ban IPs in the event of unsuccessful login attempts, but we can't deactivate the user account that has had the problematic logins happen to it.  This task takes a couple parts.\r\n\r\nFirst, let's add the following settings to the User Deactivation Settings dashboard page dashboard/system/registration/deactivation, under Automatic User Deactivation:\r\n\r\n[ ] Deactivate users after [ ] failed login attempts in [ ]  seconds\r\n\r\nMake this styling and functionality match the threshold settings in the IP Blacklist dashboard page. \r\n\r\nIf turned on, and a user trips the deactivation settings, let's send a new notification to those who have subscribed to it. Notifications can be controlled in the \"Notification Settings\" dashboard page. Currently we have notifications for things like form submissions, workflow events, new user signups, etc... Let's fire one when a user is deactivated.\r\n\r\nNext, let's also fire that notification when ANYONE deactivates a user using the Dashboard, or whenever a user is automatically deactivated.\r\n\r\nThis notification system is new in version 8 and sparsely documented, so you might have to ask me about some of the details, which I will be happy to provide. \r\n\r\n"},"comment":{"url":"https://api.github.com/repos/concrete5/concrete5/issues/comments/434104648","html_url":"https://github.com/concrete5/concrete5/issues/7210#issuecomment-434104648","issue_url":"https://api.github.com/repos/concrete5/concrete5/issues/7210","id":434104648,"node_id":"MDEyOklzc3VlQ29tbWVudDQzNDEwNDY0OA==","user":{"login":"KorvinSzanto","id":1007419,"node_id":"MDQ6VXNlcjEwMDc0MTk=","avatar_url":"https://avatars1.githubusercontent.com/u/1007419?v=4","gravatar_id":"","url":"https://api.github.com/users/KorvinSzanto","html_url":"https://github.com/KorvinSzanto","followers_url":"https://api.github.com/users/KorvinSzanto/followers","following_url":"https://api.github.com/users/KorvinSzanto/following{/other_user}","gists_url":"https://api.github.com/users/KorvinSzanto/gists{/gist_id}","starred_url":"https://api.github.com/users/KorvinSzanto/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KorvinSzanto/subscriptions","organizations_url":"https://api.github.com/users/KorvinSzanto/orgs","repos_url":"https://api.github.com/users/KorvinSzanto/repos","events_url":"https://api.github.com/users/KorvinSzanto/events{/privacy}","received_events_url":"https://api.github.com/users/KorvinSzanto/received_events","type":"User","site_admin":false},"created_at":"2018-10-29T22:28:59Z","updated_at":"2018-10-29T22:28:59Z","author_association":"MEMBER","body":"@BloodyIron We currently track failed logins with `\\Concrete\\Core\\Permission\\IPService`, so I'd assume that any authentication type provider would want to make sure they are using that when appropriate."}}
{"actor":{"display_login":"KorvinSzanto"}}