I have tried to reproduce the issue but couldn't reproduce it on UBUNTU as well as on MAC.
I have checked the online examples of SQLAlchemyUserDatastore, and I think it is logical that before assigning the new role to the newly created user, user should be committed first. Thanks,Khushboo
On Sun, Sep 6, 2015 at 12:42 AM, Prasad <prasad.s@mail.com[prasad.s@mail.com]> wrote: > Hi, > > When you try to run pgadmin4 for first time(without presence of pgadmin4.db), it ask you to run setup.py. When you run it, it throws python error as follows, > Traceback (most recent call last): > File "/home/test/Development/pgadmin4/web/setup.py", line 145, in <module> > do_setup(app) > File "/home/test/Development/pgadmin4/web/setup.py", line 57, in do_setup > user_datastore.add_role_to_user(email, 'Administrators') > File "/usr/local/lib/python2.7/dist-packages/Flask_Security-1.7.4-py2.7.egg/flask_security/datastore.py", line 106, in add_role_to_user > if role not in user.roles: > AttributeError: 'NoneType' object has no attribute 'roles' > > It's because,user_datastore.create_role,user_datastore.create_user and user_datastore.add_role_to_user all calls are for in one database transaction. It need to commit it after first two calls or creating role and user for add_role_to_user to work, > > Find attached patch for this. > > regards, > Prasad Somwanshi > > > -- > Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org[pgadmin-hackers@postgresql.org]) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgadmin-hackers[http://www.postgresql.org/mailpref/pgadmin-hackers] >