Пример #1
0
 public function getLastId()
 {
     $qb = new QueryBuilder();
     $qb->select($qb->expr()->max(new Field('id'), 'lastId'))->from(Tbl::get('TBL_CHAT_MESSAGES'));
     $lastId = $this->query->exec($qb->getSQL())->fetchField('lastId');
     return empty($lastId) ? 0 : $lastId;
 }
Пример #2
0
 /**
  * Check validity of username, password and other auth factors
  * 
  * @param string $username
  * @param string $password
  * @param array $additionalCredentials
  * @param boolean $writeCookie
  * @throws UserAuthFailedException
  * @return User
  */
 public function checkCredentials($username, $password, $additionalCredentials = array(), $writeCookie = false)
 {
     $qb = new QueryBuilder();
     $qb->select(new Field('id'), new Field('password'), new Field('salt'))->from(Tbl::get('TBL_USERS', 'UserManager'))->where($qb->expr()->equal(new Field('login'), $username));
     $this->query->exec($qb->getSQL());
     if ($this->query->countRecords() == 1) {
         $userData = $this->query->fetchRecord();
         $hashToCheck = static::getUserPasswordHash($password, $userData['salt']);
         if ($userData['password'] === $hashToCheck) {
             $usr = $this->doLogin($userData['id'], $additionalCredentials, $writeCookie);
             try {
                 $hookParams = array("user" => $usr, "additionalCredentials" => $additionalCredentials);
                 HookManager::callHook("UserAuthSuccess", $hookParams);
             } catch (UserAuthFailedException $e) {
                 $this->doLogout();
                 throw $e;
             }
             return $usr;
         }
     }
     // Failed login nothing returned from above code
     $hookParams = array("username" => $username, "password" => $password, "additionalCredentials" => $additionalCredentials);
     HookManager::callHook("UserAuthFail", $hookParams);
     throw new UserAuthFailedException("Incorrect login/password combination");
 }
Пример #3
0
 protected function getEntities($key)
 {
     if (!isset($this->relationships[$key])) {
         return false;
     }
     $relationship = $this->relationships[$key];
     if (!isset($this->managers[$relationship['manager']])) {
         $this->managers[$relationship['manager']] = $this->factory->get($key);
     }
     $manager = $this->managers[$relationship['manager']];
     /* @var $manager ManagerAbstract */
     $query = new QueryBuilder($manager->table(), $this->factory::connection(), $relationship['conditions']);
     $original_params = $query->params();
     $params = array();
     foreach ($original_params as $param) {
         if (stripos($param, 'entity.' === 0)) {
             $param = $this->entity[substr($param, 7)];
         }
         $params[] = $param;
     }
     if ($relationship['relation'] == 'HasOne') {
         $this->entities[$key] = $manager->fetch($query, $params);
     } else {
         $this->entities[$key] = $manager->fetchAll($query, $params);
     }
     return $this->entities[$key];
 }
Пример #4
0
 /**
  * Method for searching model by Id or Uuid
  * @param  QueryBuilder $query
  * @param  Int|Uuid $value
  * @return Illuminate\Database\Eloquent\Builder
  */
 public function scopeIdOrUuid($query, $value)
 {
     if (!Uuid::isValid($value) && !is_numeric($value)) {
         throw (new ModelNotFoundException())->setModel(get_class($this));
     }
     return $query->where($this->primaryKey, '=', $value)->orWhere('uuid', '=', $value);
 }
Пример #5
0
 private function playerQuery(\QueryBuilder $query, Request $request)
 {
     if ($team = $request->query->get('team')) {
         $query->where('team')->is($team);
     }
     return $query->getArray(array('name', 'outdated'));
 }
Пример #6
0
 function load($sh, $c_query = null)
 {
     $db = DB::Instance();
     $qb = new QueryBuilder($db, $this->_doname);
     if ($sh instanceof SearchHandler) {
         if ($this->_templateobject->isAccessControlled()) {
             if (isModuleAdmin()) {
                 $cc = new ConstraintChain();
                 $cc->add(new Constraint('usercompanyid', '=', EGS_COMPANY_ID));
                 $cc->add(new Constraint('id', '=', EGS_COMPANY_ID), 'OR');
                 $sh->addConstraintChain($cc);
                 $qb->setDistinct();
             } else {
                 $cc = new ConstraintChain();
                 $cc->add(new Constraint('usernameaccess', '=', EGS_USERNAME));
                 $cc->add(new Constraint('owner', '=', EGS_USERNAME), 'OR');
                 $cc2 = new ConstraintChain();
                 $cc2->add(new Constraint('usercompanyid', '=', EGS_COMPANY_ID));
                 $sh->addConstraintChain($cc);
                 $sh->addConstraintChain($cc2);
                 $qb->setDistinct();
             }
         }
         $this->sh = $sh;
     }
     $this->_load($sh, $qb, $c_query);
 }
