Esempio n. 1
0
<?php

include_once "models/Admin_Table.class.php";
$createNewAdmin = isset($_POST['new-admin']);
if ($createNewAdmin) {
    $newEmail = $_POST['email'];
    $newPassword = $_POST['password'];
    $adminTable = new Admin_Table($db);
    try {
        $adminTable->create($newEmail, $newPassword);
        $adminFormMessage = "New user created for {$newEmail}";
    } catch (Exception $e) {
        $adminFormMessage = $e->getMessage();
    }
}
$newAdminForm = (include_once "views/admin/new-admin-form-html.php");
return $newAdminForm;
Esempio n. 2
0
<?php

include_once "models/Admin_Table.class.php";
$loginFormSubmitted = isset($_POST['log-in']);
if ($loginFormSubmitted) {
    $email = $_POST['email'];
    $password = $_POST['password'];
    $adminTable = new Admin_Table($db);
    try {
        $adminTable->checkCredentials($email, $password);
        $admin->login();
    } catch (Exception $e) {
        //login failed
    }
}
$loggingOut = isset($_POST['logout']);
if ($loggingOut) {
    $admin->logout();
}
if ($admin->isLoggedIn()) {
    $view = (include_once "views/admin/logout-form-html.php");
} else {
    $view = (include_once "views/admin/login-form-html.php");
}
return $view;
Esempio n. 3
0
 public function getManualFilters($table)
 {
     $query = false;
     $session = $this->getSession($table);
     $keys = $this->getSetVar($session, 'manual_key', 'manual_key');
     if ($this->model instanceof LinesModel) {
         $advanced_options = Admin_Lines::getOptions();
     } else {
         if ($this->model instanceof BalancesModel) {
             // TODO: make refactoring of the advanced options for each page (lines, balances, etc)
             $advanced_options = array($keys[0] => array('type' => 'number', 'display' => 'usage'));
         } else {
             if ($this->model instanceof EventsModel) {
                 $avanced_options = array($keys[0] => array('type' => 'text'));
             } else {
                 return $query;
             }
         }
     }
     $operators = $this->getSetVar($session, 'manual_operator', 'manual_operator');
     $values = $this->getSetVar($session, 'manual_value', 'manual_value');
     settype($operators, 'array');
     settype($values, 'array');
     for ($i = 0; $i < count($keys); $i++) {
         if ($keys[$i] == '' || $values[$i] == '') {
             continue;
         }
         switch ($advanced_options[$keys[$i]]['type']) {
             case 'number':
                 $values[$i] = floatval($values[$i]);
                 break;
             case 'date':
                 if (Zend_Date::isDate($values[$i], 'yyyy-MM-dd hh:mm:ss')) {
                     $values[$i] = new MongoDate((new Zend_Date($values[$i], null, new Zend_Locale('he_IL')))->getTimestamp());
                 } else {
                     continue 2;
                 }
             default:
                 break;
         }
         if (isset($advanced_options[$keys[$i]]['case'])) {
             $values[$i] = Admin_Table::convertValueByCaseType($values[$i], $advanced_options[$keys[$i]]['case']);
         }
         // TODO: decoupling to config of fields
         switch ($operators[$i]) {
             case 'starts_with':
                 $operators[$i] = '$regex';
                 $values[$i] = "^{$values[$i]}";
                 break;
             case 'ends_with':
                 $operators[$i] = '$regex';
                 $values[$i] = "{$values[$i]}\$";
                 break;
             case 'like':
                 $operators[$i] = '$regex';
                 $values[$i] = "{$values[$i]}";
                 break;
             case 'lt':
                 $operators[$i] = '$lt';
                 break;
             case 'lte':
                 $operators[$i] = '$lte';
                 break;
             case 'gt':
                 $operators[$i] = '$gt';
                 break;
             case 'gte':
                 $operators[$i] = '$gte';
                 break;
             case 'ne':
                 $operators[$i] = '$ne';
                 break;
             case 'equals':
                 $operators[$i] = '$in';
                 $values[$i] = array($values[$i]);
                 break;
             default:
                 break;
         }
         if ($advanced_options[$keys[$i]]['type'] == 'dbref') {
             $collection = Billrun_Factory::db()->{$advanced_options[$keys[$i]]['collection'] . "Collection"}();
             $pre_query[$advanced_options[$keys[$i]]['collection_key']][$operators[$i]] = $values[$i];
             $cursor = $collection->query($pre_query);
             $values[$i] = array();
             foreach ($cursor as $entity) {
                 $values[$i][] = $entity->createRef($collection);
             }
             $operators[$i] = '$in';
         }
         $query[$keys[$i]][$operators[$i]] = $values[$i];
     }
     return $query;
 }
