Thanks, applied.

On Wed, Aug 9, 2017 at 3:19 PM, Harshal Dhumal <
harshal.dhu...@enterprisedb.com> wrote:

> Hi,
>
> I tested this change with Flask-Security 3.0.0 and 1.7.5 (we ship pgAdmin4
> with 1.7.5) and with 2.7 and 3.0+.
> This is working as expected.
>
> Apart from this I also found some other issues with User management.
> I have created RM2641 <https://redmine.postgresql.org/issues/2641> for
> these issue and also attached patch from same.
>
>
> Thanks
>
>
> --
> *Harshal Dhumal*
> *Sr. Software Engineer*
>
> EnterpriseDB India: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>
> On Mon, Aug 7, 2017 at 7:08 PM, Ashesh Vashi <
> ashesh.va...@enterprisedb.com> wrote:
>
>> Harshal,
>>
>> Please take a look at it.
>>
>> --
>>
>> Thanks & Regards,
>>
>> Ashesh Vashi
>> EnterpriseDB INDIA: Enterprise PostgreSQL Company
>> <http://www.enterprisedb.com>
>>
>>
>> *http://www.linkedin.com/in/asheshvashi*
>> <http://www.linkedin.com/in/asheshvashi>
>>
>> On Mon, Aug 7, 2017 at 6:46 PM, Wouter van Kesteren <wouters...@gmail.com
>> > wrote:
>>
>>> I installed it on my system and i got the following error:
>>>
>>> Traceback (most recent call last):
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1997, in __call__
>>>     return self.wsgi_app(environ, start_response)
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1985, in wsgi_app
>>>     response = self.handle_exception(e)
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1540, in handle_exception
>>>     reraise(exc_type, exc_value, tb)
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/_compat.py",
>>> line 33, in reraise
>>>     raise value
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1982, in wsgi_app
>>>     response = self.full_dispatch_request()
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1614, in full_dispatch_request
>>>     rv = self.handle_user_exception(e)
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1517, in handle_user_exception
>>>     reraise(exc_type, exc_value, tb)
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/_compat.py",
>>> line 33, in reraise
>>>     raise value
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1610, in full_dispatch_request
>>>     rv = self.preprocess_request()
>>>   File "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask/app.py",
>>> line 1831, in preprocess_request
>>>     rv = func()
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_principal.py",
>>> line 477, in _on_before_request
>>>     identity = loader()
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_security/core.py",
>>> line 245, in _identity_loader
>>>     if not isinstance(current_user._get_current_object(),
>>> AnonymousUserMixin):
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/werkzeug/local.py",
>>> line 306, in _get_current_object
>>>     return self.__local()
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_login/utils.py",
>>> line 26, in <lambda>
>>>     current_user = LocalProxy(lambda: _get_user())
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_login/utils.py",
>>> line 302, in _get_user
>>>     current_app.login_manager._load_user()
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_login/login_manager.py",
>>> line 316, in _load_user
>>>     return self.reload_user()
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_login/login_manager.py",
>>> line 278, in reload_user
>>>     user = self.user_callback(user_id)
>>>   File 
>>> "/usr/x86_64-pc-linux-gnu/lib/python3.4/site-packages/flask_security/core.py",
>>> line 221, in _user_loader
>>>     return _security.datastore.find_user(id=user_id)
>>> AttributeError: 'NoneType' object has no attribute 'find_user'
>>>
>>> My system has Flask-Security 3.0.0 which contains a patch to
>>> Security.init_app
>>>
>>> -        if not self.datastore:
>>> -            self.datastore = datastore
>>> -        datastore = self.datastore
>>> +        self.app = app
>>> +        self.datastore = datastore
>>>
>>> https://github.com/mattupstate/flask-security/commit/3701b91
>>> d4d3e41036872a3f35db51e44e0681109
>>>
>>> To get the old behavior we need to pass the datastore along again else
>>> it gets overruled by the default None.
>>> ---
>>>  web/pgadmin/__init__.py | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py
>>> index cd18b1f8..f4f7e385 100644
>>> --- a/web/pgadmin/__init__.py
>>> +++ b/web/pgadmin/__init__.py
>>> @@ -308,7 +308,7 @@ def create_app(app_name=None):
>>>      app.config.update(dict(SECRET_KEY=config.SECRET_KEY))
>>>      app.config.update(dict(SECURITY_PASSWORD_SALT=config.SECURI
>>> TY_PASSWORD_SALT))
>>>
>>> -    security.init_app(app)
>>> +    security.init_app(app, user_datastore)
>>>
>>>      app.session_interface = create_session_interface(app)
>>>
>>> --
>>> 2.13.3
>>>
>>>
>>>
>>
>


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply via email to