public function load()
 {
     $userPendingSubUsersManager = UserPendingSubUsersManager::getInstance($this->config, $this->args);
     $userId = $this->getUserId();
     $pending_users = $userPendingSubUsersManager->getByUserIdOrderByDate($userId);
     $this->addParam("pendingUsers", $pending_users);
 }
 /**
  * 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 UserPendingSubUsersManager($config, $args);
     }
     return self::$instance;
 }
 public function service()
 {
     $userPendingSubUsersManager = new UserPendingSubUsersManager($this->config, $this->args);
     $pendingUserEmail = $userPendingSubUsersManager->secure($_REQUEST["user_email"]);
     $userId = $this->sessionManager->getUser()->getId();
     if ($userPendingSubUsersManager->getByUserIdAndPendingSubUserEmail($userId, $pendingUserEmail)) {
         $userPendingSubUsersManager->removePendingSubUserFromUser($userId, $pendingUserEmail);
         $jsonArr = array('status' => "ok", "message" => "Invitation successfully removed!");
         echo json_encode($jsonArr);
         return true;
     } else {
         $jsonArr = array('status' => "err", "errText" => "System Error: Email dosn't exist in your pending emails list!");
         echo json_encode($jsonArr);
         return false;
     }
 }
 public function service()
 {
     $userManager = UserManager::getInstance($this->config, $this->args);
     $userPendingSubUsersManager = new UserPendingSubUsersManager($this->config, $this->args);
     $emailSenderManager = new EmailSenderManager('gmail');
     $userId = $this->getUserId();
     $user = $userManager->selectByPK($userId);
     $subUsersRegistrationCode = $user->getSubUsersRegistrationCode();
     if ($subUsersRegistrationCode == null || strlen($subUsersRegistrationCode) == 0) {
         $subUsersRegistrationCode = uniqid();
         $userManager->setSubUsersRegistrationCode($userId, $subUsersRegistrationCode);
     }
     if (isset($_REQUEST["emails"])) {
         $emails = $this->secure($_REQUEST["emails"]);
         $emailsArray = explode(',', $emails);
         $validEmailToBeInvited = array();
         foreach ($emailsArray as $email) {
             if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                 $customerByEmail = $userManager->getCustomerByEmail($email);
                 if (!isset($customerByEmail)) {
                     $byUserIdAndPendingSubUserEmail = $userPendingSubUsersManager->getByUserIdAndPendingSubUserEmail($userId, $email);
                     if (!isset($byUserIdAndPendingSubUserEmail)) {
                         $userPendingSubUsersManager->addPendingSubUserEmailToUser($email, $userId);
                         $validEmailToBeInvited[] = $email;
                     }
                 }
             }
         }
         if (count($validEmailToBeInvited) > 0) {
             $from = $userManager->getRealEmailAddress($userId);
             $username = $user->getName();
             $subject = $username . " invites you to join PcStore!";
             $template = "user_to_user_invitation";
             $params = array("user_name" => $username, "invitation_code" => $subUsersRegistrationCode);
             $fromName = $user->getName() . ' ' . $user->getLastName();
             $emailSenderManager->sendEmail('news', $validEmailToBeInvited, $subject, $template, $params, $from, $fromName);
         }
         $this->ok(array("message" => $this->getPhraseSpan(603)));
     } elseif (isset($_REQUEST["user_email"])) {
         $pendingUserEmail = $this->secure($_REQUEST["user_email"]);
         if (filter_var($pendingUserEmail, FILTER_VALIDATE_EMAIL)) {
             if ($userManager->getCustomerByEmail($pendingUserEmail)) {
                 $this->error(array("errText" => $this->getPhraseSpan(359)));
             }
             if (!$userPendingSubUsersManager->getByUserIdAndPendingSubUserEmail($userId, $pendingUserEmail)) {
                 $userPendingSubUsersManager->addPendingSubUserEmailToUser($pendingUserEmail, $userId);
                 //sending invitation email to user
                 $from = $userManager->getRealEmailAddress($userId);
                 $username = $user->getName();
                 $subject = $username . " invites you to join PcStore!";
                 $template = "user_to_user_invitation";
                 $params = array("user_name" => $username, "invitation_code" => $subUsersRegistrationCode);
                 $fromName = $user->getName() . ' ' . $user->getLastName();
                 $emailSenderManager->sendEmail('news', $pendingUserEmail, $subject, $template, $params, $from, $fromName);
                 $this->ok(array("message" => $this->getPhraseSpan(603)));
             } else {
                 $this->error(array("errText" => $this->getPhraseSpan(605)));
             }
         } else {
             $this->error(array("errText" => $this->getPhraseSpan(471)));
         }
     } elseif (isset($_REQUEST["invitation_id"])) {
         $invitationId = intval($_REQUEST["invitation_id"]);
         $from = $userManager->getRealEmailAddress($userId);
         $username = $user->getName();
         $subject = $username . " invites you to join PcStore!";
         $template = "user_to_user_invitation";
         $params = array("user_name" => $username, "invitation_code" => $subUsersRegistrationCode);
         $fromName = $user->getName() . ' ' . $user->getLastName();
         $dto = $userPendingSubUsersManager->selectByPK($invitationId);
         $pendingSubUserEmail = $dto->getPendingSubUserEmail();
         $emailSenderManager->sendEmail('news', $pendingSubUserEmail, $subject, $template, $params, $from, $fromName);
         $dto->setLastSent(date('Y-m-d H:i:s'));
         $userPendingSubUsersManager->updateByPk($dto);
         $this->ok(array("message" => $this->getPhraseSpan(603)));
     }
 }
 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);
     }
 }