Пример #7
0
 public function query($table = null)
 {
     if ($table === null) {
         $table = $this->_table;
     }
     $req = new QueryBuilder($this->_class);
     return $req->_from($table);
 }
 public function testClauses()
 {
     $arguments = array();
     $arguments[] = 'all';
     $arguments[] = array('condition' => 'state=?', 'columns' => 'name', 'order by' => 'last_login asc');
     $query = new QueryBuilder('author', $arguments);
     $this->assertEqual('select name from authors where state=? order by last_login asc', $query->compile()->getQueryString());
 }
 public function __construct(Registry $doctrineRegistry)
 {
     $this->doctrineRegistry = $doctrineRegistry;
     $this->qbOroUsers = $this->doctrineRegistry->getManager()->getRepository('OroUserBundle:User')->createQueryBuilder('u');
     $this->qbOroUsers->select('u');
     $this->qbDiamanteUsers = $this->doctrineRegistry->getManager()->getRepository('DiamanteUserBundle:DiamanteUser')->createQueryBuilder('u');
     $this->qbDiamanteUsers->select('u');
 }
Пример #10
0
 public function __construct()
 {
     $this->bs = new DisciplineBS(null);
     $qbuilder = new QueryBuilder('discipline');
     $qbuilder->addOrder("dsc_name", QueryBuilder::$ASC);
     $qbuilder->addOrder("dsc_code", QueryBuilder::$ASC);
     $this->disciplines = $this->bs->findNotDeleted($qbuilder);
 }
Пример #11
0
 /**
  * Fetch
  * 
  * @return DocumentCollection A collection of the documents returned by the query
  */
 public function fetch()
 {
     $pluckIds = function ($item) {
         return $item['id'];
     };
     $results = $this->queryBuilder->execute()->fetchAll();
     $ids = array_map($pluckIds, $results);
     return new DocumentCollection($ids, $this->librarian);
 }
 /**
  * Constructor
  */
 public function __construct()
 {
     parent::__construct();
     $this->load->library('model/QueryBuilder');
     $this->load->library('Enviroment');
     $this->db = $this->getDb();
     $this->_query = new QueryBuilder($this->db, false);
     $this->_query->setTable($this->_tabla);
 }
Пример #13
0
 public static function logCustom($name, $value)
 {
     $remoteIP = "";
     if (isset($_SERVER['REMOTE_ADDR'])) {
         $remoteIP = $_SERVER['REMOTE_ADDR'];
     }
     $qb = new QueryBuilder();
     $qb->insert(Tbl::get('TBL_MIXED_LOG'))->values(array("session_id" => session_id(), "name" => $name, "value" => $value, "ip" => $remoteIP));
     Reg::get('sql')->exec($qb->getSQL());
 }
Пример #14
0
 /**
  * @param QueryBuilder $q
  * @param              $filter
  * @return array
  */
 protected function addCatchAllWhereClause(&$q, $filter)
 {
     $unique = $this->generateRandomParameterName();
     //ensure that the string has a unique parameter identifier
     $string = $filter->strict ? $filter->string : "%{$filter->string}%";
     $expr = $q->expr()->orX($q->expr()->like('f.label', ':' . $unique), $q->expr()->like('f.alias', ':' . $unique));
     if ($filter->not) {
         $expr = $q->expr()->not($expr);
     }
     return array($expr, array("{$unique}" => $string));
 }
Пример #15
0
 /**
  * Get latest posts filtered by year and month?
  *
  * @param QueryBuilder $query
  * @param int $year
  * @param int $month
  */
 public function scopeArchiveFiltered($query, $year, $month)
 {
     return $query->where(function ($query) use($year, $month) {
         if ($year) {
             $query->where(DB::raw('YEAR(created_at)'), $year);
         }
         if ($month) {
             $query->where(DB::raw('MONTH(created_at)'), $month);
         }
     })->orderBy('posts.created_at', 'DESC');
 }
Пример #16
0
/**
 * Get Mysql's current datetime by selecting NOW()
 * 
 * @return string
 */
