Я настраиваю сайт с помощью Cakephp, который я очень новичок в использовании. Я создал форму в качестве администратора, которая является частью курса. Обычный пользователь затем записывается на этот курс и должен заполнить эту форму как часть курса. У меня есть страница, настроенная в контроллере CoursesEnrolled, и мне нужен обычный пользователь, чтобы иметь возможность доступа к форме (из контроллера форм). В настоящее время, когда я нажимаю на ссылку, чтобы перейти к форме, я получаю предупреждение «Предупреждение! У вас нет прав доступа к этому местоположению».
Ниже приведен мой код на странице «Формы / добавить» (где находится форма):
class FormsController extends AppController
{
public function isAuthorized($user){
// Account denied by admin
if ($user['role'] == 'denied' || $user['role'] == 'archived') {
return false;
}
//Everyone has basic view
if (in_array($this->request->action, ['index','view','add'])) {
return true;
}
//only admin can delete
return parent::isAuthorized($user);
}
А внутри надстройки ():
//allow user to add form from formTemplates
$conditions = $this->buildConditions($this->Forms->FormTemplates);
$userView = false;
if(!$this->isAdmin()){
$conditions['Forms.user_id'] = $this->Auth->user('id');
$userView = true;
}
$this->paginate = [
'contain' => ['Users','FormTemplates'],
'conditions'=>$conditions
];
$this->set(compact('form', 'formTemplate', 'preview','userView'));
Сама форма была создана в контроллере FormTemplates. Таблицы Forms и CoursesEnrolled связаны через user_id.
Я не уверен, что я делаю здесь неправильно, поэтому любая помощь будет высоко ценится.