From 91740016f78c8ba3a7017c65a640030a183b18d5 Mon Sep 17 00:00:00 2001 From: Dmitry Murzin Date: Mon, 8 Jul 2024 11:25:37 +0300 Subject: [PATCH] fix: Check that authority owns domain to transfer (#4807) Signed-off-by: Dmitry Murzin --- client/tests/integration/mod.rs | 2 +- ...wner_permissions.rs => transfer_domain.rs} | 54 +++++++++++++++++- configs/swarm/executor.wasm | Bin 501629 -> 501671 bytes core/src/smartcontracts/isi/domain.rs | 4 +- smart_contract/executor/src/default.rs | 2 +- 5 files changed, 56 insertions(+), 6 deletions(-) rename client/tests/integration/{domain_owner_permissions.rs => transfer_domain.rs} (87%) diff --git a/client/tests/integration/mod.rs b/client/tests/integration/mod.rs index c76d8dbbee5..d0d11bcbaae 100644 --- a/client/tests/integration/mod.rs +++ b/client/tests/integration/mod.rs @@ -1,6 +1,5 @@ mod asset; mod asset_propagation; -mod domain_owner_permissions; mod events; mod extra_functional; mod multisig; @@ -13,6 +12,7 @@ mod set_parameter; mod sorting; mod status_response; mod transfer_asset; +mod transfer_domain; mod triggers; mod tx_chain_id; mod tx_history; diff --git a/client/tests/integration/domain_owner_permissions.rs b/client/tests/integration/transfer_domain.rs similarity index 87% rename from client/tests/integration/domain_owner_permissions.rs rename to client/tests/integration/transfer_domain.rs index 7c2691ea443..f6f62a1d60c 100644 --- a/client/tests/integration/domain_owner_permissions.rs +++ b/client/tests/integration/transfer_domain.rs @@ -1,5 +1,9 @@ use eyre::Result; -use iroha::data_model::{prelude::*, transaction::error::TransactionRejectionReason}; +use iroha::{ + client::Client, + data_model::{prelude::*, transaction::error::TransactionRejectionReason}, +}; +use iroha_crypto::KeyPair; use iroha_executor_data_model::permission::{ account::CanUnregisterAccount, asset::CanUnregisterUserAsset, @@ -7,9 +11,11 @@ use iroha_executor_data_model::permission::{ domain::{CanRegisterAssetDefinitionInDomain, CanUnregisterDomain}, trigger::CanUnregisterUserTrigger, }; +use iroha_genesis::GenesisBlock; use iroha_primitives::json::JsonString; -use test_network::*; -use test_samples::{gen_account_in, ALICE_ID, BOB_ID}; +use test_network::{Peer as TestPeer, *}; +use test_samples::{gen_account_in, ALICE_ID, BOB_ID, SAMPLE_GENESIS_ACCOUNT_ID}; +use tokio::runtime::Runtime; #[test] fn domain_owner_domain_permissions() -> Result<()> { @@ -348,3 +354,45 @@ fn domain_owner_transfer() -> Result<()> { Ok(()) } + +#[test] +fn not_allowed_to_transfer_other_user_domain() -> Result<()> { + let mut peer = TestPeer::new().expect("Failed to create peer"); + let topology = vec![peer.id.clone()]; + + let users_domain: DomainId = "users".parse()?; + let foo_domain: DomainId = "foo".parse()?; + + let user1 = AccountId::new(users_domain.clone(), KeyPair::random().into_parts().0); + let user2 = AccountId::new(users_domain.clone(), KeyPair::random().into_parts().0); + let genesis_account = SAMPLE_GENESIS_ACCOUNT_ID.clone(); + + let instructions: [InstructionBox; 6] = [ + Register::domain(Domain::new(users_domain.clone())).into(), + Register::account(Account::new(user1.clone())).into(), + Register::account(Account::new(user2.clone())).into(), + Register::domain(Domain::new(foo_domain.clone())).into(), + Transfer::domain(genesis_account.clone(), foo_domain.clone(), user1.clone()).into(), + Transfer::domain(genesis_account.clone(), users_domain.clone(), user1.clone()).into(), + ]; + let genesis = GenesisBlock::test_with_instructions(instructions, topology); + + let rt = Runtime::test(); + let builder = PeerBuilder::new().with_genesis(genesis).with_port(11_110); + rt.block_on(builder.start_with_peer(&mut peer)); + let client = Client::test(&peer.api_address); + wait_for_genesis_committed(&[client.clone()], 0); + + let domain = client.request(FindDomainById::new(foo_domain.clone()))?; + assert_eq!(domain.owned_by(), &user1); + + // Client authority is "alice@wonderlang". + // `foo_domain` is owned by `user1@users`. + // Alice has no rights to `user1` or `foo_domain`. + // Therefore transaction should be rejected. + let transfer_domain = Transfer::domain(user1, foo_domain, user2); + let result = client.submit_blocking(transfer_domain); + assert!(result.is_err()); + + Ok(()) +} diff --git a/configs/swarm/executor.wasm b/configs/swarm/executor.wasm index 5a17bbb7aa83c955543d522649a62869e08ac20a..0fefcfab3a16f99bf13394c0edce678eef5e1c23 100644 GIT binary patch delta 53853 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 w-|-Bq(J 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 z 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 execute!(executor, isi), Ok(false) => {} } - match is_domain_owner(domain_id, source_id) { + match is_domain_owner(domain_id, authority) { Err(err) => deny!(executor, err), Ok(true) => execute!(executor, isi), Ok(false) => {}