public function service()
 {
     $userSubUsersManager = new UserSubUsersManager($this->config, $this->args);
     $subUserId = $userSubUsersManager->secure($_REQUEST["user_id"]);
     $userId = $this->sessionManager->getUser()->getId();
     if ($userSubUsersManager->getByUserIdAndSubUserId($userId, $subUserId)) {
         $userSubUsersManager->removeSubUserFromUser($subUserId, $userId);
         $jsonArr = array('status' => "ok", "message" => "Sub user removed!");
         echo json_encode($jsonArr);
         return true;
     } else {
         $jsonArr = array('status' => "err", "errText" => "System Error: Sub user dosn't exist in your sub users list!");
         echo json_encode($jsonArr);
         return false;
     }
 }
Ejemplo n.º 2
0
 /**
  * Returns an singleton instance of this class
  *
  * @param object $config
  * @param object $args
  * @return
  */
 public static function getInstance($config, $args)
 {
     if (self::$instance == null) {
         self::$instance = new UserSubUsersManager($config, $args);
     }
     return self::$instance;
 }
Ejemplo n.º 3
0
 public function load()
 {
     $userManager = UserManager::getInstance($this->config, $this->args);
     $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args);
     $userId = $this->getUserId();
     $subUsersDtos = $userSubUsersManager->getUserSubUsers($userId);
     $this->addParam("subUsers", $subUsersDtos);
     $this->addParam("userManager", $userManager);
 }
Ejemplo n.º 4
0
 public function load()
 {
     $this->addParam('under_construction', $this->getCmsVar('under_construction'));
     $winUid = uniqid();
     $this->addParam("winUid", $winUid);
     $refererUrl = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
     if (!empty($refererUrl) && strpos($refererUrl, $_SERVER['HTTP_HOST']) === false) {
         $referersManager = ReferersManager::getInstance($this->config, $this->args);
         $referersManager->addRow($refererUrl, $_SERVER['REQUEST_URI']);
     }
     if (isset($_REQUEST["lang"])) {
         $lc = $_REQUEST["lang"];
         $this->setcookie('ul', $lc);
         $_COOKIE['ul'] = $lc;
     }
     if (isset($_REQUEST["activation_code"])) {
         $user_activation_code = $this->secure($_REQUEST["activation_code"]);
         $userManager = UserManager::getInstance($this->config, $this->args);
         $inactiveUser = $userManager->getUserByActivationCode($user_activation_code);
         if ($inactiveUser) {
             if ($inactiveUser->getActive() == 1) {
                 $this->addParam('user_activation', 'already activated');
             } else {
                 $inactiveUser->setActive(1);
                 $userManager->updateByPK($inactiveUser);
                 $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args);
                 $prentId = $userSubUsersManager->getUserParentId($inactiveUser->getId());
                 if ($prentId > 0) {
                     $invbonus = intval($this->getCmsVar("bonus_points_for_every_accepted_invitation"));
                     $userManager->addUserPoints($prentId, $invbonus, $invbonus . " bonus for invitation accept from user number: " . $inactiveUser->getId());
                 }
                 $this->addParam('user_activation', 'just activated');
             }
         }
     }
     $userLevel = $this->sessionManager->getUser()->getLevel();
     if ($userLevel === UserGroups::$GUEST) {
         if (isset($_GET["invc"])) {
             $this->setCookie('invc', $this->secure($_REQUEST["invc"]));
         } else {
             if (isset($_GET["invitation_code"])) {
                 //depracated should be removed
                 $this->setCookie('invc', $this->secure($_REQUEST["invitation_code"]));
             }
         }
     }
 }
