Exemple #1
0
 public function addFilter($filterName, $filterClass, $filterElementName = '')
 {
     if (!isset($this->_filters[$filterName]) && class_exists($filterClass)) {
         $this->_filters[$filterName] = new $filterClass($this->_pixie);
         $elementName = empty($filterElementName) ? $this->_filters[$filterName]->getFieldName() : $filterElementName;
         $postData = $this->_request->post($elementName);
         $value = !empty($postData) ? $postData : $this->_request->get($elementName);
         $this->_filters[$filterName]->setValue($value);
     }
 }
Exemple #2
0
 public function match(Request $request)
 {
     if (in_array($request->method, ['GET', 'DELETE', 'HEAD', 'OPTIONS'])) {
         return true;
     }
     $contentType = HttpHelper::cleanContentType($request->server('CONTENT_TYPE'));
     if (!$contentType) {
         return true;
     }
     return in_array($contentType, $this->types);
 }
 public function download(Database $db, Request $request)
 {
     $filter = [];
     if ($keyword = $request->query('keyword')) {
         $filter = ['(name like :keyword or username like :keyword)', ':keyword' => '%' . $keyword . '%'];
     }
     $data = $db->select('name,username,level', 'user', $filter);
     $filename = 'user-report';
     $header = ['Name', 'Username', 'Level'];
     $delimiter = ';';
     $delay = false;
     return $this->csv($filename, $header, $data, $delimiter, $delay);
 }
Exemple #4
0
 public function checkReferer(Request $request)
 {
     if ($this->isEnabled()) {
         return;
     }
     $referer = $request->server('HTTP_REFERER');
     $parts = parse_url($referer);
     $host = $parts['host'];
     $method = $request->server('REQUEST_METHOD');
     if (!in_array($method, ['GET', 'HEAD', 'OPTIONS']) && $host && $host != $request->server('HTTP_HOST')) {
         throw new HttpException("Invalid referer", 400);
     }
 }
Exemple #5
0
 /**
  * @param Request $request
  * @return \App\Installation\Result|array|void
  * @throws \LogicException
  */
 public function runWizard(Request $request)
 {
     if (!$this->initialized) {
         throw new \LogicException('Installator must be initialized before running');
     }
     $this->request = $request;
     $this->checkSessionStarted();
     $step = $request->param('id');
     $result = new Result();
     if (!$step) {
         $step = $this->firstStep->getName();
     }
     // Traverse all steps until current
     $stepObj = $this->firstStep;
     $lastStartedStep = $stepObj;
     while ($stepObj) {
         // Forbid executing not started steps.
         if (!$stepObj->isStarted()) {
             break;
         }
         $lastStartedStep = $stepObj;
         // Execute current step and stop.
         if ($step == $stepObj->getName()) {
             $result = $stepObj->execute(strtoupper($this->request->method), $this->request->getRequestData());
             if ($stepObj->getCompleted()) {
                 if ($nextStep = $stepObj->getNextStep()) {
                     $nextStep->start();
                 } else {
                     $result->setCompleted(true);
                 }
             }
             break;
         }
         // If invalid step is before current one, stop propagation, and ask user to fix it.
         if (!$stepObj->isValid()) {
             $result->setStep($stepObj);
             $result->redirectToStep();
             break;
         }
         $stepObj = $stepObj->getNextStep();
     }
     $this->stepsData['steps'][$stepObj->getName()]['current'] = true;
     $this->stepsData = ArraysHelper::arrayMergeRecursiveDistinct($this->stepsData, $stepObj->getViewData());
     $result->setViewData($this->stepsData);
     $result->setLastStartedStep($lastStartedStep);
     return $result;
 }
 public function update(User $user, Request $request, Database $db, $id)
 {
     $error = null;
     $filter = ['id = ? and id <> ?', $id, $user->get('id')];
     $record = $db->findOne('user', $filter);
     if (!$record) {
         $user->message('warning', 'Data tidak ditemukan');
         return $this->redirect($this->homeUrl);
     }
     $fields = ['name' => $request->get('name', $record['name']), 'username' => $request->get('username', $record['username']), 'password' => $request->get('password', $record['password']), 'level' => $request->get('level', $record['level'])];
     $labels = $this->app->load('app/config/translations/user-labels.php');
     if ($request->isPost()) {
         $rules = ['name,username,password' => 'required'];
         $error = $this->validation->setData($fields)->setRules($rules)->setLabels($labels)->validate()->getError();
         if (!$error) {
             $saved = $db->update('user', $fields, $filter);
             if ($saved) {
                 $user->message('success', 'Data sudah disimpan!');
                 return $this->redirect($this->homeUrl);
             } else {
                 $error = 'Data gagal disimpan!';
             }
         }
         $user->message('error', $error);
     }
     $form = $this->form->setData($fields)->setLabels($labels)->setAttrs(['class' => 'form-horizontal'])->setDefaultControlAttrs(['class' => 'form-control'])->setDefaultLabelAttrs(['class' => 'form-label col-md-2']);
     return $this->render('user/update', ['form' => $form, 'homeUrl' => $this->homeUrl]);
 }
 public function main(User $user, Request $request, Database $db)
 {
     if ($user->is('admin')) {
         return $this->redirect('admin');
     } elseif ($user->hasBeenLogin()) {
         return $this->redirect('index');
     }
     $username = $request->get('username');
     $password = $request->get('password');
     $error = null;
     if ($request->isPost()) {
         $filter = ['username = ? and password = ?', $username, $password];
         $data = $db->findOne('user', $filter);
         if (empty($data)) {
             $error = 'Login gagal! Username atau password tidak cocok!';
         } else {
             $user->login('admin', $data);
             return $this->redirect('admin');
         }
     }
     $form = $this->form->setData(['username' => $username])->setAttrs(['id' => 'login-form'])->setDefaultLabelAttrs(['class' => 'sr-only'])->setDefaultControlAttrs(['class' => 'form-control form-block']);
     return $this->render(null, ['form' => $form, 'error' => $error]);
 }
