あのさ、ちょっと教えて。

User というクラスと、 なんか適当なオブジェクト(例えば Item とか) があたとするよな。

それで、このItemはUserによって編集できたりできなかったりするわけだ。
その場合、この権限のチェックはどのクラスにどういった感じで実装するのがいい?

class Item
{
  function canEdit(User $user) {
    // なんかの処理
    return true;
  }
}

みたいな感じにするのがいいのか、User クラスに実装するのがいいのか、それとも別のクラスを作成したほうがいいのか。
おしえてガリレオ!