Ejemplo n.º 5
0
 public function deleteUserAndDependencies($id)
 {
     $userDto = $this->selectByPK($id);
     if ($userDto) {
         $email = $userDto->getEmail();
         $this->deleteByPK($id);
         $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args);
         $userSubUsersManager->deleteByField('user_id', $id);
         $userPendingSubUsersManager = UserPendingSubUsersManager::getInstance($this->config, $this->args);
         $userPendingSubUsersManager->deleteByField('user_id', $id);
         require_once CLASSES_PATH . "/managers/CustomerCartManager.class.php";
         $customerCartManager = CustomerCartManager::getInstance($this->config, $this->args);
         $customerCartManager->deleteByField('email', $email);
         require_once CLASSES_PATH . "/managers/CustomerLocalEmailsManager.class.php";
         $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args);
         $customerLocalEmailsManager->deleteByField('customer_email', $email);
         require_once CLASSES_PATH . "/managers/CompanyDealersManager.class.php";
         $companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args);
         $companyDealersManager->deleteByField('user_id', $id);
     }
 }
 public function addCustomerMessagesAfterLoginByPreviousPing($custDto, $userLevel, $previousPing)
 {
     if ($userLevel === UserGroups::$GUEST) {
         return false;
     }
     $custEmail = $custDto->getEmail();
     $companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args);
     $userCompaniesIdsArray = array();
     if ($userLevel === UserGroups::$USER) {
         $userCompaniesIdsArray = $companyDealersManager->getUserCompaniesIdsArray($custDto->getId());
     }
     if ($userLevel === UserGroups::$COMPANY || $userLevel === UserGroups::$ADMIN || !empty($userCompaniesIdsArray)) {
         //new prices after last ping
         $companiesPriceListManager = CompaniesPriceListManager::getInstance($this->config, $this->args);
         $allPricesAfterTime = $companiesPriceListManager->getAllPricesAfterTime($previousPing, $userCompaniesIdsArray);
         if (!empty($allPricesAfterTime)) {
             $pre = HTTP_PROTOCOL . HTTP_HOST;
             $massage = '';
             foreach ($allPricesAfterTime as $dto) {
                 $companyName = $dto->getCompanyName() . ' (`558`: ' . $dto->getUploadDateTime() . ')';
                 $companyId = $dto->getCompanyId();
                 $pricePath = HTTP_PROTOCOL . HTTP_HOST . '/price/last_price/' . $companyId;
                 $massage .= '<div><a href="' . $pricePath . '"><img src="' . $pre . '/images/small_logo/' . $companyId . '" style="vertical-align: middle;" /> ' . $companyName . '</a></div>';
             }
             $this->addCustomerMessage($custEmail, '540', $massage, 1, 'attention');
         }
     }
     //new added dealers messages for (company only)
     if ($userLevel === UserGroups::$COMPANY || $userLevel === UserGroups::$ADMIN) {
         $dealersAfterGivenDatetime = $companyDealersManager->getAfterGivenDatetime($userLevel === UserGroups::$ADMIN ? 0 : intval($custDto->getId()), $previousPing);
         if (!empty($dealersAfterGivenDatetime)) {
             $this->addCustomerMessage($custEmail, '543', '`541` ' . count($dealersAfterGivenDatetime) . '`542`', 1, 'attention');
         }
     }
     //alert to admin if dollar rate doeasn't match to config rate
     if ($userLevel === UserGroups::$ADMIN) {
         $cbaRatesManager = CbaRatesManager::getInstance($this->config, $this->args);
         $latestUSDExchange = $cbaRatesManager->getLatestUSDExchange();
         $us_dollar_exchange = floatval($this->getCmsVar('us_dollar_exchange'));
         $us_dollar_exchange_down = floatval($this->getCmsVar('us_dollar_exchange_down'));
         $pcstoreAverageUSDExchange = ($us_dollar_exchange + $us_dollar_exchange_down) / 2;
         $maxAllowedDollarDifferenceParcent = floatval($this->getCmsVar('admin_alert_if_cba_dollar_rate_is_more_than_percent'));
         if (abs($latestUSDExchange - $pcstoreAverageUSDExchange) / $latestUSDExchange > $maxAllowedDollarDifferenceParcent / 100) {
             $this->addCustomerMessage($custEmail, '483', 'Cba rate for USD Dollar ($) is: ' . $latestUSDExchange, 1, 'warning');
         }
     }
     //new added bonuses to user (users only)
     if ($userLevel === UserGroups::$USER) {
         $bonusHistoryManager = BonusHistoryManager::getInstance($this->config, $this->args);
         $userBonusesAfterGivenDatetime = $bonusHistoryManager->getUserBonusesAfterGivenDatetime($custDto->getId(), $previousPing);
         if (!empty($userBonusesAfterGivenDatetime)) {
             $pointSum = 0;
             foreach ($userBonusesAfterGivenDatetime as $bDto) {
                 $pointSum += intval($bDto->getPoints());
             }
             $pointSum = intval($pointSum);
             if ($pointSum > 0) {
                 $phraseId = '544';
             } else {
                 $phraseId = '548';
             }
             $this->addCustomerMessage($custEmail, '545', '`' . $phraseId . '` ' . strval(intval(abs($pointSum))) . 'դր.`542`', 1, 'attention');
         }
     }
     //new added sub users (users only)
     if ($userLevel === UserGroups::$USER) {
         $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args);
         $rowsAddedAfterGivenDatetime = $userSubUsersManager->getRowsAddedAfterGivenDatetime($custDto->getId(), $previousPing);
         if (!empty($rowsAddedAfterGivenDatetime)) {
             $this->addCustomerMessage($custEmail, '546', strval(count($rowsAddedAfterGivenDatetime)) . ' `547`', 1, 'attention');
         }
     }
     $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args);
     $unreadEmailsCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($custEmail);
     if ($unreadEmailsCount > 0) {
         $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args);
         $customerAlertsManager->addUnreadEmailsCustomerAlert($custEmail, $unreadEmailsCount);
     }
 }
 public function getUserParentIdByUserOrderId($orderId)
 {
     $userDto = $this->getUserByUserOrderId($orderId);
     if ($userDto) {
         $userId = $userDto->getId();
         $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args);
         return $userSubUsersManager->getUserParentId($userId);
     }
     return 0;
 }