def apply_confirm(header, payload, state): confirm_payload = role_transaction_pb2.ConfirmAddRoleAdmin() confirm_payload.ParseFromString(payload.content) role_admin_address = addresser.make_role_admins_address( role_id=confirm_payload.role_id, user_id=confirm_payload.user_id ) txn_signer_admin_address = addresser.make_role_admins_address( role_id=confirm_payload.role_id, user_id=header.signer_public_key ) state_entries = role_validator.get_state_entries( header=header, confirm=confirm_payload, txn_signer_rel_address=txn_signer_admin_address, state=state, ) state_change.confirm_role_action( state_entries=state_entries, header=header, confirm=confirm_payload, role_rel_address=role_admin_address, state=state, )
def hierarchical_decide(header, payload, state, isApproval): confirm = role_transaction_pb2.ConfirmAddRoleAdmin() confirm.ParseFromString(payload.content) txn_signer_admin_address = addresser.role.admin.address( confirm.role_id, confirm.on_behalf_id) role_operation.hierarchical_decide(header, confirm, state, txn_signer_admin_address, isApproval)
def confirm_add_role_admins(txn_key, batch_key, proposal_id, role_id, user_id, reason): """Creates a BatchList with a ConfirmAddRoleAdmin transaction in it. Args: txn_key (Key): The txn signer key pair. batch_key (Key): The batch signer key pair. proposal_id (str): The proposal's identifier. role_id (str): The role's identifier. user_id (str): The user's signer public key. reason (str): The client supplied reason to confirm. Returns: tuple BatchList, batch header_signature tuple """ confirm_add_payload = role_transaction_pb2.ConfirmAddRoleAdmin( proposal_id=proposal_id, role_id=role_id, user_id=user_id, reason=reason) inputs = [ addresser.role.admin.address(role_id, txn_key.public_key), addresser.user.address(txn_key.public_key), ] inputs.append(addresser.proposal.address(role_id, user_id)) outputs = [ addresser.proposal.address(role_id, user_id), addresser.role.admin.address(role_id, user_id), ] rbac_payload = rbac_payload_pb2.RBACPayload( content=confirm_add_payload.SerializeToString(), message_type=rbac_payload_pb2.RBACPayload.CONFIRM_ADD_ROLE_ADMIN, inputs=inputs, outputs=outputs, ) return make_header_and_batch(rbac_payload, inputs, outputs, txn_key, batch_key)