私は恥ずかしいです。PHPの場合
私は、ユーザーの現在のログに記録されたが何であるかを確認するために3つの機能を持っている:
public function isAuthor(User $user)
{
return $user->getId() === $this->getDestination();
}
public function isSupervisor(User $user)
{
return $user->getId() === $this->getFirstApprover();
}
public function isSecondApprover(User $user)
{
return $user->getId() === $this->getSecondApprover();
}
そして私は、ユーザーが上記の3つを言及したのいずれかであるかどうかを確認するために私の行動の内側に条件を追加します。彼がそれらのいずれかでない場合、アクセスは拒否される必要があります。ユーザーは複数の場合もありますが、主に3つのうちの1つだけです。
私はこのような何かの最初の考えていたが、明らかにそれは、ユーザがそれらの一つであるかどうかを確認するための最良の方法だろう何
if (!$object->isAuthor($this->getUser()) || !$object->isSupervisor($this->getUser()) || !$object->isSecondApprover($this->getUser())) {
throw new AccessDeniedException();
}
を動作することはできませんか?私は全く新しい機能を作り出すべきですか?
私はこのようなものを使用する必要があります。
if (!$object->isAuthor($this->getUser())) {
throw new AccessDeniedException();
} elseif (!$object->isSupervisor($this->getUser())) {
throw new AccessDeniedException();
}
私は他の人からいくつかの考えや入力を持っていただけますか?私は今本当に混乱しているので。 はまだここに初心者
最初のif条件の試行で '||'の代わりに '&&'を使用してください。 – jitendrapurohit
* "明らかに動作しません" * - なぜですか?ブール論理を混ぜ合わせただけです。あなたは 'Xではなく、Yではなく、Zでない '、言い換えれば*は「これらのどれも」*ではありません。現在、あなたは*「これらのどれかが間違っていれば」を表現しています* ... – deceze