Esempio n. 4
0
 public function applyFilter($filter_field, $value)
 {
     if ($filter_field['input_type'] == 'number') {
         if ($value != '') {
             if ($filter_field['comparison'] == 'equals') {
                 return array($filter_field['db_key'] => array('$in' => array_map('floatval', explode(',', $value))));
             }
         }
     } else {
         if ($filter_field['input_type'] == 'text') {
             if ($value != '') {
                 if ($filter_field['comparison'] == 'contains') {
                     if (isset($filter_field['case_type'])) {
                         $value = Admin_Table::convertValueByCaseType($value, $filter_field['case_type']);
                     }
                     return array($filter_field['db_key'] => array('$regex' => strval($value)));
                 }
             }
         } else {
             if ($filter_field['input_type'] == 'date') {
                 if (is_string($value) && Zend_Date::isDate($value, 'yyyy-MM-dd hh:mm:ss')) {
                     //yyyy-MM-dd hh:mm:ss
                     $value = new MongoDate((new Zend_Date($value, null, new Zend_Locale('he_IL')))->getTimestamp());
                     return array($filter_field['db_key'] => array($filter_field['comparison'] => $value));
                 }
             } else {
                 if ($filter_field['input_type'] == 'multiselect') {
                     if (is_array($value) && !empty($value)) {
                         return array($filter_field['db_key'] => array($filter_field['comparison'] => $value));
                     }
                 }
             }
         }
     }
     return false;
 }
Esempio n. 5
0
 public function applyFilter($filter_field, $value)
 {
     if ($filter_field['input_type'] == 'number') {
         if ($value != '') {
             if ($filter_field['comparison'] == 'equals') {
                 if (is_array($filter_field['db_key'])) {
                     $ret = array('$or' => array(array($filter_field['db_key'][0] => array('$in' => array_map('floatval', explode(',', $value)))), array($filter_field['db_key'][1] => array('$in' => array_map('strval', explode(',', $value))))));
                 } else {
                     $ret = array($filter_field['db_key'] => array('$in' => array_map('floatval', explode(',', $value))));
                 }
                 return $ret;
             }
         }
     } else {
         if ($filter_field['input_type'] == 'text') {
             if ($value != '') {
                 if ($filter_field['comparison'] == 'contains') {
                     if (isset($filter_field['case_type'])) {
                         $value = Admin_Table::convertValueByCaseType($value, $filter_field['case_type']);
                     }
                     return array($filter_field['db_key'] => array('$regex' => strval($value)));
                 }
             }
         } else {
             if ($filter_field['input_type'] == 'date') {
                 if (is_string($value) && Zend_Date::isDate($value, 'yyyy-MM-dd hh:mm:ss')) {
                     //yyyy-MM-dd hh:mm:ss
                     $value = new MongoDate((new Zend_Date($value, null, new Zend_Locale('he_IL')))->getTimestamp());
                     return array($filter_field['db_key'] => array($filter_field['comparison'] => $value));
                 }
             } else {
                 if ($filter_field['input_type'] == 'multiselect') {
                     if (isset($filter_field['ref_coll']) && isset($filter_field['ref_key'])) {
                         $collection = Billrun_Factory::db()->{$filter_field['ref_coll'] . "Collection"}();
                         $pre_query = array($filter_field['ref_key'] => array('$in' => $value));
                         $cursor = $collection->query($pre_query);
                         $value = array();
                         foreach ($cursor as $entity) {
                             $value[] = $entity->createRef($collection);
                         }
                     }
                     if (is_array($value) && !empty($value)) {
                         if ($this instanceof QueueModel && $filter_field['db_key'] == 'calc_name') {
                             $value = $this->prev_calc($value);
                         }
                         return array($filter_field['db_key'] => array($filter_field['comparison'] => $value));
                     }
                 }
             }
         }
     }
     return false;
 }