def apply(self, transaction, state): payload = IdentityPayload() payload.ParseFromString(transaction.payload) id_type = payload.type data = payload.data if id_type == IdentityPayload.ROLE: _set_role(data, state) elif id_type == IdentityPayload.POLICY: _set_policy(data, state) else: raise InvalidTransaction("The IdentityType must be either a" " ROLE or a POLICY")
def create_policy_transaction(self, name, rules): rules_list = rules.split("\n") entries = [] for rule in rules_list: rule = rule.split(" ") if rule[0] == "PERMIT_KEY": entry = Policy.Entry(type=Policy.PERMIT_KEY, key=rule[1]) entries.append(entry) elif rule[0] == "DENY_KEY": entry = Policy.Entry(type=Policy.DENY_KEY, key=rule[1]) entries.append(entry) policy = Policy(name=name, entries=entries) payload = IdentityPayload(type=IdentityPayload.POLICY, data=policy.SerializeToString()) return self._create_tp_process_request(payload)
def create_role_transaction(self, name, policy_name): role = Role(name=name, policy_name=policy_name) payload = IdentityPayload(type=IdentityPayload.ROLE, data=role.SerializeToString()) return self._create_tp_process_request(payload)