Donald Trump fired Acting Attorney General Sally Yates for ordering Justice Department lawyers to stop defending Trump’s #MuslimBan executive order. Yates had announced in a January 30 letter to Justice Department lawyers that

My responsibility is to ensure that the position of the Department of Justice is not only legally defensible, but is informed by our best view of what the law is after consideration of all the facts. In addition, I am responsible for ensuring that the positions we take in court remain consistent with this institution’s solemn obligation to always seek justice and stand for what is right. At present, I am not convinced that the defense of the Executive Order is consistent with these responsibilities nor am I convinced that the Executive Order is lawful.

Consequently, for as long as I am the Acting Attorney General, the Department of Justice will not present arguments in defense of the Executive Order, unless and until I become convinced that it is appropriate to do so.

A furious Trump claimed that Yates had “betrayed the Department of Justice by refusing to enforce a legal order designed to protect the citizens of the United States.” The president claimed Yates had determined that the executive order was indefensible for political reasons, arguing that “Ms. Yates is an Obama Administration appointee who is weak on borders and very weak on illegal immigration.”

Trump found an acting attorney general who would take the case into the courts, and now he has an attorney general, Jeff Sessions, who will presumably continue to do the president’s bidding.

But Trump’s power play did not settle the matter. There remained the question of who was right about the merits of the president’s case: Sally Yates, the veteran Justice Department lawyer who spoke at her US Senate confirmation hearing about an “obligation to follow the law and the Constitution”? Or Donald Trump, the non-lawyer who claimed Yates was a political hack?

Now we have an answer. A three-judge panel of the US Court of Appeals for the Ninth Circuit unanimously rejected the Trump administration’s pleas that the travel ban be allowed take effect. Citizens of seven Muslim-majority countries that Trump had tried to bar from entering the United States with last month’s order can continue to travel to this country.

Why? Trump’s lawyers made the case that the president demanded. The judges responded that “the Government has not shown a likelihood of success on the merits of its appeal, nor has it shown that failure to enter a stay would cause irreparable injury, and we therefore deny its emergency motion for a stay.”

Embracing arguments presented by the states of Washington and Minnesota, the appeals court panel noted that “The government has pointed to no evidence that any alien from any of the countries named in the order has perpetrated a terrorist attack in the United States,” the judges wrote. “Rather than present evidence to explain the need for the Executive Order, the government has taken the position that we must not review its decision at all.”

That appeals-court decision enraged Trump. He claimed on Thursday night that the ruling was “a political decision” and tweeted: “SEE YOU IN COURT.”

But, Washington State Solicitor General Noah Purcell told CNN, “The irony from our perspective is that we’ve seen him in court twice now, and we’ve won both times. It’s not like it doesn’t count until you get to the Supreme Court.”

Purcell was making reference to last week’s decision by Federal Judge James Robart to suspend the president’s ban—Trump dismissed Robart as a “so-called judge”—and to the decision of the appeals court panel to uphold the the earlier ruling.

The appeals court decision was not a close call. The judges were absolutely clear in their rejection of the absurd argument, made by Trump’s lawyers, that the president’s abuse of his executive power could not be reviewed by the courts.

“Although our jurisprudence has long counseled deference to the political branches on matters of immigration and national security, neither the Supreme Court nor our court has ever held that courts lack the authority to review executive action in those arenas for compliance with the Constitution,” explained the three-judge panel.

“There is,” the judges concluded, “no precedent to support this claimed unreviewability, which runs contrary to the fundamental structure of our constitutional democracy.”

That was an extraordinary smackdown for the president’s position. “Bottom line,” declared Washington state Attorney General Bob Ferguson, “this is a complete victory for the state of Washington.”

It was also a victory for the position taken by the acting attorney general who determined that the #MuslimBan was indefensible.

Sally Yates was right.

Donald Trump was wrong.