def set(self, appstruct: dict, omit=(), send_event=True, send_reference_event=True, omit_readonly: bool=True, autoupdated=False, ) -> bool: """Store appstruct. Read :func:`adhocracy_core.interfaces.IResourceSheet.set` """ appstruct_old = self.get(add_back_references=False) appstruct = self._omit_omit_keys(appstruct, omit) if omit_readonly: appstruct = self._omit_readonly_keys(appstruct) appstruct = self._filter_unchanged_data(appstruct, appstruct_old) self._store_data(appstruct) self._store_references(appstruct, self.registry, send_event=send_reference_event) if send_event: event = ResourceSheetModified(self.context, self.meta.isheet, self.registry, appstruct_old, appstruct, self.request, autoupdated, ) self.registry.notify(event) return bool(appstruct)
def event(self, context): from adhocracy_core.events import ResourceSheetModified from adhocracy_core.sheets.metadata import IMetadata event = ResourceSheetModified(object=context, isheet=IMetadata, registry=None, old_appstruct={}, new_appstruct={}, request=None) return event
def set(self, appstruct: dict, omit=(), send_event=True, request: Request = None, omit_readonly: bool = True) -> bool: """Store appstruct.""" appstruct_old = self.get(add_back_references=False) appstruct = self._omit_omit_keys(appstruct, omit) if omit_readonly: appstruct = self._omit_readonly_keys(appstruct) self._store_data(appstruct) self._store_references(appstruct, self.registry) if send_event: event = ResourceSheetModified(self.context, self.meta.isheet, self.registry, appstruct_old, appstruct, request) self.registry.notify(event) return bool(appstruct)
def validate_activation_path(context, request: Request): """Validate the user name of a login request. If valid and activated, the user object is added as 'user' to `request.validated`. """ path = request.validated['path'] locator = request.registry.getMultiAdapter((context, request), IUserLocator) user = locator.get_user_by_activation_path(path) error = error_entry('body', 'path', 'Unknown or expired activation path') if user is None: request.errors.append(error) elif is_older_than(user, days=8): request.errors.append(error) user.activation_path = None else: user.activate() user.activation_path = None request.validated['user'] = user event = ResourceSheetModified(user, IUserBasic, request.registry, {}, {}, request) request.registry.notify(event) # trigger reindex activation_path index
def validate_activation_path(node, value): registry = request.registry locator = registry.getMultiAdapter((context, request), IUserLocator) user = locator.get_user_by_activation_path(value) error_msg = 'Unknown or expired activation path' if user is None: raise Invalid(node, error_msg) elif is_older_than(user, days=8): user.activation_path = None raise Invalid(node, error_msg) else: request.validated['user'] = user if not user.active: user.activate() elif user.has_new_email_pending: user.activate_new_email() else: raise Invalid(node, 'No new email waiting for activation.') user.activation_path = None autoupdated = False event = ResourceSheetModified(user, IUserBasic, registry, {}, {}, request, autoupdated) registry.notify(event) # trigger reindex activation_path index
def make_one(self, *arg): from adhocracy_core.events import ResourceSheetModified return ResourceSheetModified(*arg)