About
Provides simple access control based on key+principals (all strings).
By role:
import kbac
ac = kbac.KBAC()
ac.add("viewer", ["bob", "joe"])
ac.add("manager", ["lucy", "rick"])
print(ac.is_allowed(["viewer"], ["lucy"]))
print(ac.is_allowed(["manager"], ["lucy"]))
print(ac.is_allowed(["viewer", "manager"], ["rick"]))
Notes:
KBAC.add()
.By service:
import kbac
acdict = {
"list": "dudley, al, jeffrey",
"create": "dudley, jill",
"delete": "dudley",
}
ac = kbac.KBAC()
ac.load(acdict.items())
principals = ["dudley"]
print "principals (%s)" % (principals,)
for key in acdict:
print("key (%s) allowed (%s)" % (key, ac.is_allowed([key], principals)))
Notes:
Display settings:
import kbac
acdict = {
"list": "dudley, al",
"create": "dudley, brittany",
"delete": "dudley",
}
ac = kbac.KBAC()
ac.load(acdict.items())
for key in ac.keys():
print("key (%s) principals (%s)\n" % (key, sorted(ac.principals(key))))
Notes:
KBAC.keys()
and KBAC.principals()
.