Пример #1
0
 protected function validate($data, $rules, $messages = array(), $customAttributes = array())
 {
     $messages = Set::flatten($messages);
     $validator = \Validator::make($data, $rules, $messages, $customAttributes);
     if ($validator->fails()) {
         return $this->sendValidationErrorsResponse($validator->getMessageBag()->toArray());
     }
     return true;
 }
Пример #2
0
 /**
  * Validate data and returm errors array if it is invalid
  * @param array $data
  * @param array $rules
  * @param array $messages
  * @param array $customAttributes
  * @return array|bool
  */
 protected function validateWithoutHalt(array $data, array $rules, array $messages = array(), array $customAttributes = array())
 {
     $messages = Set::flatten($messages);
     $validator = \Validator::make($data, $rules, $messages, $customAttributes);
     if ($validator->fails()) {
         return $validator->getMessageBag()->toArray();
     }
     return true;
 }
Пример #3
0
 /**
  * @param Request $request
  * @param DbObject|Authenticatable $admin
  * @return array|\Illuminate\Http\JsonResponse
  */
 protected function validateAndGetAdminProfileUpdates(Request $request, DbObject $admin)
 {
     $validationRules = ['old_password' => 'required', 'new_password' => 'min:6'];
     $fieldsToUpdate = [];
     if ($admin->_hasField('language')) {
         $validationRules['language'] = 'required|in:' . implode(CmfConfig::getInstance()->locales());
         $fieldsToUpdate[] = 'language';
     }
     if ($admin->_hasField('name')) {
         $validationRules['name'] = 'max:200';
         $fieldsToUpdate[] = 'name';
     }
     if ($admin->_hasField('timezone')) {
         $validationRules['timezone'] = 'required|exists2:pg_timezone_names,name';
         $fieldsToUpdate[] = 'timezone';
     }
     $usersTable = CmfConfig::getInstance()->users_table_name();
     $userLoginCol = CmfConfig::getInstance()->user_login_column();
     if ($admin->_hasField('email')) {
         if ($userLoginCol === 'email') {
             $validationRules['email'] = "required|email|unique:{$usersTable},email,{$admin->getAuthIdentifier()},id";
         } else {
             $validationRules['email'] = 'email';
         }
         $fieldsToUpdate[] = 'email';
     }
     if ($userLoginCol !== 'email') {
         $validationRules[$userLoginCol] = "required|regex:%^[a-zA-Z0-9_@.-]+\$%is|min:4|unique:{$usersTable},{$userLoginCol},{$admin->getAuthIdentifier()},id";
         $fieldsToUpdate[] = $userLoginCol;
     }
     foreach (CmfConfig::getInstance()->additional_user_profile_fields() as $fieldName => $rules) {
         if (is_int($fieldName)) {
             $fieldName = $rules;
         } else {
             $validationRules[$fieldName] = $rules;
         }
         $fieldsToUpdate[] = $fieldName;
     }
     $validator = \Validator::make($request->data(), $validationRules, Set::flatten(CmfConfig::transCustom('.page.profile.errors')));
     $errors = [];
     if ($validator->fails()) {
         $errors = $validator->getMessageBag()->toArray();
     } else {
         if (!\Hash::check($request->data('old_password'), $admin->getAuthPassword())) {
             $errors['old_password'] = CmfConfig::transCustom('.page.profile.errors.old_password.match');
         }
     }
     if (!empty($errors)) {
         return cmfJsonResponseForValidationErrors($errors);
     }
     return $request->only($fieldsToUpdate);
 }
Пример #4
0
 /**
  * @inheritdoc
  * @throws \BadMethodCallException
  * @throws \PeskyORM\Exception\DbConnectionConfigException
  * @throws \PeskyORM\Exception\DbModelException
  * @throws \PeskyORM\Exception\DbObjectException
  */
 public function delete($conditionsAndOptions = null, $returning = false)
 {
     /** @var CmfDbModel|CacheForDbSelects $this */
     $ret = parent::delete($conditionsAndOptions, $returning);
     if ($this->cachingIsPossible()) {
         if (!empty($ret[$this->getPkColumnName()])) {
             $ids = $ret[$this->getPkColumnName()];
         } else {
             if (!empty($ret[0]) && !empty($ret[0][$this->getPkColumnName()])) {
                 $ids = Set::extract('/' . $ret[$this->getPkColumnName()]);
             } else {
                 if (!empty($conditionsAndOptions[$this->getPkColumnName()])) {
                     $ids = $conditionsAndOptions[$this->getPkColumnName()];
                 }
             }
         }
         if (!empty($ids)) {
             if (!is_array($ids)) {
                 $ids = array($ids);
             }
             foreach ($ids as $id) {
                 $this->cleanRecordCache($id);
             }
             $this->cleanSelectManyCache();
         } else {
             $this->cleanModelCache();
         }
     }
     return $ret;
 }
<?php

/**
 * @var array $user
 * @var string $url
 */
