def simple_test_case(): conf = Configuration() user_hierarchy = [ ("manager",["employee"]), ("employee",["stuff"]) ] object_hierarchy = [ ("secret", ["public"]), ("confidential",["public"]) ] conf.object_label_hierarchy = object_hierarchy conf.user_label_hierarchy = user_hierarchy conf.add_policy("read",[ ("confidential","employee" ) ] ) # create LaBAC class with this configuration lbac = LBAC(conf) # now check if 'employee' can read 'confidential' print lbac.request(user='******', object='confidential', action='read')
def get(file_in_json=None): print file_in_json #file_in_json = LoadJSON(str=).get_json() if file_in_json: user_labels = file_in_json['user_labels'] object_labels = file_in_json['object_labels'] policy = file_in_json['policy'] conf = Configuration() u_ls = [] o_ls = [] for ul in user_labels: t = (str(ul['name']), [str(i) for i in ul['dominates']]) u_ls += [t] for ol in object_labels: t = (str(ol['name']), [str(i) for i in ol['dominates']]) o_ls += [t] read_policy = policy['read'] r_p = [] for p in read_policy: t = (str(p['object_label']), str(p['user_label'])) r_p += [t] conf.object_label_hierarchy = o_ls conf.user_label_hierarchy = u_ls conf.add_policy("read", r_p) lbac = LBAC(conf) return lbac
def complext_test(): conf = Configuration() conf.object_label_hierarchy = [\ ("o1",["o2","o3"]),\ ("o2",["o4"]),\ ("o5",["o4","o6"])\ ] conf.user_label_hierarchy = [\ ("u1",["u2"]),\ ("u3",["u1"])\ ] #conf.policy = [ ("o5","u1") ] conf.add_policy("write", [ ("o5","u1") ] ) conf.add_policy("read",[ ("o1","u3"), ("o5","u3")] ) lbac = LBAC(conf) print lbac.acl print lbac.request(user="******",object="o6",action="read")