public function testValidate() { $className = 'Same\\Class\\Name'; $validator1 = $this->getMock('Magento\\Framework\\Code\\ValidatorInterface'); $validator1->expects($this->once())->method('validate')->with($className); $validator2 = $this->getMock('Magento\\Framework\\Code\\ValidatorInterface'); $validator2->expects($this->once())->method('validate')->with($className); $this->model->add($validator1); $this->model->add($validator2); $this->model->validate($className); }
$vars['token'] = Csrf::token(); $vars['user'] = User::find($id); $vars['statuses'] = array('inactive' => __('global.inactive'), 'active' => __('global.active')); $vars['roles'] = array('administrator' => __('global.administrator'), 'editor' => __('global.editor'), 'user' => __('global.user')); return View::create('users/edit', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer'); }); Route::post('admin/users/edit/(:num)', function ($id) { $input = Input::get(array('username', 'email', 'real_name', 'bio', 'status', 'role')); $password_reset = false; if ($password = Input::get('password')) { $input['password'] = $password; $password_reset = true; } $validator = new Validator($input); $validator->add('safe', function ($str) use($id) { return $str != 'inactive' and Auth::user()->id == $id; }); $validator->check('username')->is_max(2, __('users.username_missing', 2)); $validator->check('email')->is_email(__('users.email_missing')); if ($password_reset) { $validator->check('password')->is_max(6, __('users.password_too_short', 6)); } if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('admin/users/edit/' . $id); } if ($password_reset) { $input['password'] = Hash::make($input['password']); } User::update($id, $input);
$vars['field'] = $extend; $vars['pagetypes'] = Query::table(Base::table('pagetypes'))->sort('key')->get(); return View::create('extend/fields/edit', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer'); }); Route::post('admin/extend/fields/edit/(:num)', function ($id) { $input = Input::get(array('type', 'field', 'key', 'label', 'attributes', 'pagetype')); if (empty($input['key'])) { $input['key'] = $input['label']; } $input['key'] = slug($input['key'], '_'); array_walk_recursive($input, function (&$value) { $value = eq($value); }); $validator = new Validator($input); $validator->add('valid_key', function ($str) use($id, $input) { return Extend::where('key', '=', $str)->where('type', '=', $input['type'])->where('id', '<>', $id)->count() == 0; }); $validator->check('key')->is_max(1, __('extend.key_missing'))->is_valid_key(__('extend.key_exists')); $validator->check('label')->is_max(1, __('extend.label_missing')); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('admin/extend/fields/edit/' . $id); } if ($input['field'] == 'image') { $attributes = Json::encode($input['attributes']); } elseif ($input['field'] == 'file') { $attributes = Json::encode(array('attributes' => array('type' => $input['attributes']['type']))); } else { $attributes = ''; }
// print_r($vars);exit; return View::create('posts/add', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer')->partial('editor', 'partials/editor'); }); Route::post('admin/posts/add', function () { $input = Input::get(array('title', 'slug', 'description', 'created', 'html', 'css', 'js', 'category', 'status', 'comments', 'company', 'department')); // if there is no slug try and create one from the title if (empty($input['slug'])) { $input['slug'] = $input['title']; } // convert to ascii $input['slug'] = slug($input['slug']); // encode title $input['title'] = e($input['title'], ENT_COMPAT); $validator = new Validator($input); $validator->add('duplicate', function ($str) { return Post::where('slug', '=', $str)->count() == 0; }); $validator->check('title')->is_max(3, __('posts.title_missing')); $validator->check('slug')->is_max(3, __('posts.slug_missing'))->is_duplicate(__('posts.slug_duplicate'))->not_regex('#^[0-9_-]+$#', __('posts.slug_invalid')); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('admin/posts/add'); } if (empty($input['created'])) { $input['created'] = Date::mysql('now'); } $user = Auth::user(); $input['author'] = $user->id; if (is_null($input['comments'])) { $input['comments'] = 0;
/* Edit Var */ Route::get('admin/extend/pagetypes/edit/(:any)', function ($key) { $vars['token'] = Csrf::token(); $vars['pagetype'] = Query::table(Base::table('pagetypes'))->where('key', '=', $key)->fetch(); return View::create('extend/pagetypes/edit', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer'); }); Route::post('admin/extend/pagetypes/edit/(:any)', function ($key) { $input = Input::get(array('key', 'value')); $input['key'] = slug($input['key'], '_'); $validator = new Validator($input); $validator->add('valid_key', function ($str) use($key) { // no change if ($str == $key) { return true; } // check the new key $str is available return Query::table(Base::table('pagetypes'))->where('key', '=', $str)->count() == 0; }); $validator->check('key')->is_max(2, __('extend.key_missing'))->is_valid_key(__('extend.key_exists')); $validator->check('value')->is_max(1, __('extend.name_missing')); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('admin/extend/pagetypes/edit/' . $key); } Query::table(Base::table('pagetypes'))->where('key', '=', $key)->update($input); Notify::success(__('extend.pagetype_updated')); return Response::redirect('admin/extend/pagetypes'); }); /*
return Response::redirect('admin/login'); }); /* Amnesia */ Route::get('admin/amnesia', array('before' => 'guest', 'main' => function () { $vars['messages'] = Notify::read(); $vars['token'] = Csrf::token(); return View::create('users/amnesia', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer'); })); Route::post('admin/amnesia', array('before' => 'csrf', 'main' => function () { $email = Input::get('email'); $validator = new Validator(array('email' => $email)); $query = User::where('email', '=', $email); $validator->add('valid', function ($email) use($query) { return $query->count(); }); $validator->check('email')->is_email(__('users.email_missing'))->is_valid(__('users.email_not_found')); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('admin/amnesia'); } $user = $query->fetch(); Session::put('user', $user->id); $token = noise(8); Session::put('token', $token); $uri = Uri::full('admin/reset/' . $token); $subject = __('users.recovery_subject'); $msg = __('users.recovery_message', $uri); mail($user->email, $subject, $msg);
// extended fields $vars['fields'] = Extend::fields('post', $id); $vars['statuses'] = array('published' => __('global.published'), 'draft' => __('global.draft'), 'archived' => __('global.archived')); return View::create('publications/editPublication', $vars)->partial('header', 'partials/header')->partial('footer', 'partials/footer')->partial('editor', 'partials/editor'); }); Route::post('admin/publications/editPublication/(:num)', function ($id) { $currentPageCategoryId = getCurrentPageCategoryId('publication'); $input = Input::get(array('title', 'slug', 'description', 'created', 'html', 'css', 'js', 'category', 'status', 'comments')); /** Valeurs en dur **/ $input['comments'] = 0; $input['category'] = $currentPageCategoryId; // encode title $input['title'] = e($input['title'], ENT_COMPAT); $validator = new Validator($input); $validator->add('duplicate', function ($str) use($id) { return Post::where('slug', '=', $str)->where('id', '<>', $id)->count() == 0; }); if (is_null($input['description']) || empty($input['description'])) { $input['description'] = " "; } if (is_null($input['css']) || empty($input['css'])) { $input['css'] = " "; } if (is_null($input['js']) || empty($input['js'])) { $input['js'] = " "; } // if there is no slug, create one from title if (empty($input['slug'])) { $input['slug'] = slug($input['title']); } // convert to ascii
/** * Runs all of the validation checks on the elements using the * validatiors that are stored * * @return bool */ public function isValid() { if ($this->csrfToken === true && !$this->_input->checkToken()) { // CSRF protection failed! if ($this->storeErrors === true) { $this->_event->error(Input::csrfMsg()); } return false; } foreach ($this->elements as $element) { try { $value = $this->_input->get($element['input_name'], $element['source']); } catch (Input_KeyNoExist $e) { if ($element['required'] === true) { throw $e; } else { continue; } } // Store the input names value correclty as a multi-dimensional array $tmpVal = $value; foreach (array_reverse(preg_split('#(?<!\\\\)/#', trim($element['input_name'], '/'))) as $v) { $tmpVal = array($v => $tmpVal); } $this->values = zula_merge_recursive($this->values, $tmpVal); $count = is_array($value) ? count($value) : strlen($value); if ($element['required'] === false && $count == 0) { continue; } // Check if it is valid $validator = new Validator($value, $element['title']); foreach (array_filter($element['validators']) as $tmpValidator) { $validator->add($tmpValidator); } if ($validator->validate() === false) { $this->valid = false; if ($this->storeErrors === true) { // Store all errors (if any) foreach ($validator->getErrors() as $error) { $this->_event->error($error); } } } } // Check if the antispam was successful, if enabled if ($this->valid && $this->antispam === true) { $antispam = new Antispam(); if (!$antispam->check()) { $this->valid = false; if ($this->storeErrors === true) { $this->_event->error(t('Sorry, incorrect answer to the captcha', I18n::_DTD)); } } } return $this->valid; }