equal
deleted
inserted
replaced
6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses |
7 """ |
7 """ |
8 __docformat__ = "restructuredtext en" |
8 __docformat__ = "restructuredtext en" |
9 |
9 |
10 from cubicweb import UnknownProperty, ValidationError, BadConnectionId |
10 from cubicweb import UnknownProperty, ValidationError, BadConnectionId |
11 from cubicweb.selectors import entity_implements |
11 from cubicweb.selectors import implements |
12 from cubicweb.server import hook |
12 from cubicweb.server import hook |
13 |
13 |
14 |
14 |
15 def get_user_sessions(repo, ueid): |
15 def get_user_sessions(repo, ueid): |
16 for session in repo._sessions.values(): |
16 for session in repo._sessions.values(): |
92 pass # already closed |
92 pass # already closed |
93 |
93 |
94 |
94 |
95 class CloseDeletedUserSessionsHook(SyncSessionHook): |
95 class CloseDeletedUserSessionsHook(SyncSessionHook): |
96 __regid__ = 'closession' |
96 __regid__ = 'closession' |
97 __select__ = SyncSessionHook.__select__ & entity_implements('CWUser') |
97 __select__ = SyncSessionHook.__select__ & implements('CWUser') |
98 events = ('after_delete_entity',) |
98 events = ('after_delete_entity',) |
99 |
99 |
100 def __call__(self): |
100 def __call__(self): |
101 """modify user permission, need to update users""" |
101 """modify user permission, need to update users""" |
102 for session in get_user_sessions(self._cw.repo, self.entity.eid): |
102 for session in get_user_sessions(self._cw.repo, self.entity.eid): |
136 # if for_user is set, update is handled by a ChangeCWPropertyOp operation |
136 # if for_user is set, update is handled by a ChangeCWPropertyOp operation |
137 |
137 |
138 |
138 |
139 class AddCWPropertyHook(SyncSessionHook): |
139 class AddCWPropertyHook(SyncSessionHook): |
140 __regid__ = 'addcwprop' |
140 __regid__ = 'addcwprop' |
141 __select__ = SyncSessionHook.__select__ & entity_implements('CWProperty') |
141 __select__ = SyncSessionHook.__select__ & implements('CWProperty') |
142 events = ('after_add_entity',) |
142 events = ('after_add_entity',) |
143 |
143 |
144 def __call__(self): |
144 def __call__(self): |
145 key, value = self.entity.pkey, self.entity.value |
145 key, value = self.entity.pkey, self.entity.value |
146 session = self._cw |
146 session = self._cw |