author | Pierre-Yves David <pierre-yves.david@logilab.fr> |
Thu, 27 Jun 2013 14:12:00 +0200 | |
changeset 9113 | af6efc15fc90 |
parent 9043 | 97c3bb9a7c99 |
child 9115 | fcc732a9d9ac |
permissions | -rw-r--r-- |
9015
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
1 |
What's new in CubicWeb 4.0? |
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
2 |
============================ |
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
3 |
|
9042
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
4 |
Behavior Changes |
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
5 |
---------------- |
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
6 |
|
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
7 |
* The anonymous property of Session and Connection are now computed from the |
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
8 |
related user login. If it match the ``anonymous-user`` in the config the |
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
9 |
connection is anonymous. Beware that the ``anonymous-user`` config is web |
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
10 |
specific. Therefore, no session may be anonymous in repository only setup. |
6cc13a0a9145
[dbapi] makes anonymous_connection a computed property
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9038
diff
changeset
|
11 |
|
9113
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
12 |
New Repository Access API |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
13 |
------------------------- |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
14 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
15 |
Connection replace Session |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
16 |
~~~~~~~~~~~~~~~~~~~~~~~~~~ |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
17 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
18 |
A new explicite Connection object replace Session as the main repository entry |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
19 |
point. Connection hold all the necessary methods to be used Server side |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
20 |
(``execute``, ``commit``, ``rollback``, ``call_service``, ``entity_from_eid``, |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
21 |
etc…). You obtains a new Connection object using ``session.new_cnx()``. |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
22 |
Connection object need have an explicite begin and end. Use them as a context |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
23 |
manager:: |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
24 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
25 |
with session.new_cnx() as cnx: |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
26 |
self.execute('INSERT Elephant E, E name "Cabar"') |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
27 |
self.commit() |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
28 |
self.execute('INSERT Elephant E, E name "Celeste"') |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
29 |
self.commit() |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
30 |
# Once you get out of the "with" clause, the connection is closed. |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
31 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
32 |
Using the same Connection object in multiple threads will give you access to the |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
33 |
same Transaction. However, Connection object are not thread safe. |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
34 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
35 |
``repository.internal_session`` is deprecated in favor of |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
36 |
``repository.internal_cnx``. Note that internal connection are now safe by |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
37 |
default. Integrity hooks are enabled except stated otherwise. |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
38 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
39 |
Backward compact is preserved on Session. They can still be used to access the |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
40 |
database for the next few version. |
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
41 |
|
af6efc15fc90
[repository] add an ``internal_cnx`` method to replace ``internal_session``
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9043
diff
changeset
|
42 |
|
9018
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
43 |
API changes |
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
44 |
----------- |
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
45 |
|
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
46 |
* ``RepositorySessionManager.postlogin`` is now called with two arguments, |
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
47 |
request and session. And this now happens before the session is linked to the |
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
48 |
request. |
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
49 |
|
9032
629a8d49d6f5
[auth] pass `repo` instead of `vreg` to SessionManager and AuthenticationManager
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9018
diff
changeset
|
50 |
* ``SessionManager`` and ``AuthenticationManager`` now take a repo object at |
629a8d49d6f5
[auth] pass `repo` instead of `vreg` to SessionManager and AuthenticationManager
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9018
diff
changeset
|
51 |
initialization time instead of a vreg. |
629a8d49d6f5
[auth] pass `repo` instead of `vreg` to SessionManager and AuthenticationManager
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9018
diff
changeset
|
52 |
|
9033
614bf73cc126
[service] drop the asynchronous execution possibility
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9032
diff
changeset
|
53 |
* The ``async`` argument of ``_cw.call_service`` have been dropped. All call are |
614bf73cc126
[service] drop the asynchronous execution possibility
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9032
diff
changeset
|
54 |
now synchronous. The zmq notification bus looks like a good replacement for |
614bf73cc126
[service] drop the asynchronous execution possibility
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9032
diff
changeset
|
55 |
most async usecase. |
614bf73cc126
[service] drop the asynchronous execution possibility
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9032
diff
changeset
|
56 |
|
9034
cc3442054e48
[repo] move repo stats to Service (closes #2951067)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9033
diff
changeset
|
57 |
* ``repo.stats()`` is now deprecated. The same information are available through |
cc3442054e48
[repo] move repo stats to Service (closes #2951067)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9033
diff
changeset
|
58 |
a service (``_cw.call_service('repo_stats')``) |
cc3442054e48
[repo] move repo stats to Service (closes #2951067)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9033
diff
changeset
|
59 |
|
9035
63f3d25bab14
[repo] move repo.gc_stats to Service API (closes #2951068)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9034
diff
changeset
|
60 |
* ``repo.gc_stats()`` is now deprecated. The same information are available through |
63f3d25bab14
[repo] move repo.gc_stats to Service API (closes #2951068)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9034
diff
changeset
|
61 |
a service (``_cw.call_service('repo_gc_stats')``) |
63f3d25bab14
[repo] move repo.gc_stats to Service API (closes #2951068)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9034
diff
changeset
|
62 |
|
9038
1b972d81eda4
[request] drop the user argument for set_session
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9035
diff
changeset
|
63 |
* ``request.set_session`` no longer takes an optional ``user`` argument. |
1b972d81eda4
[request] drop the user argument for set_session
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9035
diff
changeset
|
64 |
|
9043
97c3bb9a7c99
[testlib] move repo and related attribute back on Instance instead of Class
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9042
diff
changeset
|
65 |
* CubicwebTC does not have repo and cnx as class attributes anymore. They are |
97c3bb9a7c99
[testlib] move repo and related attribute back on Instance instead of Class
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9042
diff
changeset
|
66 |
standard instance attributes. ``set_cnx`` and ``_init_repo`` class methods |
97c3bb9a7c99
[testlib] move repo and related attribute back on Instance instead of Class
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9042
diff
changeset
|
67 |
become instance methods. |
97c3bb9a7c99
[testlib] move repo and related attribute back on Instance instead of Class
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9042
diff
changeset
|
68 |
|
9018
9deb024a96c0
[session-handler] use session directly to update last usage
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
9016
diff
changeset
|
69 |
|
9015
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
70 |
Deprecated Code Drops |
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
71 |
---------------------- |
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
72 |
|
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
73 |
* The ldapuser source has been dropped. ldapfeed is the only official source |
65b8236e1bb4
[sources] drop support for ldapuser source (closes #2936496)
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff
changeset
|
74 |
remaining for ldap. |
9016 | 75 |
|
76 |
* session.hijack_user mechanism has been dropped. |