equal
deleted
inserted
replaced
20 """ |
20 """ |
21 __docformat__ = "restructuredtext en" |
21 __docformat__ = "restructuredtext en" |
22 |
22 |
23 from yams.schema import role_name |
23 from yams.schema import role_name |
24 from cubicweb import UnknownProperty, ValidationError, BadConnectionId |
24 from cubicweb import UnknownProperty, ValidationError, BadConnectionId |
25 from cubicweb.selectors import implements |
25 from cubicweb.selectors import is_instance |
26 from cubicweb.server import hook |
26 from cubicweb.server import hook |
27 |
27 |
28 |
28 |
29 def get_user_sessions(repo, ueid): |
29 def get_user_sessions(repo, ueid): |
30 for session in repo._sessions.values(): |
30 for session in repo._sessions.values(): |
106 pass # already closed |
106 pass # already closed |
107 |
107 |
108 |
108 |
109 class CloseDeletedUserSessionsHook(SyncSessionHook): |
109 class CloseDeletedUserSessionsHook(SyncSessionHook): |
110 __regid__ = 'closession' |
110 __regid__ = 'closession' |
111 __select__ = SyncSessionHook.__select__ & implements('CWUser') |
111 __select__ = SyncSessionHook.__select__ & is_instance('CWUser') |
112 events = ('after_delete_entity',) |
112 events = ('after_delete_entity',) |
113 |
113 |
114 def __call__(self): |
114 def __call__(self): |
115 """modify user permission, need to update users""" |
115 """modify user permission, need to update users""" |
116 for session in get_user_sessions(self._cw.repo, self.entity.eid): |
116 for session in get_user_sessions(self._cw.repo, self.entity.eid): |
150 # if for_user is set, update is handled by a ChangeCWPropertyOp operation |
150 # if for_user is set, update is handled by a ChangeCWPropertyOp operation |
151 |
151 |
152 |
152 |
153 class AddCWPropertyHook(SyncSessionHook): |
153 class AddCWPropertyHook(SyncSessionHook): |
154 __regid__ = 'addcwprop' |
154 __regid__ = 'addcwprop' |
155 __select__ = SyncSessionHook.__select__ & implements('CWProperty') |
155 __select__ = SyncSessionHook.__select__ & is_instance('CWProperty') |
156 events = ('after_add_entity',) |
156 events = ('after_add_entity',) |
157 |
157 |
158 def __call__(self): |
158 def __call__(self): |
159 key, value = self.entity.pkey, self.entity.value |
159 key, value = self.entity.pkey, self.entity.value |
160 session = self._cw |
160 session = self._cw |