示例#1
0
    $extensionsDirectory = APPLICATION_PATH . "/extensions";
    $responseData = (require "{$extensionsDirectory}/{$extensionName}/api.php");
    $nonceOptions = $requestNonceProvider->getOptions();
    $newNonces = $requestNonceProvider->getNewNoncesThisRequest();
    header($nonceOptions['nonce_response_header'] . ': ' . implode($newNonces, ","));
    if (!is_array($responseData)) {
        throw new \RuntimeException("Extension {$extensionName} must return array, got " . gettype($responseData) . " instead.");
    }
    return JsonView::render($responseData);
}
/**
 * Slim Routes
 * (Collections arranged alphabetically)
 */
$app->post("/{$v}/auth/login/?", function () use($app, $ZendDb, $acl, $requestNonceProvider) {
    $response = array('message' => "Wrong username/password", 'success' => false, 'all_nonces' => $requestNonceProvider->getAllNonces());
    if (Auth::loggedIn()) {
        $response['success'] = true;
        return JsonView::render($response);
    }
    $req = $app->request();
    $email = $req->post('email');
    $password = $req->post('password');
    $Users = new DirectusUsersTableGateway($acl, $ZendDb);
    $user = $Users->findOneBy('email', $email);
    // ------------------------------
    // Check if group needs whitelist
    $groupId = $user['group'];
    $directusGroupsTableGateway = new DirectusGroupsTableGateway($acl, $ZendDb);
    $group = $directusGroupsTableGateway->find($groupId);
    if (1 == $group['restrict_to_ip_whitelist']) {
示例#2
0
    } else {
        $email = $request->post('email');
        $password = $request->post('password');
    }
    if ($email && $password) {
        $user = Auth::getUserByAuthentication($email, $password);
        if ($user) {
            unset($response['message']);
            $response['success'] = true;
            $response['data'] = ['token' => $user['token']];
        }
    }
    return JsonView::render($response);
})->name('request_token');
$app->post("/{$v}/auth/login/?", function () use($app, $ZendDb, $acl, $requestNonceProvider) {
    $response = ['message' => __t('incorrect_email_or_password'), 'success' => false, 'all_nonces' => $requestNonceProvider->getAllNonces()];
    if (Auth::loggedIn()) {
        $response['success'] = true;
        return JsonView::render($response);
    }
    $req = $app->request();
    $email = $req->post('email');
    $password = $req->post('password');
    $Users = new DirectusUsersTableGateway($acl, $ZendDb);
    $user = $Users->findOneBy('email', $email);
    if (!$user) {
        return JsonView::render($response);
    }
    // ------------------------------
    // Check if group needs whitelist
    $groupId = $user['group'];
示例#3
0
function getNonces()
{
    $requestNonceProvider = new RequestNonceProvider();
    $nonces = array_merge($requestNonceProvider->getOptions(), array('pool' => $requestNonceProvider->getAllNonces()));
    return $nonces;
}
示例#4
0
文件: api.php 项目: terrygl/directus
    $extensionsDirectory = APPLICATION_PATH . "/extensions";
    $responseData = (require "{$extensionsDirectory}/{$extensionName}/api.php");
    $nonceOptions = $requestNonceProvider->getOptions();
    $newNonces = $requestNonceProvider->getNewNoncesThisRequest();
    header($nonceOptions['nonce_response_header'] . ': ' . implode($newNonces, ","));
    if (!is_array($responseData)) {
        throw new \RuntimeException("Extension {$extensionName} must return array, got " . gettype($responseData) . " instead.");
    }
    return JsonView::render($responseData);
}
/**
 * Slim Routes
 * (Collections arranged alphabetically)
 */
$app->post("/{$v}/auth/login/?", function () use($app, $ZendDb, $acl, $requestNonceProvider) {
    $response = array('message' => "Wrong username/password", 'success' => false, 'all_nonces' => $requestNonceProvider->getAllNonces());
    if (Auth::loggedIn()) {
        $response['success'] = true;
        return JsonView::render($response);
    }
    $req = $app->request();
    $email = $req->post('email');
    $password = $req->post('password');
    $Users = new DirectusUsersTableGateway($acl, $ZendDb);
    $user = $Users->findOneBy('email', $email);
    // ------------------------------
    // Check if group needs whitelist
    $groupId = $user['group'];
    $directusGroupsTableGateway = new DirectusGroupsTableGateway($acl, $ZendDb);
    $group = $directusGroupsTableGateway->find($groupId);
    // if (1 == $group['restrict_to_ip_whitelist']) {