私はCakePHPにかなり慣れていません。イベントを作成したユーザーのみがイベントを編集または削除できるようにしようとしているので、現在のユーザーIDを現在のイベントの「user_id」フィールドと比較しています(ユーザーがイベントを作成するときに保存されます)。私のコード(Andrew Perk)は次のとおりです。
public function isAuthorized($user) {
$this->loadModel('User');
if ($user['role'] == 'admin') {
return true;
}
if (in_array($this->action, array('edit', 'delete'))) {
if ($user['id'] != $this->request->data['Event']['user_id']) { ///THIS IS THE LINE I FEEL IS WRONG - PLEASE ADVISE
//echo debug($event['user_id']);
//$this->Session->setFlash(__('You are not allowed to edit someones event'));
return false;
}
}
return true;
}