Example #1
0
def apply_reject(header, payload, state):
    reject_payload = task_transaction_pb2.RejectAddTaskAdmin()
    reject_payload.ParseFromString(payload.content)

    txn_signer_admin_address = addresser.make_task_admins_address(
        task_id=reject_payload.task_id, user_id=header.signer_public_key)

    state_entries = validate_task_admin_or_owner(header, reject_payload,
                                                 txn_signer_admin_address,
                                                 state)

    handle_reject(state_entries, header, reject_payload, state)
def apply_confirm(header, payload, state):
    confirm_payload = task_transaction_pb2.ConfirmAddTaskOwner()
    confirm_payload.ParseFromString(payload.content)

    task_owners_address = addresser.make_task_owners_address(
        task_id=confirm_payload.task_id, user_id=confirm_payload.user_id)

    txn_signer_admin_address = addresser.make_task_admins_address(
        task_id=confirm_payload.task_id, user_id=header.signer_public_key)

    state_entries = validate_task_admin_or_owner(header, confirm_payload,
                                                 txn_signer_admin_address,
                                                 state)

    handle_confirm_add(state_entries=state_entries,
                       header=header,
                       confirm=confirm_payload,
                       task_rel_address=task_owners_address,
                       state=state)
def apply_confirm(header, payload, state, is_remove=False):
    """Apply the (Add | Remove) TaskOwners transaction.

    Args:
        header (TransactionHeader): The protobuf TransactionHeader.
        payload (RBACPayload): The protobuf RBACPayload.
        state (Context): The class that handles state gets and sets.
        is_remove (boolean): Determines if task owner is being added or removed.

    Raises:
        InvalidTransaction:
            - The transaction is invalid.
    """

    if not is_remove:
        confirm_payload = task_transaction_pb2.ConfirmAddTaskOwner()
    else:
        confirm_payload = task_transaction_pb2.ConfirmRemoveTaskOwner()

    confirm_payload.ParseFromString(payload.content)

    task_owners_address = addresser.make_task_owners_address(
        task_id=confirm_payload.task_id, user_id=confirm_payload.user_id)

    txn_signer_admin_address = addresser.make_task_admins_address(
        task_id=confirm_payload.task_id, user_id=header.signer_public_key)

    state_entries = validate_task_admin_or_owner(
        header=header,
        confirm=confirm_payload,
        txn_signer_rel_address=txn_signer_admin_address,
        task_rel_address=task_owners_address,
        state=state,
        is_remove=is_remove)

    handle_confirm(state_entries=state_entries,
                   header=header,
                   confirm=confirm_payload,
                   task_rel_address=task_owners_address,
                   state=state,
                   is_remove=is_remove)