def have_read(self, user=None): if not user: user = g.user or g.token_user read_list = cache.get(self.read_cache_key) if read_list and user.id in read_list: return True return ReadTopic.query.filter_by(topic=self, user=user).count()
def verify_action_token(token): if not g.user: return False user = g.user key = "action_token_{}".format(token) user_id = cache.get(key) if user_id: cache.delete(key) return user_id == user.id return False
def validate_csrf_data(self, data): if not validate_csrf(data, self.SECRET_KEY, self.TIME_LIMIT): return False cache_value = cache.get(data) cache.delete(data) if cache_value is not None: if cache_value == 0: return True return cache_value == g.user.id return False
def validate_csrf_data(self, data): if not validate_csrf(data, self.SECRET_KEY, self.TIME_LIMIT): return False key = "csrf_%s" % data cache_value = cache.get(key) cache.delete(key) if cache_value is not None: if cache_value == 0: return True return cache_value == g.user.id return False
def mark_read(self, user): if self.have_read(user): return read_list = cache.get(self.read_cache_key) if read_list: read_list.append(user.id) else: read_list = [user.id] cache.set(self.read_cache_key, read_list) read_mark = ReadTopic(topic=self, user=user) db.session.add(read_mark) db.session.commit()
def validate_csrf_data(self, data): if current_app.debug: return True if not validate_csrf(data, self.SECRET_KEY, self.TIME_LIMIT): return False cache_value = cache.get(data) cache.delete(data) if cache_value is not None: if cache_value == 0: return True return cache_value == g.user.id return False
def have_read(self, user): read_list = cache.get(self.read_cache_key) if read_list and user.id in read_list: return True return ReadTopic.query.filter_by(topic=self, user=user).count()