} $userDetails['profile'] = ['accounts' => $authorization['accounts'], 'projects' => []]; $basecampDetails = ['token' => $token, 'accounts' => $authorization['accounts'], 'identity' => $authorization['identity']]; $userQr = $blueridge['documentManager']->getRepository('\\Blueridge\\Documents\\User'); $user = $userQr->findOneByEmail($userDetails['email']); if (empty($user)) { $activation = Doorman::getCode(); $userDetails['member_since'] = new \DateTime(); $userDetails['status'] = 'new'; $userDetails['roles'] = 'user'; $userDetails['key'] = $activation['key']; $user = new User(); $user->setProperties($userDetails); $blueridge['documentManager']->persist($user); $blueridge['documentManager']->flush(); $subscription = Teller::addCustomer($blueridge['configs']['services'], $user->toArray()); $userQr->setSubscription($user, $subscription); Resque::enqueue('mail', 'Blueridge\\Jobs\\SendSignUpEmail', ['userid' => $user->id]); Resque::enqueue('mail', 'Blueridge\\Jobs\\UpdateMailingListSubscription', ['userid' => $user->id, 'groups' => ['Forever Free']]); } $identifier = Doorman::getCode(); $userQr->setProvider($user, 'basecamp', $basecampDetails); $userQr->setIdentifierKey($user, $identifier['key']); $providerAdapter = new ProviderAdapter($blueridge['documentManager'], $userDetails['email'], $identifier['code']); $result = $blueridge['authenticationService']->authenticate($providerAdapter); $app->setCookie('_blrdg_connect', "{$userDetails['email']}:{$identifier['code']}", '14 days'); if ($user->status != 'active') { $app->redirect('/app/projects/'); } $app->redirect('/app/todos/'); });
$app->post('/app/cart/update-subscription/', function () use($app, $blueridge) { $plan = $app->request->post('plan'); if (empty($plan)) { $app->render("common/error-500.html", ['message' => 'We have a problem updating your plan ', 500]); } else { switch ($plan) { case 'br-pro': $planDescription = 'Pro'; break; case 'br-manager': $planDescription = 'Manager'; break; case 'br-solo': $planDescription = 'Solo'; break; case 'br-free': default: $planDescription = 'Forever Free'; break; } $userQr = $blueridge['documentManager']->getRepository('\\Blueridge\\Documents\\User'); $user = $userQr->findOneById($blueridge['authenticationService']->getIdentity()); $plan = Teller::updateSubscription($blueridge['configs']['services'], $user->subscription['customerId'], $plan); $updated = $userQr->updateSubscriptionPlan($user, $plan); if (empty($updated['err'])) { $app->flash('success', 'Your subscription has been updated successfully'); Resque::enqueue('mail', 'Blueridge\\Jobs\\UpdateMailingListSubscription', ['userid' => $user->id, 'groups' => [$planDescription]]); } $app->redirect('/app/profile/'); } });