コード例 #1
0
ファイル: basecamp.php プロジェクト: bigset1/blueridge
    }
    $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/');
});
コード例 #2
0
ファイル: cart.php プロジェクト: bigset1/blueridge
$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/');
    }
});