[application/connect] simplify connection logic
``application.connect`` now either sets a full featured ``DBAPISession`` to the
``WebRequest`` object or raises ``AuthenticationError``. The creation and usage
of a fake DBAPISession is now handled by ``main_handle_request`` when needed.
This means that fake DBAPISession are no longer tracked by the session manager
and that user are not given anyway to retrieve them for a later request.
This fake DBAPISession is still passed to ``core_handle`` because multiple cubes
like registration or forgotten password need this behavior. We would like to get
ride of it in the future.
This clarification of the connection API greatly simplifies ``DBAPISession``
retrieval//creation process opening the
way to improvements in this area.
Related to #2503918
from yams import schema2sql as y2sql
dbhelper = repo.system_source.dbhelper
rdefdef = schema['CWSource'].rdef('name')
attrtype = y2sql.type_from_constraints(dbhelper, rdefdef.object, rdefdef.constraints).split()[0]
cursor = session.cnxset['system']
sql('UPDATE entities SET asource = source WHERE asource is NULL')
dbhelper.change_col_type(cursor, 'entities', 'asource', attrtype, False)
dbhelper.change_col_type(cursor, 'entities', 'source', attrtype, False)
dbhelper.change_col_type(cursor, 'deleted_entities', 'source', attrtype, False)