public function createPayment(OrderInterface $order, $moduleName, $methodName, array $details = []) { try { $this->entityManager->beginTransaction(); $payment = new Payment(); $payment->setOrder($order); $payment->setCurrency($order->getCurrency()); $payment->setAmount($order->getPrice()); $payment->setPaymentModule($this->entityManager->getReference("AgitOrderBundle:PaymentModule", $moduleName)); $payment->setPaymentMethod($this->entityManager->getReference("AgitOrderBundle:PaymentMethod", $methodName)); $payment->setCode(StringHelper::createRandomString(8, "un")); $payment->setCreated(new DateTime()); $payment->setDetails($details); $payment->setStatus(Payment::STATUS_OPEN); $order->addPayment($payment); $this->persistPayment($payment); $this->eventDispatcher->dispatch("agit.payment.created", new PaymentEvent($payment)); $this->entityManager->commit(); } catch (Exception $e) { $this->entityManager->rollback(); throw $e; } return $payment; }
public function createUser($name, $email, $role = null, $active = true) { $ivSize = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB); $iv = mcrypt_create_iv($ivSize, MCRYPT_RAND); $salt = sha1(microtime(true) . $iv); $randPass = StringHelper::createRandomString(15) . "Aa1"; // suffix needed to ensure PW policy compliance // find out which class implements the User entity $userMetadata = $this->entityManager->getClassMetadata("AgitUserBundle:UserInterface"); $userClass = $userMetadata->name; $user = new $userClass(); $user->setName($name); $user->setEmail($email); $user->setRole($role ? $this->entityManager->getReference("AgitUserBundle:UserRole", $role) : null); $user->setDeleted(!$active); $user->setSalt($salt); $this->setPassword($user, $randPass); $errors = $this->entityValidator->validate($user, new Valid(["traverse" => true])); if (count($errors) > 0) { throw new InvalidParametersException((string) $errors); } return $user; }
public function initToken() { if (!$this->sessionService->get(self::sessionKey)) { $this->sessionService->set(self::sessionKey, StringHelper::createRandomString(25)); } }