No, you just need to:
- Change
transfer(...)totransferFrom(mag.sender, ...)and redeploy your contract - Execute
token.approve(airdropContractAddress, sumOfAllAmounts)using your wallet - Execute
airdropContract.batchTransferERC20(...)using your wallet
As recommended in one of the answers above, consider using OpenZeppelin safeTransferFrom.