Files
flowers/AccessControl.py
T

41 lines
1.1 KiB
Python
Raw Normal View History

2025-03-25 20:32:26 +00:00
from Config import *
import pickle, os
import datetime
from Log import Log
class Access():
access_list = []
def __init__(self):
five_minutes_ago = datetime.datetime.now() - datetime.timedelta(minutes=5)
new_list = []
if os.path.exists(ACCESSFILE):
with open(ACCESSFILE, 'rb') as pf:
self.access_list = pickle.load(pf)
for entry in self.access_list:
if entry['time'] > five_minutes_ago:
new_list.append(entry)
self.access_list = new_list
def granted(self, ipaddress):
result = 0
for entry in self.access_list:
if entry['ip'] == ipaddress:
result += 1
if result<3:
return True
Log.info("Access denied for {}".format(ipaddress))
self.deny(ipaddress)
return False
def deny(self, ipaddress):
now = datetime.datetime.now()
self.access_list.append({'ip': ipaddress, 'time': now})
with open(ACCESSFILE, 'wb') as pf:
pickle.dump(self.access_list, pf, 2)