public function savePwd($userId) { if (!Auth::compareIds($userId, App::$instance)) { $this->error('403'); } Token::checkToken(); $request = Request::createFromGlobals(); $request = $request->request; //check pass $this->validator->validate(['Старый пароль' => [$request->get('old_pwd'), 'required'], 'Новый_пароль' => [$request->get('new_pwd'), 'required|min(5)|max(25)|pwd'], 'Новый пароль подтверждение' => [$request->get('new_pwd_confirm'), 'required|matches(Новый_пароль)']]); //if no passes if (!$this->validator->passes()) { App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } $oldPwd = md5($request->get('old_pwd')); if (User::where("id", $userId)->where('password', $oldPwd)->count()) { $user = User::find($userId); $user->password = md5($request->get('new_pwd')); try { $user->save(); } catch (Exception $e) { App::$instance->MQ->setMessage('Ошибка при сохранении'); } App::$instance->MQ->setMessage('Пароль обновлен'); ST::redirect("back"); } else { App::$instance->MQ->setMessage('Старый пароль введен не верно'); ST::redirect("back"); } }
public function store() { Token::checkToken(); $xml = new SimpleXMLElement('<root/>'); // dump($this->request->request->get('modules')); // die; if ($this->request->request->has('modules')) { foreach ($this->request->request->get('modules') as $module) { $this->validator->validate(['name' => [$module['name'], 'required|max(255)'], 'description' => [$module['description'], 'required|max(560)'], 'help' => [$module['help'], 'required|max(1000)'], 'value' => [$module['value'], 'between(0,1)']]); //if no passes if (!$this->validator->passes()) { $this->putUserDataAtBackPack($this->request); App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } $srvXml = $xml->addChild('module'); $srvXml->addAttribute('name', $module['name']); $srvXml->addAttribute('description', $module['name']); $srvXml->addAttribute('help', $module['help']); $srvXml->addAttribute('value', intval($module['value'])); } } $xml->asXML("config/modules-cfg.xml"); App::$instance->MQ->setMessage('Список обновлен'); App::$instance->log->logWrite(LOG_CONFIG_CHANGE, 'Изменен список модулей системы'); ST::redirect("back"); }
public function login() { $categories = $this->category->getAllCategories(); $Products = $this->product->getAllProducts(); if (isset($_POST['submit'])) { //$user =$this->loadModel('UserModel'); $validator = $this->loadModel('Validator'); $this->security->post_secx(); // get data $validator->setData('input_user', htmlentities($_POST['userName'], ENT_QUOTES)); $validator->setData('input_pass', htmlentities($_POST['password'], ENT_QUOTES)); // validate data if ($_POST['userName'] == '' || $_POST['password'] == '') { // show error if ($_POST['userName'] == '') { $validator->setData('error_user', 'required field!'); } if ($_POST['password'] == '') { $validator->setData('error_pass', 'required field!'); } require APP . 'view/user/login.php'; } if (Token::checkToken($_POST['token']) == true) { $result = $this->user->validateUser($validator->getData('input_user'), $validator->getData('input_pass')); switch ($result) { case 'valid': header('location:' . URL); break; case 'invalid': $validator->setData('login_fail', 'invalid user or password'); require APP . 'view/user/login.php'; break; case 'blocked': $validator->setData('login_fail', 'you are blocked for 30 minutes'); require APP . 'view/user/login.php'; break; default: # code... break; } } } else { require APP . 'view/user/login.php'; } }
public function update($id) { Auth::isAdminOrDie(App::$instance); Token::checkToken(); $request = $this->request->request; $this->validator->validate(['Префикс' => [$request->get('prefix'), 'required|int'], 'Название' => [$request->get('name'), 'required|max(255)']]); //if no passes if (!$this->validator->passes()) { App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } $dep = Department::findOrFail($id); $dep->fill($request->all()); $dep->save(); App::$instance->MQ->setMessage("Успешно отредактировано"); App::$instance->log->logWrite(LOG_CONFIG_CHANGE, 'Подразделение отредактировано' . $dep->name); ST::redirectToRoute('Departments/index'); }
public function update($id) { $this->isDefaultUserIteractBlock($id); Auth::isAdminOrDie(App::$instance); Token::checkToken(); $request = $this->request->request; $this->validator->validate(['Название' => [$request->get('name'), 'required|max(255)']]); //if no passes if (!$this->validator->passes()) { App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } $nitiator = Initiator::findOrFail($id); $nitiator->fill($request->all()); $nitiator->save(); App::$instance->MQ->setMessage("Успешно отредактировано"); App::$instance->log->logWrite(LOG_CONFIG_CHANGE, 'Инициатор отредактирован' . $nitiator->name); ST::redirectToRoute('Initiators/index'); }
public function addCommment() { if (isset($_POST['submit'])) { $productId = $_POST['productId']; $validator = $this->loadModel('Validator'); $Products = $this->product->getProductById($productId); $Comments = $this->comment->getAllCommentsByProductId($productId); $this->security->post_secx(); $validator->setData('input_productId', htmlentities($_POST['productId'], ENT_QUOTES)); $validator->setData('input_name', htmlentities($_POST['name'], ENT_QUOTES)); $validator->setData('input_email', htmlentities($_POST['email'], ENT_QUOTES)); $validator->setData('input_comments', htmlentities($_POST['comments'], ENT_QUOTES)); if ($_POST['name'] == '' || $_POST['email'] == '' || $_POST['comments'] == '') { // show error if ($_POST['name'] == '') { $validator->setData('error_name', 'required field!'); } if ($_POST['email'] == '') { $validator->setData('error_email', 'required field!'); } if ($_POST['comments'] == '') { $validator->setData('error_comments', 'required field!'); } require APP . 'view/product/productDetails.php'; //header('location:'.URL.'Product/ProductDetails?id='.$productId); } else { if (!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\\._-]+)+\$/", $_POST['email'])) { $validator->setData('error_email', 'invalid email'); require APP . 'view/product/productDetails.php'; } else { if (Token::checkToken($_POST['token']) == true) { $this->comment->addNewComment($validator->getData('input_productId'), $validator->getData('input_comments'), $validator->getData('input_name'), $validator->getData('input_email')); header('location:' . URL . 'product/productDetails?id=' . $productId); } } } } }
public function storeHelp() { Token::checkToken(); $xml = new SimpleXMLElement('<root/>'); if ($this->request->request->has('help')) { foreach ($this->request->request->get('help') as $help) { $this->validator->validate([$help['humanized'] => [$help['content'], 'required|max(320)']]); //if no passes if (!$this->validator->passes()) { $this->putUserDataAtBackPack($this->request); App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } $srvXml = $xml->addChild('element'); $srvXml->addChild('humanized', $help['humanized']); $srvXml->addChild('name', $help['name']); $srvXml->addChild('content', $help['content']); } $xml->asXML("config/help_standart.xml"); App::$instance->MQ->setMessage('Список обновлен'); App::$instance->log->logWrite(LOG_CONFIG_CHANGE, 'изменены сообщения помощи'); } else { App::$instance->MQ->setMessage('Нет обязательного параметра'); } return ST::redirectToRoute('index/index'); }
public function storeColors() { Token::checkToken(); if ($this->request->request->has('color')) { // dump($this->request->request->get('color')); foreach ($this->request->request->get('color') as $color) { // dump($color); // die; $this->validator->validate(['Имя плашки для ' . $color['name'] => [$color['name'], 'required'], 'Описание для ' . $color['name'] => [$color['description'], 'required'], 'Фоновый цвет в ' . $color['name'] => [$color['backgroundColor'], 'required'], 'Цвет границы ' . $color['name'] => [$color['borderColor'], 'required'], 'Цвет текста ' . $color['name'] => [$color['textColor'], 'required']]); //if no passes if (!$this->validator->passes()) { $this->putUserDataAtBackPack($this->request); App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } } //prepare for json save $result = array(); foreach ($this->request->request->get('color') as $color) { $result[$color['name']] = array('description' => $color['description'], 'backgroundColor' => "#" . $color['backgroundColor'], 'borderColor' => "#" . $color['borderColor'], 'textColor' => "#" . $color['textColor']); } $result = array_merge($this->getDefaultColors(), $result); // dump($result); // die; $user = User::find(App::$instance->user->id); $user->colors = json_encode($result); $user->save(); App::$instance->user->colors = json_encode($result); App::$instance->MQ->setMessage('Цветовая схема обновлена'); } else { App::$instance->MQ->setMessage('Не задан обязательный элемент, цветвоая схема не сохранена'); } ST::redirect("back"); }
public function joinCaCreate($referral = false) { Token::checkToken(); $request = $this->request->request; if ($referral) { $request->set('referrer', $referral); } $this->validator->validate(['Приглашение от ЦА' => [$request->get('referrer'), 'required']]); //if no passes if (!$this->validator->passes()) { App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } //check codes $caWS = CAVks::where('referral', $request->get('referrer'))->with('owner', 'connection_codes', 'insideParp', 'phoneParp', 'outsideParp')->first(); $caNS = CAVksNoSupport::where('referral', $request->get('referrer'))->first(); if (!$caWS && !$caNS) { App::$instance->MQ->setMessage("Приглашение {$request->get('referrer')} не действительно"); ST::redirectToRoute("Vks/select"); } $caVks = $caWS ? $caWS : $caNS; $this->convertToLocalTime($caVks); $valid = true; if (isset($caVks->status)) { if (!in_array($caVks->status, [VKS_STATUS_APPROVED, VKS_STATUS_TRANSPORT_FOR_TB])) { $valid = false; } } else { if (!in_array($caVks->status, [VKS_STATUS_APPROVED, VKS_STATUS_TRANSPORT_FOR_TB])) { $valid = false; } } if (!$valid) { App::$instance->MQ->setMessage("Приглашение {$request->get('referrer')} не действительно, в ЦА поменяли статус этой ВКС и теперь она недоступна"); ST::redirectToRoute("Vks/select"); } //my tb is can be accepted? $participants = isset($caVks->insideParp) ? $caVks->insideParp : $caVks->participants; $flag = false; foreach ($participants as $parp) { if ($parp->attendance_id == App::$instance->tbId) { $flag = true; } } $referral = $request->get('referrer'); if ($this->isAlreadyEnd(date_create($caVks->end_date_time))) { App::$instance->MQ->setMessage("Приглашение {$request->get('referrer')} не действительно, ВКС уже закончилась", 'danger'); ST::redirectToRoute("Vks/select"); } if (!$flag && $caVks->local->start_date_time->getTimestamp() - date_create()->getTimestamp() < 1800) { App::$instance->MQ->setMessage("Ваш ТБ не заявлен на эту ВКС и до начала ВКС осталось менее 30 минут, заявиться на такую ВКС уже не получится, обратитесь к администратору системы", 'danger'); ST::redirectToRoute("Vks/select"); } $departments = Department::orderBy('prefix')->get(); $vks = ST::lookAtBackPack(); $vks = $vks->request; if (!$vks->has('inner_participants') && !count($vks->get('inner_participants'))) { LocalStorage_controller::staticRemove('vks_participants_create'); } $available_points = Attendance::techSupportable()->get()->toArray(); array_walk($available_points, function (&$e) { $e['selectable'] = true; }); $this->render('vks/joinCa', compact('vks', 'caVks', 'departments', 'referral', 'flag', 'available_points')); }