Theresa May is struggling with two errant cabinet ministers whom she has been urged to sack. And that's aside from those tangled up in Westminster's sexual misconduct scandal.

Priti Patel, the International Development Secretary, held numerous undisclosed meetings in Israel (including with the Prime Minister Benjamin Netanyahu) and misled the press about them by suggesting the Foreign Office knew of her visit. She then issued an astonishing apology – which you can read on the government website – correcting her previous remarks to the Guardian basically line-by-line.

But the Foreign Office can claim no moral high ground, with its secretary of state Boris Johnson potentially condemning a British woman to five more years in an Iranian prison. He told a select committee that 38-year-old Nazanin Zaghari-Ratcliffe was in the country "simply teaching people journalism" – a comment that contradicts her claim to be on holiday. The Iranian authorities are bringing her back to court on charges of "propaganda against the regime".

Opposition politicians are calling on the Prime Minister to fire these ministers. The HuffPost says May reprimanded Patel yesterday morning, reminding her of her "obligations" to comply with the ministerial code, but she remains in her position. The PM is also looking at tightening the ministerial code.

The Foreign Office said Johnson's remarks had been misinterpreted, but the Times has the story that senior Tories are preparing to call for Johnson to resign unless he owns his mistake; he is being urged to make a Commons statement.

But it doesn't look like either of them are going anywhere. This puts May's weakness in a stark light – under any other circumstances, argues James Kirkup in the Spectator, Patel would have been sacked; her apology is "an extraordinary statement" that "says something quite profound about the extraordinary politics of our times".

Yes, a prime minister with more parliamentary support would have felt empowered to sack blundering ministers like Patel and Johnson rather than tinkering around with the ministerial code. Yet there is something else at play here that existed well before May lost the Tories their majority.

Civil servants have long complained that the PM has tried to run government like she ran the Home Office. Micromanaging, disregarding the priorities of non-domestic departments, and therefore pushing certain ministers to go rogue and run their departments like fiefdoms in response to an untrusting No 10. (The Department for Exiting the European Union has similarly alienated other departments, behaving like a "school bully" to some officials).

Indeed, when Patel (one of cabinet's most zealous Brexiteers) was made International Development Secretary, it was thought that this was basically to get her abroad and out of the way. It sort of worked for a bit, but the Israel case is the logical conclusion of such a plan. And it didn't work at all with Johnson, who has stuck his oar in on Brexit and domestic policy as he pleases.

Patel and Johnson may be unsuitable ministers, but this reflects a prime minister who is not the most suited to running a government.