5次尝试登录后,我正在使用Django REST throttling
阻止用户。
我正在使用this post中的代码来阻止用户。
现在,我想添加一个功能,管理员可以重置被阻止的用户, 意味着从阻止列表中删除阻止的用户。
如何从Django阻止列表中删除用户?
预先感谢
答案 0 :(得分:1)
在Django caches['default']
上存在的所有阻止用户。
1)显示所有阻止用户
def show_blocked_users():
"""
Get all blocked users
"""
throttle_user_list = []
caches_list = caches['default']._expire_info
if caches_list:
for cache in caches_list:
cache_key = cache.replace(':1:', '')
user_attepts = caches['default'].get(cache_key)
count_attepts = Counter(user_attepts)
for key, value in count_attepts.items():
if value == 4:
throttle_user_id = cache.replace(':1:throttle_loginAttempts_', '')
user = User.objects.filter(id=throttle_user_id)
if user:
throttle_user_list.append({'key': cache_key,
'full_name': user[0].first_name + ' ' + user[0].last_name,
'username': user[0].username,
})
return throttle_user_list
2)从列表中删除阻止用户:
def reset_users(request):
"""
Remove/Reset Block User from block list
"""
if request.method == 'POST':
key = request.POST.get('key')
key_exist = caches['default'].get(key)
if key_exist:
caches['default'].delete(key)