public function replacePassword(Request $request, $accessKey) { $this->validate($request->data(), ['id' => 'required|integer|min:1', 'password' => 'required|min:6', 'password_confirm' => 'required|min:6|same:password']); $user = $this->getUserFromPasswordRecoveryAccessKey($accessKey); if (!empty($user) && $user->_getPkValue() !== $request->data('id')) { /** @var CmfDbObject $user */ $user->begin()->_setFieldValue('password', $request->data('password')); if ($user->commit()) { return cmfServiceJsonResponse()->setMessage(CmfConfig::transCustom('.replace_password.password_replaced'))->setRedirect(route(CmfConfig::getInstance()->login_route())); } else { return cmfServiceJsonResponse(HttpCode::SERVER_ERROR)->setMessage(CmfConfig::transCustom('.replace_password.failed_to_save')); } } else { return cmfServiceJsonResponse(HttpCode::FORBIDDEN)->setMessage(CmfConfig::transCustom('.replace_password.invalid_access_key'))->setRedirect(route(CmfConfig::getInstance()->login_route())); } }
private function getDataGridItems(Request $request) { $dataGridConfig = $this->getScaffoldConfig()->getDataGridConfig(); $dataGridFilterConfig = $this->getScaffoldConfig()->getDataGridFilterConfig(); $conditions = ['LIMIT' => $request->query('length', $dataGridConfig->getLimit()), 'OFFSET' => (int) $request->query('start', 0), 'ORDER' => []]; if ($dataGridConfig->hasContains()) { $conditions['CONTAIN'] = $dataGridConfig->getContains(); } $conditions = array_merge($dataGridConfig->getSpecialConditions(), $conditions); $searchInfo = $request->query('search'); if (!empty($searchInfo) && !empty($searchInfo['value'])) { $search = json_decode($searchInfo['value'], true); if (!empty($search) && is_array($search) && !empty($search['r'])) { $conditions = array_replace($dataGridFilterConfig->buildConditionsFromSearchRules($search), $conditions); } } $order = $request->query('order', [['column' => $dataGridConfig->getOrderBy(), 'dir' => $dataGridConfig->getOrderDirection()]]); $columns = $request->query('columns', array()); /** @var array $order */ foreach ($order as $config) { if (is_numeric($config['column']) && !empty($columns[$config['column']])) { $config['column'] = $columns[$config['column']]['name']; } if (!empty($config['column']) && !is_numeric($config['column'])) { if ($config['column'] instanceof DbExpr) { $conditions['ORDER'][] = DbExpr::create($config['column']->get() . ' ' . $config['dir']); } else { $conditions['ORDER'][$config['column']] = $config['dir']; } } } $result = $this->getModel()->selectWithCount(array_keys($dataGridConfig->getDbFields()), $conditions); if ($result['count'] > 0) { $result['records'] = $dataGridConfig->prepareRecords($result['records']); } return ['draw' => $request->query('draw'), 'recordsTotal' => $result['count'], 'recordsFiltered' => $result['count'], 'data' => $result['records']]; }