function getDBCurrentDateTime($isTimestamp = false)
{
    $sql = MySqlDbManager::getQueryObject();
    $qb = new QueryBuilder();
    if ($isTimestamp) {
        $qb->select(new Func("UNIX_TIMESTAMP", new Func("NOW"), 'now'));
    } else {
        $qb->select(new Func("NOW", null, 'now'));
    }
    return $sql->exec($qb->getSQL())->fetchField('now');
}
Пример #17
0
 /**
  * Check if given country code is valid
  * 
  * @param string $countryCode
  * @param int $cacheMinutes
  */
 public function isValidCountryCode($countryCode = null, $cacheMinutes = null)
 {
     $qb = new QueryBuilder();
     $qb->select($qb->expr()->count("*", "count"))->from(Tbl::get('TBL_LOCATIONS'))->where($qb->expr(new Field('country'), $countryCode));
     $this->query->exec($qb->getSQL(), $cacheMinutes);
     $count = $this->query->fetchField('count');
     if ($count > 0) {
         return true;
     }
     return false;
 }
Пример #18
0
 public function fillUsersGps($userId, $leafId)
 {
     $qb = new QueryBuilder();
     $qb->delete(Tbl::get('TBL_USERS_GPS'))->where($qb->expr()->equal(new Field('user_id'), $userId));
     $this->query->exec($qb->getSQL());
     $gpsTree = $this->getNodeTree($leafId);
     foreach ($gpsTree as $treeNode) {
         $qb = new QueryBuilder();
         $qb->insert(Tbl::get('TBL_USERS_GPS'))->values(array('user_id' => $userId, 'node_id' => $treeNode["node_id"]));
         $this->query->exec($qb->getSQL());
     }
 }
Пример #19
0
 public function search($array, $limit = 100)
 {
     $qb = new QueryBuilder();
     $q = $qb->select();
     foreach ($array as $key => $val) {
         $q->where($key, $val);
     }
     $query = $q->getQueryString();
     $rows = $limit == -1 ? 9999999 : (int) $limit;
     $select = Solr::select()->rows($rows)->search($query);
     return $this->solr_client->core($this->collection)->select($select);
 }
Пример #20
0
 protected function newBaseQueryBuilder()
 {
     /**
      * override this
      */
     $conn = $this->getConnection();
     $grammar = $conn->getQueryGrammar();
     $oQB = new QueryBuilder($conn, $grammar, $conn->getPostProcessor());
     $oQB->setModel($this);
     return $oQB;
     //return parent::newBaseQueryBuilder(); // TODO: Change the autogenerated stub
 }
 public static function setControllerTemplateByHost(Host $host, $controller, $template)
 {
     $sql = MySqlDbManager::getQueryObject();
     $qb = new QueryBuilder();
     if (!empty($controller) or !empty($template)) {
         $qb->insert(Tbl::get('TBL_HOST_CONTROLLER_TEMPLATE'))->values(array('host_id' => $host->id, 'controller' => $controller, 'template' => $template))->onDuplicateKeyUpdate()->set(new Field('controller'), $controller)->set(new Field('template'), $template);
     } else {
         $qb->delete(Tbl::get('TBL_HOST_CONTROLLER_TEMPLATE'))->where($qb->expr()->equal(new Field('host_id'), $host->id));
     }
     $sql->exec($qb->getSQL());
     return $sql->affected();
 }
Пример #22
0
 public function deleteAllAliasesForTextValue(TextValue $textValue)
 {
     if (empty($textValue->id)) {
         throw new InvalidArgumentException("Text Value ID have to be specified");
     }
     if (!is_numeric($textValue->id)) {
         throw new InvalidArgumentException("Text Value ID have to be integer");
     }
     $qb = new QueryBuilder();
     $qb->delete(Tbl::get('TBL_TEXTS_ALIASES'))->where($qb->expr()->equal(new Field("value_id"), $textValue->id));
     $this->query->exec($qb->getSQL());
     return $this->query->affected();
 }
Пример #23
0
 public function deleteGroup(TextsGroup $group)
 {
     if (empty($group->id)) {
         throw new InvalidArgumentException("Group ID have to be specified");
     }
     if (!is_numeric($group->id)) {
         throw new InvalidArgumentException("Group ID have to be integer");
     }
     $qb = new QueryBuilder();
     $qb->delete(Tbl::get('TBL_TEXTS_GROUPS'))->where($qb->expr()->equal(new Field("id"), $group->id));
     $this->query->exec($qb->getSQL());
     return $this->query->affected();
 }
Пример #24
0
 /**
  * Initiates a find by PK query
  *
  * @param $pk
  * @param $select
  * @return QueryBuilder
  */
 public static function findByPk($pk, $select = null)
 {
     $instance = self::createInstance();
     $instance->getFields();
     if ($instance->primaryKey == null) {
         return null;
     }
     $query = new QueryBuilder($instance->getTable(), 'SELECT');
     if ($select != null) {
         $query->select($select);
     }
     $query->where([$instance->primaryKey => $pk]);
     return $query->one();
 }
