Can the owner of a token transfer that token if they are not the owner of the contract?

I deployed an ERC-1155 contract that mints some tokens and I am wondering how the ownership works. ie The tokens are minted and owned by the same wallet that owns the contract and they can then be transferred to another wallet no problem. But I am curious can that wallet then transfer them to another wallet as they are the owner of the token but not the contract where the transfer function lives so can that wallet call the transferFrom function if they wish to sell the token?
A weird thing is that when the tokens are monted, Opensea can see them but once they are transferred Opensea does not see them even though I can see the transfer was succesful on polygonscan.
This is my contract:

//SPDX-License-Identifier: UNLICENSED

import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "@openzeppelin/contracts/utils/Context.sol";
import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol";

pragma solidity ^0.8.0;

contract MyContract is ERC1155, Ownable {

    //public unint16 totalTokens = 5;
    string public name;
    string public symbol;

    constructor() ERC1155("https://bafybeic3s5lnqldp2poeoyilwhxf672huzqvjk4imd2effxxbjpycnir6a.ipfs.dweb.link/{id}.json") {
        //this should be in a for loop countind down from totaltokens to 0.
        _mint(msg.sender, 0, 1, "");
        _mint(msg.sender, 1, 1, "");
        _mint(msg.sender, 2, 1, "");
        _mint(msg.sender, 3, 1, "");
        _mint(msg.sender, 4, 1, "");

        name = "Live NFT test";
        symbol = "LFTT";

        super;
    }

    function uri(uint256 tokenId) override public view returns(string memory){
        return(
            string(abi.encodePacked(
                "https://bafybeic3s5lnqldp2poeoyilwhxf672huzqvjk4imd2effxxbjpycnir6a.ipfs.dweb.link/",
                Strings.toString(tokenId),
                ".json"
            ))
        );
    }
}

Any help would be gratefully received!

Hi,

If this is your contract nothing prevents that wallet, the one that doesn't own the contract but owns the token, from performing a transfer. There is no onlyOwner modifier in the transferFrom function.