On IRC, inklesspen reached the problem: it is with debug toolbar. Disabling
it, the app works nice.

The problem occurs with pyramid 1.6.1 too.

On 15 May 2016 at 20:05, Vinicius Assef <[email protected]> wrote:

> Following Steve Piercy's suggestion on IRC, I just tried using code from
> here:
> https://github.com/Pylons/pyramid/tree/1.7-branch/docs/tutorials/wiki2/src/authentication
>
> The problem continues to me. Would it be some problem with the tutorial?
>
> On 15 May 2016 at 18:42, Vinicius Assef <[email protected]> wrote:
>
>> I'm following the SQLAlchemy + URL dispatch wiki tutorial [1] in Pyramid
>> 1.7b4 and I'm getting an error in the step "Adding Authentication" [2].
>>
>> After making all recommended modifications in source files, I run the
>> application.
>>
>> I can see any wiki page created, but when I submit the login form, I see
>> the following message in browser:
>>
>> Internal Server Error
>>
>> The server encountered an unexpected internal server error
>>
>> (generated by waitress)
>>
>>
>> The traceback generated on console is as follows:
>>
>> 2016-05-15 18:13:58,519 INFO
>> [sqlalchemy.engine.base.Engine:646][waitress] BEGIN (implicit)
>> 2016-05-15 18:13:58,520 INFO
>> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT users.id AS
>> users_id, users.name AS users_name, users.role AS users_role,
>> users.password_hash AS users_password_hash
>> FROM users
>> WHERE users.name = ?
>>  LIMIT ? OFFSET ?
>> 2016-05-15 18:13:58,520 INFO
>> [sqlalchemy.engine.base.Engine:1100][waitress] ('editor', 1, 0)
>> 2016-05-15 18:13:58,829 INFO
>> [sqlalchemy.engine.base.Engine:666][waitress] ROLLBACK
>> 2016-05-15 18:13:58,841 INFO
>> [sqlalchemy.engine.base.Engine:646][waitress] BEGIN (implicit)
>> 2016-05-15 18:13:58,842 INFO
>> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT pages.id AS
>> pages_id, pages.name AS pages_name, pages.data AS pages_data,
>> pages.creator_id AS pages_creator_id
>> FROM pages
>> WHERE pages.name = ?
>>  LIMIT ? OFFSET ?
>> 2016-05-15 18:13:58,842 INFO
>> [sqlalchemy.engine.base.Engine:1100][waitress] ('FrontPage', 1, 0)
>> 2016-05-15 18:13:58,857 INFO
>> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT pages.id AS
>> pages_id, pages.name AS pages_name, pages.data AS pages_data,
>> pages.creator_id AS pages_creator_id
>> FROM pages
>> WHERE pages.name = ?
>> 2016-05-15 18:13:58,858 INFO
>> [sqlalchemy.engine.base.Engine:1100][waitress] ('ViniciusPage',)
>> 2016-05-15 18:13:58,859 INFO
>> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT pages.id AS
>> pages_id, pages.name AS pages_name, pages.data AS pages_data,
>> pages.creator_id AS pages_creator_id
>> FROM pages
>> WHERE pages.name = ?
>> 2016-05-15 18:13:58,859 INFO
>> [sqlalchemy.engine.base.Engine:1100][waitress] ('RosangelaPage',)
>> 2016-05-15 18:13:58,862 INFO
>> [sqlalchemy.engine.base.Engine:1097][waitress] SELECT users.id AS
>> users_id, users.name AS users_name, users.role AS users_role,
>> users.password_hash AS users_password_hash
>> FROM users
>> WHERE users.id = ?
>> 2016-05-15 18:13:58,862 INFO
>> [sqlalchemy.engine.base.Engine:1100][waitress] (1,)
>> 2016-05-15 18:13:58,865 INFO
>> [sqlalchemy.engine.base.Engine:666][waitress] ROLLBACK
>> 2016-05-15 18:13:58,866 ERROR [waitress:341][waitress] Exception when
>> serving /FrontPage
>> Traceback (most recent call last):
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/waitress/channel.py",
>> line 338, in service
>>     task.service()
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/waitress/task.py",
>> line 169, in service
>>     self.execute()
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/waitress/task.py",
>> line 399, in execute
>>     app_iter = self.channel.server.application(env, start_response)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid/router.py",
>> line 236, in __call__
>>     response = self.invoke_subrequest(request, use_tweens=True)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid/router.py",
>> line 211, in invoke_subrequest
>>     response = handle_request(request)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/toolbar.py",
>> line 266, in toolbar_tween
>>     toolbar.process_response(request, response)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/toolbar.py",
>> line 87, in process_response
>>     panel.process_response(response)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/panels/request_vars.py",
>> line 112, in process_response
>>     extracted_attributes = extract_request_attributes(self.request)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid_debugtoolbar/panels/request_vars.py",
>> line 56, in extract_request_attributes
>>     if not hasattr(request, attr_):
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/pyramid/security.py",
>> line 344, in authenticated_userid
>>     return policy.authenticated_userid(self)
>>   File
>> "/Users/viniciusban/projects/tutoriais-pyramid/sqla/sqla/security.py", line
>> 11, in authenticated_userid
>>     return user.id
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/attributes.py",
>> line 237, in __get__
>>     return self.impl.get(instance_state(instance), dict_)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/attributes.py",
>> line 578, in get
>>     value = state._load_expired(state, passive)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/state.py",
>> line 474, in _load_expired
>>     self.manager.deferred_scalar_loader(self, toload)
>>   File
>> "/Users/viniciusban/virtualenvs/pyramid_sqla_tut/lib/python3.5/site-packages/sqlalchemy/orm/loading.py",
>> line 610, in load_scalar_attributes
>>     (state_str(state)))
>> sqlalchemy.orm.exc.DetachedInstanceError: Instance <User at 0x111ac67f0>
>> is not bound to a Session; attribute refresh operation cannot proceed
>>
>>
>> According to this traceback, the error is raised at the last line of
>> MyAuthenticationPolicy class when I try to access request.user:
>>
>> class MyAuthenticationPolicy(AuthTktAuthenticationPolicy):
>>     def authenticated_userid(self, request):
>>         user = request.user
>>         if user is not None:
>>             return user.id
>>
>> Strange is I can access http://localhost:6543/404 by hand and see the
>> request.user.name showed next to the "Logout" link (coming from the
>> layout.jinja2 template).
>>
>> I can log out successfuly.
>>
>> Any advice?
>>
>>
>> For more information, I am using Python 3.5.1 in OS X El Capitan. Here
>> are all libs installed in my virtualenv:
>>
>> $ pip freeze
>> bcrypt==2.0.0
>> beautifulsoup4==4.4.1
>> cffi==1.6.0
>> coverage==4.0.3
>> docutils==0.12
>> Jinja2==2.8
>> Mako==1.0.4
>> MarkupSafe==0.23
>> PasteDeploy==1.5.2
>> py==1.4.31
>> pycparser==2.14
>> Pygments==2.1.3
>> pyramid==1.7b4
>> pyramid-debugtoolbar==3.0
>> pyramid-jinja2==2.6.2
>> pyramid-mako==1.0.2
>> pyramid-tm==0.12.1
>> pytest==2.9.1
>> pytest-cov==2.2.1
>> repoze.lru==0.6
>> six==1.10.0
>> sqla==0.0
>> SQLAlchemy==1.0.12
>> transaction==1.5.0
>> translationstring==1.3
>> venusian==1.0
>> waitress==0.9.0
>> WebOb==1.6.0
>> WebTest==2.0.21
>> zope.deprecation==4.1.2
>> zope.interface==4.1.3
>> zope.sqlalchemy==0.7.6
>>
>>
>> [1]
>> http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/tutorials/wiki2/index.html
>> [2]
>> http://docs.pylonsproject.org/projects/pyramid/en/1.7-branch/tutorials/wiki2/authentication.html
>>
>>
>> I already checked my source code and it is according to the tutorial
>> recommendations. What must I do to fix it?
>> Any help is very appreciated.
>>
>> --
>> Vinicius Assef
>>
>>
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/CAFmXjSBnBRTt4JahnTRr961x9i2GSfnYPT3LFcGr325D91SreQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to