{"push_id":920544007,"size":2,"distinct_size":2,"ref":"refs/heads/next","head":"196a6e81d91fd2c0ac134f0da88072a5ee809df9","before":"0ec4063bbc1268ae10714f37540780b78b0e3d03","commits":[{"sha":"9e6f20bbed21dced24357387507fd2a48e86a71c","author":{"email":"9de348c050f7cd1ca590883733c4e531ce610bf4@gmail.com","name":"David Aguilar"},"message":"core: fix infinite recursion in __getattr__\n\nThe intention of __getattr__ is to return the value from the internal\nstate.  When using the factory pattern, the instance's _state is never\nset, so __getattr__ fails:\n\n\tflask_security/core.py:453: in __getattr__\n\t    return getattr(self._state, name, None)\n\t!!! Recursion detected (same locals & position)\n\nWe can make both use cases work by providing a default _state that\npoints to the security local proxy at the class level.  This allows the\nimmediate-constructor Security(app) form to override the class attribute\nin the instance, as it currently does, while also allowing\n__getattr__ to succeed when using the factory pattern.\n\nAdd tests to exercise both the existing and newly-fixed behaviors.\n\nRelated-to: #317\nSigned-off-by: David Aguilar <davvid@gmail.com>","distinct":true,"url":"https://api.github.com/repos/davvid/flask-security/commits/9e6f20bbed21dced24357387507fd2a48e86a71c"},{"sha":"196a6e81d91fd2c0ac134f0da88072a5ee809df9","author":{"email":"9de348c050f7cd1ca590883733c4e531ce610bf4@gmail.com","name":"David Aguilar"},"message":"Merge branch 'fix-getattr' into next\n\n* fix-getattr:\n  core: fix infinite recursion in __getattr__","distinct":true,"url":"https://api.github.com/repos/davvid/flask-security/commits/196a6e81d91fd2c0ac134f0da88072a5ee809df9"}]}