Exemple #8
0
 public static function createController($controllerName, Request $request, Pixie $pixie, $isSubRequest = false)
 {
     if (!$controllerName || $controllerName == 'Default') {
         $className = $request->param('namespace', $pixie->app_namespace) . 'Rest\\NoneController';
     } else {
         $className = $request->param('namespace', $pixie->app_namespace) . 'Rest\\Controller\\' . $controllerName;
     }
     if (!class_exists($className)) {
         if (!in_array($controllerName, $pixie->restService->getExcludedModels()) && class_exists($pixie->app_namespace . 'Model\\' . $controllerName)) {
             $className = $request->param('namespace', $pixie->app_namespace) . 'Rest\\Controller';
         } else {
             throw new NotFoundException();
         }
     }
     $controller = $pixie->controller($className);
     $controller->request = $request;
     $controller->setIsSubRequest($isSubRequest);
     // Inject model into the controller.
     if (!$controller->getModelName()) {
         $controller->setModelName($controllerName);
     }
     return $controller;
 }
 public function account(User $user, Database $db, Request $request)
 {
     $fields = ['username' => $request->get('username', $user->get('username')), 'password' => $request->get('password', $user->get('password')), 'new_password' => $request->get('new_password', $user->get('new_password')), 'name' => $request->get('name', $user->get('name'))];
     $error = null;
     $selfUrl = $this->homeUrl . '/account';
     $labels = $this->app->load('app/config/translations/user-labels.php');
     if ($request->isPost()) {
         $old_password = $user->get('password');
         $rules = ['name,username' => 'required', 'password' => 'required,Password saat ini tidak boleh kosong', '-password' => "equal({$old_password}),Password saat ini tidak valid", 'new_password' => 'minLength(4,allowEmpty)'];
         $error = $this->validation->setData($fields)->setRules($rules)->setLabels($labels)->validate()->getError();
         if (!$error) {
             // handle file
             $filename = $request->baseDir() . 'asset/avatars/user-' . $user->get('id');
             if (Helper::handleFileUpload('avatar', $filename, $this->app->get('imageTypes'))) {
                 $fields['avatar'] = basename($filename);
             }
             if ($fields['new_password']) {
                 $fields['password'] = $fields['new_password'];
             }
             unset($fields['new_password']);
             $filter = ['id = ?', $user->get('id')];
             $saved = $db->update('user', $fields, $filter);
             if ($saved) {
                 $user->register($fields);
                 $user->message('success', 'Data sudah diupdate');
                 return $this->redirect($selfUrl);
             } else {
                 $error = 'Data gagal disimpan!';
             }
         }
         $user->message('error', $error);
     }
     $avatar = $user->get('avatar');
     $avatar = $this->app->asset($avatar ? 'asset/avatars/' . $avatar : 'asset/images/avatar.png');
     $form = $this->form->setData($fields)->setLabels($labels)->setAttrs(['class' => 'form-horizontal', 'enctype' => 'multipart/form-data'])->setDefaultControlAttrs(['class' => 'form-control'])->setDefaultLabelAttrs(['class' => 'form-label col-md-4']);
     return $this->render('profil', ['form' => $form, 'avatar' => $avatar, 'backUrl' => 'index']);
 }
 /**
  * @param PaymentOperation $operation
  * @return Request
  */
 public function createRequestFromPaymentOperation(PaymentOperation $operation)
 {
     return Request::createFromPaymentOperation($operation);
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('method', 'choice', ['choices' => ArraysHelper::arrayFillEqualPairs(Request::getMethods()), 'label' => 'Method', 'required' => false, 'empty_data' => '', 'multiple' => false, 'constraints' => [new Choice(['message' => "Method must be selected.", 'choices' => array_merge([''], Request::getMethods()), 'multiple' => false])], 'attr' => ['class' => 'form-control']]);
     $isAjaxChoices = ['no', 'yes'];
     $builder->add('is_ajax', 'choice', ['label' => 'Is Ajax', 'required' => true, 'empty_data' => '', 'choices' => ArraysHelper::arrayFillEqualPairs($isAjaxChoices), 'constraints' => [new Choice(['message' => "Incorrect value selected", 'choices' => $isAjaxChoices, 'multiple' => false])], 'attr' => ['class' => 'form-control']]);
 }
