{"action":"created","issue":{"url":"https://api.github.com/repos/mattupstate/flask-security/issues/536","repository_url":"https://api.github.com/repos/mattupstate/flask-security","labels_url":"https://api.github.com/repos/mattupstate/flask-security/issues/536/labels{/name}","comments_url":"https://api.github.com/repos/mattupstate/flask-security/issues/536/comments","events_url":"https://api.github.com/repos/mattupstate/flask-security/issues/536/events","html_url":"https://github.com/mattupstate/flask-security/pull/536","id":168717307,"number":536,"title":"Implements basic ldap auth","user":{"login":"magnunleno","id":353311,"avatar_url":"https://avatars0.githubusercontent.com/u/353311?v=4","gravatar_id":"","url":"https://api.github.com/users/magnunleno","html_url":"https://github.com/magnunleno","followers_url":"https://api.github.com/users/magnunleno/followers","following_url":"https://api.github.com/users/magnunleno/following{/other_user}","gists_url":"https://api.github.com/users/magnunleno/gists{/gist_id}","starred_url":"https://api.github.com/users/magnunleno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/magnunleno/subscriptions","organizations_url":"https://api.github.com/users/magnunleno/orgs","repos_url":"https://api.github.com/users/magnunleno/repos","events_url":"https://api.github.com/users/magnunleno/events{/privacy}","received_events_url":"https://api.github.com/users/magnunleno/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-08-01T19:01:24Z","updated_at":"2018-03-07T18:53:40Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/mattupstate/flask-security/pulls/536","html_url":"https://github.com/mattupstate/flask-security/pull/536","diff_url":"https://github.com/mattupstate/flask-security/pull/536.diff","patch_url":"https://github.com/mattupstate/flask-security/pull/536.patch"},"body":"This Pull request adds a basic LDAP Authentication implementation using the `pyldap` library. In order to address the Issue #420, it extends the already implemented `SQLAlchemyUserDatastore` and adds a new form (`LDAPLoginForm`). Also, adds two more signals (`ldap-user-registred` and `ldap-user-login`), allowing the app to customize and fetch other LDAP attributes.\n\nSince this feature might not be useful for some users all LDAP features are isolated in a submodule. With this approach, installing the `pyldap` module isn't a prerequisite for flask-security:\n\n```\nfrom flask_security.ldap import LDAPUserDatastore, LDAPLoginForm\n\nuser_datastore = LDAPUserDatastore(db, User, Role)\nsecurity = Security(app, user_datastore, {'login_form': LDAPLoginForm})\n```\n\nI'd appreciate very much if someone could review this, since I'm kinda new in the flask world and it's the first time I'm using flask-security.\n\nThanks!\n"},"comment":{"url":"https://api.github.com/repos/mattupstate/flask-security/issues/comments/371244335","html_url":"https://github.com/mattupstate/flask-security/pull/536#issuecomment-371244335","issue_url":"https://api.github.com/repos/mattupstate/flask-security/issues/536","id":371244335,"user":{"login":"radusuciu","id":1108600,"avatar_url":"https://avatars2.githubusercontent.com/u/1108600?v=4","gravatar_id":"","url":"https://api.github.com/users/radusuciu","html_url":"https://github.com/radusuciu","followers_url":"https://api.github.com/users/radusuciu/followers","following_url":"https://api.github.com/users/radusuciu/following{/other_user}","gists_url":"https://api.github.com/users/radusuciu/gists{/gist_id}","starred_url":"https://api.github.com/users/radusuciu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/radusuciu/subscriptions","organizations_url":"https://api.github.com/users/radusuciu/orgs","repos_url":"https://api.github.com/users/radusuciu/repos","events_url":"https://api.github.com/users/radusuciu/events{/privacy}","received_events_url":"https://api.github.com/users/radusuciu/received_events","type":"User","site_admin":false},"created_at":"2018-03-07T18:53:40Z","updated_at":"2018-03-07T18:53:40Z","author_association":"NONE","body":"@magnunleno It wouldn't be so bad as a separate package in my opinion. You don't need to modify flask_security core files.."}}
{"actor":{"display_login":"radusuciu"}}