Пример #25
0
 public static function logRequest($dbInstanceKey = null)
 {
     $sql = MySqlDbManager::getQueryObject($dbInstanceKey);
     $userId = "NULL";
     $userObjectSerialized = "''";
     $userObj = Reg::get(ConfigManager::getConfig("Users", "Users")->ObjectsIgnored->User);
     if ($userObj->isAuthorized()) {
         $userId = $userObj->id;
         $userObjectSerialized = "'" . mysql_real_escape_string(serialize($userObj)) . "'";
     }
     $qb = new QueryBuilder();
     $qb->insert(Tbl::get('TBL_REQUEST_LOG'))->values(array("user_id" => $userId, "user_obj" => $userObjectSerialized, "session_id" => session_id(), "get" => serialize($_GET), "post" => serialize($_POST), "server" => serialize($_SERVER), "cookies" => serialize($_COOKIE), "session" => serialize($_SESSION), "response" => ob_get_contents()));
     $sql->exec($qb->getSQL());
 }
Пример #26
0
 /**
  * @param QueryBuilder $q
  * @param              $filter
  *
  * @return array
  */
 protected function addSearchCommandWhereClause(&$q, $filter)
 {
     $command = $field = $filter->command;
     $unique = $this->generateRandomParameterName();
     $returnParameter = true;
     //returning a parameter that is not used will lead to a Doctrine error
     $expr = false;
     switch ($command) {
         case $this->translator->trans('mautic.core.searchcommand.ispublished'):
             $expr = $q->expr()->eq('a.isPublished', ":{$unique}");
             $forceParameters = [$unique => true];
             break;
         case $this->translator->trans('mautic.core.searchcommand.isunpublished'):
             $expr = $q->expr()->eq('a.isPublished', ":{$unique}");
             $forceParameters = [$unique => false];
             $returnParameter = false;
             break;
         case $this->translator->trans('mautic.core.searchcommand.isuncategorized'):
             $expr = $q->expr()->orX($q->expr()->isNull('a.category'), $q->expr()->eq('a.category', $q->expr()->literal('')));
             $returnParameter = false;
             break;
         case $this->translator->trans('mautic.core.searchcommand.ismine'):
             $expr = $q->expr()->eq('IDENTITY(a.createdBy)', $this->currentUser->getId());
             $returnParameter = false;
             break;
         case $this->translator->trans('mautic.core.searchcommand.category'):
             $expr = $q->expr()->like('c.alias', ":{$unique}");
             $filter->strict = true;
             break;
         case $this->translator->trans('mautic.asset.asset.searchcommand.lang'):
             $langUnique = $this->generateRandomParameterName();
             $langValue = $filter->string . '_%';
             $forceParameters = [$langUnique => $langValue, $unique => $filter->string];
             $expr = $q->expr()->orX($q->expr()->eq('a.language', ":{$unique}"), $q->expr()->like('a.language', ":{$langUnique}"));
             break;
     }
     if ($expr && $filter->not) {
         $expr = $q->expr()->not($expr);
     }
     if (!empty($forceParameters)) {
         $parameters = $forceParameters;
     } elseif (!$returnParameter) {
         $parameters = [];
     } else {
         $string = $filter->strict ? $filter->string : "%{$filter->string}%";
         $parameters = ["{$unique}" => $string];
     }
     return [$expr, $parameters];
 }
Пример #27
0
 public static function login_from_cookie($token)
 {
     try {
         $m = new \QueryBuilder();
         $user = $m->select('users', array('remember_token = :remember_token AND token_validity > NOW()', array('remember_token' => array($token, \PDO::PARAM_STR))));
         if ($user) {
             $_SESSION['auth.user.logged_in'] = true;
             $_SESSION['auth.user.id'] = $user['id'];
             return true;
         }
         return false;
     } catch (\Exception $ex) {
         throw $ex;
     }
 }
