예제 #1
0
 public function editaccessAction()
 {
     $id = $this->getParam('id');
     $access = new Application_Model_DbTable_Access();
     $allow = new Application_Model_DbTable_Allow();
     // Если к нам идёт Post запрос
     if ($this->getRequest()->isPost()) {
         // Принимаем его
         $formData = $this->getRequest()->getPost();
         //принимаем данные
         if (!preg_match("/^[a-z0-9]{5,15}\$/i", $formData['username'])) {
             //проверка регулярных выражений
             $error['username'] = '******';
             //записываем несовпадение правилам
         }
         if (!preg_match("/^[a-z0-9]{5,15}\$/i", $formData['password'])) {
             //проверка регулярных выражений
             $error['password'] = '******';
             //записываем несовпадение правилам
         }
         if (!preg_match("/^[a-z]{5,6}\$/i", $formData['role'])) {
             //проверка регулярных выражений
             $error['role'] = 'error';
             //записываем несовпадение правилам
         }
         //создаем массив данных из пунктов где нажаты галочки
         foreach ($formData as $data => $value) {
             if (preg_match("/check/", $data)) {
                 //ищем переменные check
                 if (!$error) {
                     $check_data[substr($data, 6)] = $value;
                     if ($data == 'check_set_names' && $value == 'names') {
                         $check_data['set_addname'] = 'addname';
                         $check_data['set_editname'] = 'editname';
                         $check_data['set_deletename'] = 'deletename';
                     }
                     if ($data == 'check_set_types' && $value == 'types') {
                         $check_data['set_addtype'] = 'addtype';
                         $check_data['set_edittype'] = 'edittype';
                         $check_data['set_deletetype'] = 'deletetype';
                     }
                     if ($data == 'check_set_owners' && $value == 'owners') {
                         $check_data['set_addowner'] = 'addowner';
                         $check_data['set_editowner'] = 'editowner';
                         $check_data['set_deleteowner'] = 'deleteowner';
                     }
                     if ($data == 'check_set_users' && $value == 'users') {
                         $check_data['set_adduser'] = '******';
                         $check_data['set_edituser'] = '******';
                         $check_data['set_deleteuser'] = '******';
                     }
                     if ($data == 'check_set_status' && $value == 'status') {
                         $check_data['set_addstatus'] = 'addstatus';
                         $check_data['set_editstatus'] = 'editstatus';
                         $check_data['set_deletestatus'] = 'deletestatus';
                     }
                     if ($data == 'check_set_prices' && $value == 'prices') {
                         $check_data['set_addprices'] = 'addprices';
                         $check_data['set_editprices'] = 'editprices';
                         $check_data['set_deleteprices'] = 'deleteprices';
                     }
                     if ($data == 'check_set_access' && $value == 'access') {
                         $check_data['set_addaccess'] = 'addaccess';
                         $check_data['set_editaccess'] = 'editaccess';
                         $check_data['set_deleteaccess'] = 'deleteaccess';
                     }
                 } else {
                     $check_data[$data] = 'checked';
                 }
             }
         }
         //если нет ошибкок
         if (!$error) {
             //Изменяем данные в базе
             $access->editAccess($id, $formData['username'], md5($formData['password']), $formData['role']);
             $allow->editAllow($check_data, $formData['username']);
             //Переходим на предыдущую страницу
             $this->_helper->redirector('access', 'setup');
             //если есть ошибки
         } else {
             $this->view->error = $error;
             $this->view->username = $formData['username'];
             $this->view->check_data = $check_data;
         }
     } else {
         $userdata = $access->getAccess($id);
         $check_data = $allow->fetchRow($allow->select()->where('username = ?', $userdata['username']))->toArray();
         foreach ($check_data as $data => $value) {
             if ($value) {
                 $check_data["check_" . $data] = 'checked';
             }
         }
         $this->view->username = $userdata['username'];
         $this->view->role = $userdata['role'];
         $this->view->check_data = $check_data;
     }
 }