Есть форма заполнения на сайте и ее могут заполнять пользователи и админ, но пока что редактировать и удалять только может админ
Нужно сделать так что бы пользователь который добавил данные, только он мог изменять эти данные, другие пользователи нет
Таблица базы данных одна.
К примеру:
id | user_id | name | surname | и так далее..
Как сделать так что бы при добавление формы это числилось на счет уникального пользователя для каждого отдельно, только он ну и конечно администратор мог редактировать и удалять данные.
Вот model.php
<?php class modelStreetball extends cmsModel { public function addBattle($battle){ return $this->insert('photobattles', $battle); } public function updateBattle($id, $battle){ return $this->update('photobattles', $id, $battle); } public function deleteBattle($id){ $config = cmsConfig::getInstance(); $battle = $this->getBattle($id); $logos = self::yamlToArray($battle['logo']); foreach($logos as $path){ } } return $this->delete('photobattles', $id); } public function getBattle($id){ return $this->getItemById('photobattles', $id); } public function getBattles(){ return $this->get('photobattles'); } public function getBattlesCount(){ return $this->getCount('photobattles'); } }
<?php class actionStreetballAdd extends cmsAction { public function run(){ $errors = false; $form = $this->getForm('battle'); $is_submitted = $this->request->has('submit'); $battle = $form->parse($this->request, $is_submitted); $user = cmsUser::getInstance(); if ($is_submitted){ $errors = $form->validate($this, $battle); $errors = $errors && cmsUser::isAllowed('streetball', 'add'); if (!$errors){ $battle_id = $this->model->addBattle($battle); $battle['user_id'] = $user->id; } if ($errors){ cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error'); } } $template = cmsTemplate::getInstance(); 'do' => 'add', 'form' => $form, 'errors' => $errors, 'battle' => $battle )); } }
<?php class actionStreetballEdit extends cmsAction { public function run($id=false){ if (!$id) { cmsCore::error404(); } $user = cmsUser::getInstance(); $battle = $this->model->getBattle($id); if (!$battle) { cmsCore::error404(); } $is_edit = $user->is_admin || cmsUser::isAllowed('streetball', 'edit', 'all') || ( cmsUser::isAllowed('streetball', 'edit', 'own') && $battle['user_id']==$user->id ); if (!$is_edit) { cmsCore::error404(); } $errors = false; $form = $this->getForm('battle'); $is_submitted = $this->request->has('submit'); if ($is_submitted){ $battle = $form->parse($this->request, $is_submitted); $errors = $form->validate($this, $battle); if (!$errors){ $this->model->updateBattle($id, $battle); } if ($errors){ cmsUser::addSessionMessage(LANG_FORM_ERRORS, 'error'); } } $template = cmsTemplate::getInstance(); 'do' => 'edit', 'form' => $form, 'errors' => $errors, 'battle' => $battle )); } }
<?php $this->setPageTitle($battle['title']); $this->addBreadcrumb(LANG_PHOTOBATTLE_CONTROLLER, $this->href_to('')); $this->addBreadcrumb($battle['title']); if (cmsUser::isAdmin()){ 'class' => 'edit', 'title' => LANG_PHOTOBATTLE_EDIT, 'href' => $this->href_to('edit', $battle['id']) )); 'class' => 'delete', 'title' => LANG_PHOTOBATTLE_DELETE, 'href' => $this->href_to('delete', $battle['id']) )); } ?>