Пример #28
0
 public function callbackGateway()
 {
     global $db, $get;
     $Status = $_POST['status'];
     $Refnumber = $_POST['refnumber'];
     $Resnumber = $_POST['resnumber'];
     if ($Status == 100) {
         $ParspalPin = trim($this->merchant);
         $pass = $this->pass;
         $payment = Cshop::app()->getDb()->prepare(QueryBuilder::getInstance()->select()->from('payment')->where('reference = ?'));
         $payment->execute(array($Resnumber));
         $payment = $payment->fetch();
         $amount = round($payment['amount'] / 10);
         $soapclient = new nusoap_client('http://merchant.parspal.com/WebService.asmx?wsdl', 'wsdl');
         $params = array('MerchantID' => $ParspalPin, 'Password' => $pass, 'Price' => $amount, 'RefNum' => $Refnumber);
         $res = $soapclient->call('verifyPayment', $params);
         $Status = $res['verifyPaymentResult']['ResultStatus'];
         if (strtolower($Status) == 'success') {
             return $payment;
         } else {
             $message = 'پرداخت ناموفق است. خطا';
         }
     } else {
         $message = 'پرداخت ناموفق است. خطا';
     }
     throw new Exception($message);
 }
Пример #29
0
 /**
  * Returns ResContainer object or false. 
  * @param array $params  .Parameter array(ResDetailModel::RES_ID => array(res id, res_id2 ...) ) is required
  * @return false|\Av\Res\ResContainer
  */
 public function GetRes($params)
 {
     if (empty($params[self::RES_ID])) {
         return false;
     }
     $szSQL = "SELECT r.*,\n                    rvbi.value as {self::BIG_INT_NAME},\n                    rvi.value as {self::SHORT_INT_NAME},\n                    rvls.value as {self::LONG_STR_NAME},\n                    rvss.value as {self::SHORT_STR_NAME},\n                    rvo.value as {self::OBJ_NAME},\n                    rt.type_name\n                    FROM res_detail r\n                    JOIN res_type rt using(type_id)\n                    LEFT OUTER JOIN res_val_big_int rvbi using(res_id)\n                    LEFT OUTER JOIN res_val_int rvi using(res_id)\n                    LEFT OUTER JOIN res_val_lng_str rvls using(res_id)\n                    LEFT OUTER JOIN res_val_shrt_str rvss using(res_id)\n                    LEFT OUTER JOIN res_val_object rvo  using(res_id)\n                    WHERE r.`res_id` " . \QueryBuilder::multiValues($params[self::RES_ID], true, false);
     $cDB =& $this->GetDBAdapter();
     $rs = $cDB->Execute($szSQL);
     $error = $cDB->ErrorMsg();
     $this->AddDebug(__METHOD__ . " #" . __LINE__ . " SQL : " . print_r($szSQL, true));
     if (!empty($error)) {
         $this->AddDebug(__METHOD__ . " #" . __LINE__ . " SQL ERROR: " . print_r($error, true));
         return false;
     }
     $oResCollection = new ResCollectionContainer();
     while ($this->isValid($rs)) {
         /*
          * add resource only if VALUE is not NULL. Value hase to be set to field with key same as resource type name
          */
         if (isset($rs->fields[self::TYPE_NAME]) && isset($rs->fields[$rs->fields[self::TYPE_NAME]])) {
             $oResCollection->AddToCollection($rs->fields[self::RES_ID], new ResContainer(array(self::VALUE => $rs->fields[$rs->fields[self::TYPE_NAME]], self::RES_ID => $rs->fields[self::RES_ID], self::TYPE_ID => $rs->fields[self::TYPE_ID], self::LOCALE => $rs->fields[self::LOCALE])));
         }
         $rs->MoveNext();
     }
     return $oResCollection->IsEmpty() ? false : $oResCollection;
 }
Пример #30
0
 public function callbackGateway()
 {
     $result = $_POST['Result'];
     $requestId = $_POST['RequestId'];
     $followCode = $_POST['FollowCode'];
     $payment = Cshop::app()->getDb()->prepare(QueryBuilder::getInstance()->select()->from('payment')->where('reference = ?'));
     $payment->execute(array($requestId));
     $amount = round($payment['amout']);
     if ($payment['status'] == Application::STATUS_PENDING) {
         if ($result == 0) {
             if ($_POST[Amount] != $payment['amout']) {
                 $message = 'در اطلاعات پرداختي مغايرت وجود دارد';
             } else {
                 $backResult = file("http://www.sharjiran.net/asan_pardakht/CheckPay2.php?FollowCode={$followCode}&RequestId={$requestId}");
                 if ($backResult[0] == 0 && (int) $backResult[1] == (int) $payment['amout'] && $backResult[2] == trim($this->AccountNumber)) {
                     return $payment;
                 } else {
                     $message = 'تراكنش موفقيت آميز نبود';
                 }
             }
         } else {
             if ($result == -1) {
                 $message = 'در اتصال به درگاه بانك مشكلي پيش آمده يا اينكه اطلاعات پرداختي شما نامعتبر بوده است. ';
             }
         }
     } else {
         $message = 'سفارش قبلا پرداخت شده است.';
     }
     throw new Exception($message);
 }