async def set_settings(self, **kwargs): user_setting = {} domain_user_setting = {} domain_user_unset_keys = [] for key, value in kwargs.items(): if key not in SETTINGS_BY_KEY: raise error.UnknownFieldError(key) setting = SETTINGS_BY_KEY[key] value = value.strip() kwargs[key] = setting.factory(value) if setting.range and kwargs[key] not in setting.range: raise error.ValidationError(key) if key in DOMAIN_SETTINGS_KEYS: if value: domain_user_setting[key] = kwargs[key] else: domain_user_unset_keys.append(key) else: user_setting[key] = kwargs[key] if self.has_priv(builtin.PRIV_USER_PROFILE): if user_setting: await user.set_by_uid(self.user['_id'], **user_setting) if domain_user_setting: await domain.set_user(domain_id=self.domain_id, uid=self.user['_id'], **domain_user_setting) if domain_user_unset_keys: await domain.unset_user(self.domain_id, self.user['_id'], domain_user_unset_keys) else: await self.update_session(**kwargs)
async def set_settings(self, **kwargs): for key, value in kwargs.items(): if key not in SETTINGS_BY_KEY: raise error.UnknownFieldError(key) setting = SETTINGS_BY_KEY[key] kwargs[key] = setting.factory(value) if setting.range and kwargs[key] not in setting.range: raise error.ValidationError(key) if self.has_priv(builtin.PRIV_USER_PROFILE): await user.set_by_uid(self.user['_id'], **kwargs) else: await self.update_session(**kwargs)