echo \PeskyCMF\Config\CmfConfig::transCustom('.forgot_password.email_content', ['url' => $url] + \Swayok\Utils\Set::flatten($user));
Пример #6
0
 /**
  * @param array $data
  * @param array $validators - supports inserts in format "{{id}}" where "id" can be any key from $data
  * @param array $messages
  * @param bool $isRevalidation
  * @param bool $isBulkEdit
  * @return array|string|bool
  * @throws \LogicException
  *
  * @throws ScaffoldActionException
  */
 public function validateData(array $data, array $validators, array $messages = [], $isRevalidation = false, $isBulkEdit = false)
 {
     $success = $this->beforeValidate($data, $isRevalidation);
     if ($success !== true) {
         return $success;
     }
     if (!is_array($validators)) {
         throw new ScaffoldActionException($this, '$validators must be an array');
     }
     if (empty($validators)) {
         return [];
     }
     if (empty($messages)) {
         $messages = CmfConfig::transCustom('.' . $this->getModel()->getTableName() . '.form.validation');
     }
     if (!is_array($messages)) {
         $messages = [];
     } else {
         $messages = Set::flatten($messages);
     }
     $arrayFields = [];
     foreach ($validators as $key => &$value) {
         if (is_string($value)) {
             $value = StringUtils::insert($value, $data, ['before' => '{{', 'after' => '}}']);
             if (preg_match('%(^|\\|)array%i', $value)) {
                 $arrayFields[] = $key;
             }
         } else {
             if (is_array($value)) {
                 foreach ($value as &$validator) {
                     if (is_string($validator)) {
                         $validator = StringUtils::insert($value, $data, ['before' => '{{', 'after' => '}}']);
                     }
                     if ($validator === 'array') {
                         $arrayFields[] = $key;
                     }
                 }
                 unset($validator);
             }
         }
     }
     unset($value);
     $validator = \Validator::make($data, $validators, $messages);
     if ($validator->fails()) {
         $errors = $validator->getMessageBag()->toArray();
         foreach ($errors as $field => $error) {
             if (in_array($field, $arrayFields, true)) {
                 $errors[$field . '[]'] = $error;
                 unset($errors[$field]);
             }
         }
         return $errors;
     }
     $success = $this->onValidationSuccess($data, $isRevalidation, $isBulkEdit);
     if ($success !== true) {
         return $success;
     }
     return [];
 }
Пример #7
0
 /**
  * @param Request $request
  * @param Admin $admin
  * @return array|\Illuminate\Http\JsonResponse
  */
 protected function validateAndGetAdminProfileUpdates(Request $request, Admin $admin)
 {
     $validationRules = ['old_password' => 'required', 'new_password' => 'min:6'];
     $fieldsToUpdate = [];
     if ($admin->_hasField('language')) {
         $validationRules['language'] = 'required|in:' . implode(CmfConfig::getInstance()->locales());
         $fieldsToUpdate[] = 'language';
     }
     if ($admin->_hasField('name')) {
         $validationRules['name'] = 'max:200';
         $fieldsToUpdate[] = 'name';
     }
     $usersTable = CmfConfig::getInstance()->users_table_name();
     $userLoginCol = CmfConfig::getInstance()->user_login_column();
     if ($admin->_hasField('email')) {
         if ($userLoginCol === 'email') {
             $validationRules['email'] = "required|email|unique:{$usersTable},email,{$admin->id},id";
         } else {
             $validationRules['email'] = "email";
         }
         $fieldsToUpdate[] = 'email';
     }
     if ($userLoginCol !== 'email') {
         $validationRules[$userLoginCol] = "required|alpha_dash|min:4|unique:{$usersTable},{$userLoginCol},{$admin->id},id";
         $fieldsToUpdate[] = $userLoginCol;
     }
     $validator = \Validator::make($request->data(), $validationRules, Set::flatten(CmfConfig::transCustom('.page.profile.errors')));
     $errors = [];
     if ($validator->fails()) {
         $errors = $validator->getMessageBag()->toArray();
     } else {
         if (!\Hash::check($request->data('old_password'), $admin->password)) {
             $errors['old_password'] = CmfConfig::transCustom('.page.profile.errors.old_password.match');
         }
     }
     if (!empty($errors)) {
         return response()->json(['errors' => $errors, 'message' => CmfConfig::transBase('.form.validation_errors')], HttpCode::INVALID);
     }
     return $request->only($fieldsToUpdate);
 }
Пример #8
0
 protected function getColumns($tableName, $tableSchema = 'public')
 {
     $dataSource = call_user_func([$this->modelParentClass, '_getDataSource'], 'default');
     $query = "SELECT * FROM `information_schema`.`columns` WHERE `table_name` = ``{$tableName}`` AND `table_schema` = ``{$tableSchema}``";
     $columns = $dataSource->processRecords($dataSource->query(DbExpr::create($query)));
     if (empty($columns)) {
         $this->line("Table [{$tableName}] possibly not exists");
         return false;
     }
     $columns = Set::combine($columns, '/column_name', '/.');
     return $columns;
 }
Пример #9
0
 /**
  * @param array $data
  * @param array $validators
  * @param array $messages
  * @param bool $isRevalidation
  * @return array
  * @throws ScaffoldActionException
  */
 public function validateData(array $data, array $validators, array $messages = [], $isRevalidation = false)
 {
     $success = $this->beforeValidate($data, $isRevalidation);
     if ($success !== true) {
         return $success;
     }
     if (!is_array($validators)) {
         throw new ScaffoldActionException($this, '$validators must be an array');
     }
     if (empty($validators)) {
         return [];
     }
     if (empty($messages)) {
         $messages = CmfConfig::transCustom('.' . $this->getModel()->getTableName() . '.form.validation');
     }
     if (!is_array($messages)) {
         $messages = [];
     } else {
         $messages = Set::flatten($messages);
     }
     array_walk($validators, function (&$value, $key) use($data) {
         if (is_string($value)) {
             $value = StringUtils::insert($value, $data, ['before' => '{{', 'after' => '}}']);
         }
     });
     $validator = \Validator::make($data, $validators, $messages);
     if ($validator->fails()) {
         return $validator->getMessageBag()->toArray();
     }
     $success = $this->onValidationSuccess($data, $isRevalidation);
     if ($success !== true) {
         return $success;
     }
     return [];
 }