initial release
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import json
|
||||
from collections import OrderedDict
|
||||
|
||||
class AccessManager():
|
||||
ACCESS_FILE = "access.json"
|
||||
def __init__(self):
|
||||
self.Logger = logging.getLogger(__class__.__name__)
|
||||
self.AccessDict = OrderedDict()
|
||||
|
||||
def Load(self):
|
||||
self.Logger.info("Loading access from {0}".format(self.ACCESS_FILE))
|
||||
|
||||
with open(self.ACCESS_FILE, "r") as fp:
|
||||
self.AccessDict = json.load(fp, object_pairs_hook = OrderedDict)
|
||||
|
||||
def Save(self):
|
||||
self.Logger.info("Saving access to {0}".format(self.ACCESS_FILE))
|
||||
|
||||
self.AccessDict = OrderedDict(
|
||||
sorted(self.AccessDict.items(), key = lambda x: x[1]["level"], reverse = True))
|
||||
|
||||
with open(self.ACCESS_FILE, "w") as fp:
|
||||
json.dump(self.AccessDict, fp, indent = '\t')
|
||||
|
||||
def __len__(self):
|
||||
return len(self.AccessDict)
|
||||
|
||||
def __getitem__(self, key):
|
||||
if key in self.AccessDict:
|
||||
return self.AccessDict[key]
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
self.AccessDict[key] = value
|
||||
|
||||
def __delitem__(self, key):
|
||||
if key in self.AccessDict:
|
||||
del self.AccessDict[key]
|
||||
|
||||
def __iter__(self):
|
||||
return self.AccessDict.items().__iter__()
|
||||
Reference in New Issue
Block a user