Esempio n. 1
0
 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']];
 }