Example #1
0
 /**
  * Link XLite and CMS profiles
  *
  * @param \XLite\Model\Profile $profile      XLite profile
  * @param integer              $cmsProfileId CMS profile id
  *
  * @return void
  */
 public function linkProfiles(\XLite\Model\Profile $profile, $cmsProfileId)
 {
     $profile->setCMSProfileId($cmsProfileId);
     $profile->setCMSName(\XLite\Module\CDev\DrupalConnector\Handler::getInstance()->getCMSName());
     $this->defineUnlinkProfilesQuery($cmsProfileId)->execute();
     $this->defineLinkProfilesQuery($profile->getProfileId(), $cmsProfileId)->execute();
 }
Example #2
0
 /**
  * Define query for findAllOrdersWithEgoods() method
  *
  * @param \XLite\Model\Profile $profile Profile OPTIONAL
  *
  * @return \XLite\Model\QuieryBuilder\AQueryBuilder
  */
 protected function defineFindAllOrdersWithEgoodsQuery(\XLite\Model\Profile $profile = null)
 {
     $qb = $this->createQueryBuilder('o')->innerJoin('o.items', 'item')->innerJoin('item.privateAttachments', 'pa')->leftJoin('o.orig_profile', 'op')->orderBy('o.date', 'desc');
     if ($profile) {
         $qb->andWhere('op.profile_id = :opid')->setParameter('opid', $profile->getProfileId());
     }
     return $qb;
 }
Example #3
0
 /**
  * Check - need set root access or not
  *
  * @param \XLite\Model\Profile $profile Profile
  *
  * @return boolean
  */
 protected function needSetRootAccess(\XLite\Model\Profile $profile)
 {
     $onlyOneRootAdmin = false;
     if ($profile->getProfileId()) {
         $cnd = new \XLite\Core\CommonCell();
         $cnd->permissions = \XLite\Model\Role\Permission::ROOT_ACCESS;
         $i = 0;
         foreach (\XLite\Core\Database::getRepo('XLite\\Model\\Profile')->search($cnd) as $p) {
             $i++;
             if ($profile->getProfileId() == $p->getProfileId()) {
                 $onlyOneRootAdmin = true;
             }
         }
         if (1 < $i) {
             $onlyOneRootAdmin = false;
         }
     }
     return 1 == \XLite\Core\Database::getRepo('XLite\\Model\\Role')->count() || $onlyOneRootAdmin;
 }
Example #4
0
 /**
  * Prepare certain search condition
  *
  * @param \Doctrine\ORM\QueryBuilder $queryBuilder Query builder to prepare
  * @param \XLite\Model\Profile       $value        Profile
  *
  * @return void
  */
 protected function prepareCndProfile(\Doctrine\ORM\QueryBuilder $queryBuilder, \XLite\Model\Profile $value)
 {
     if (!empty($value)) {
         $queryBuilder->andWhere('op.profile_id = :opid')->setParameter('opid', $value->getProfileId());
     }
 }
Example #5
0
 /**
  * Set original profile
  * FIXME: is it really needed?
  *
  * @param \XLite\Model\Profile $profile Profile OPTIONAL
  *
  * @return void
  */
 public function setOrigProfile(\XLite\Model\Profile $profile = null)
 {
     if ($this->getOrigProfile() && $this->getOrigProfile()->getOrder() && (!$profile || $this->getOrigProfile()->getProfileId() != $profile->getProfileId()) && (!$this->getProfile() || $this->getOrigProfile()->getProfileId() != $this->getProfile()->getProfileId())) {
         $this->getOrigProfile()->setOrder(null);
     }
     $this->orig_profile = $profile;
 }
Example #6
0
 /**
  * Bind only profiles with same login
  *
  * @param \XLite\Model\Profile $profile Profile
  *
  * @return \XLite\Model\QueryBuilder\AQueryBuilder
  */
 public function bindSameLogin(\XLite\Model\Profile $profile)
 {
     return $this->andWhere('p.login = :login')->andWhere('p.profile_id != :profileId')->setParameter('login', $profile->getLogin())->setParameter('profileId', $profile->getProfileId() ?: 0);
 }
 /**
  * {@inheritDoc}
  */
 public function getProfileId()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getProfileId', array());
     return parent::getProfileId();
 }
Example #8
0
 /**
  * Prepare query for countItemsPurchasedByCustomer() method
  *
  * @param integer              $productId Product Id
  * @param \XLite\Model\Profile $profile   Customer profile
  *
  * @return \Doctrine\ORM\QueryBuilder
  */
 protected function defineCountItemsPurchasedByCustomer($productId, $profile)
 {
     $qb = $this->createQueryBuilder('i');
     $qb->select('COUNT(i.item_id)')->innerJoin('i.object', 'p')->innerJoin('i.order', 'o')->innerJoin('o.orig_profile', 'profile')->innerJoin('o.paymentStatus', 'ps')->andWhere('p.product_id = :productId')->andWhere('profile.profile_id = :profileId')->andWhere($qb->expr()->in('ps.code', \XLite\Model\Order\Status\Payment::getPaidStatuses()))->setParameter('productId', $productId)->setParameter('profileId', $profile->getProfileId());
     return $qb;
 }
Example #9
0
File: Auth.php Project: kingsj/core
 /**
  * User can access profile only in two cases:
  * 1) he/she is an admin
  * 2) its the user's own account
  *
  * @param \XLite\Model\Profile $profile Profile to check
  *
  * @return boolean
  */
 protected function checkProfileAccessibility(\XLite\Model\Profile $profile)
 {
     return $this->isAdmin($this->getProfile()) || $this->getProfile()->getProfileId() == $profile->getProfileId();
 }
Example #10
0
 /**
  * JS code to redirect back to saved cards page
  *
  * @return string 
  */
 protected function getRediectCode(\XLite\Model\Profile $profile)
 {
     $url = \XLite::getInstance()->getShopUrl(\XLite\Core\Converter::buildUrl('saved_cards', '', array('profile_id' => $profile->getProfileId()), $profile->getPendingZeroAuthInterface()));
     return '<script type="text/javascript">' . 'window.parent.location = "' . $url . '";' . '</script>';
 }
Example #11
0
 /**
  * Define query for findUserWithSameLogin() method
  *
  * @param \XLite\Model\Profile $profile Profile object
  *
  * @return \Doctrine\ORM\QueryBuilder
  */
 protected function defineFindUserWithSameLoginQuery(\XLite\Model\Profile $profile)
 {
     $queryBuilder = $this->createQueryBuilder()->andWhere('p.login = :login')->andWhere('p.profile_id != :profileId')->setParameter('login', $profile->getLogin())->setParameter('profileId', $profile->getProfileId() ?: 0)->setMaxResults(1);
     if ($profile->getOrder()) {
         $queryBuilder->innerJoin('p.order', 'porder')->andWhere('porder.order_id = :orderId')->setParameter('orderId', $profile->getOrder()->getOrderId());
     } else {
         $queryBuilder->andWhere('p.order is null');
     }
     return $queryBuilder;
 }