Exemple #12
0
 public function match(Request $request)
 {
     return $request->is_ajax() === $this->isAjax();
 }
Exemple #13
0
 public static function loadValidatorMetadata(ClassMetadata $metadata)
 {
     $metadata->addPropertyConstraint('methods', new NotBlank(['message' => "At least one method must be selected."]));
     $metadata->addPropertyConstraint('methods', new Choice(['message' => "At least one method must be selected.", 'choices' => Request::getMethods(), 'multiple' => true]));
 }
Exemple #14
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $builder->add('methods', 'choice', ['choices' => ArraysHelper::arrayFillEqualPairs(Request::getMethods()), 'multiple' => true, 'expanded' => true, 'label' => false, 'required' => true]);
 }
Exemple #15
0
 public function route(Request $request)
 {
     $routes =& $this->routes[$request->method()];
     $values = null;
     $response = null;
     if (isset($routes)) {
         foreach ($routes as $route) {
             $values = [];
             $matches = null;
             $nmatches = preg_match($route['regexp'], $request->path(), $matches);
             if ($nmatches > 0) {
                 foreach ($route['params'] as $key) {
                     if (!isset($matches[$key])) {
                         break;
                     }
                     $values[$key] = $matches[$key];
                 }
                 if (count($values) == count($route['params'])) {
                     $response = $this->call($route, $values, $request);
                     break;
                 }
             }
         }
     }
     return $response;
 }
 /**
  * Calculates request MAC code
  * @param \App\Payment\PaymentSystem\Life\Request $request
  * @param null|array $macFields
  * @return string
  */
 public function calculateRequestMAC(Request $request, $macFields = null)
 {
     $fields = is_array($macFields) ? $macFields : $this->macFields;
     $source = $request->calculateMACSourceString($fields);
     $key = $this->getKey();
     $result = hash_hmac('sha1', $source, pack("H*", $key));
     return $result;
 }
Exemple #17
0
 public function __construct(\app\core\Request $request)
 {
     $this->controlador = $request->getController();
 }