Beispiel #1
0
 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()
Beispiel #2
0
 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()
Beispiel #3
0
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
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
 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()
Beispiel #7
0
 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
Beispiel #8
0
 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()