Apicurio-studio: Вариант среды "APICURIO_SHARE_FOR_EVERYONE" работает недостаточно хорошо

Созданный на 20 сент. 2019  ·  3Комментарии  ·  Источник: Apicurio/apicurio-studio

Привет!
Я пробовал среду var APICURIO_SHARE_FOR_EVERYONE .
Я могу видеть и редактировать API других пользователей, но не могу видеть « Соавторы » или « Моки ».

Исследуя причину, я обнаружил, что служба getMocks не проверяет свойство isShareForEveryone () и не возвращает ошибку 404 HTTP Error Satus, поскольку у пользователя нет разрешений. То же и с разделом «соавторы».

ApicurioError

https://github.com/Apicurio/apicurio-studio/blob/master/front-end/studio/src/app/services/apis.service.ts

this.endpoint ("/ designs /: designId / mocks",

`` ''

public getMocks (apiId: string, from ?: number, to ?: number): Promise console.info ("[ApisService] Получение всех моков для API% s", apiId);

    let getMocksUrl: string = this.endpoint("/designs/:designId/mocks", {
        designId: apiId
    }, {
        start: from,
        end: to
    });

    let options: any = this.options({ "Accept": "application/json" });

    console.info("[ApisService] Fetching API mocks: %s", getMocksUrl);
    return this.httpGet<ApiMock[]>(getMocksUrl, options);
}

> this.endpoint("/designs/:designId/collaborators",

общедоступные getCollaborators (apiId: строка): Обещание console.info ("[ApisService] Получение соавторов для разработки API% s", apiId);

    let getCollaboratorsUrl: string = this.endpoint("/designs/:designId/collaborators", {
        designId: apiId
    });
    let options: any = this.options({ "Accept": "application/json" });

    console.info("[ApisService] Fetching collaborator list: %s", getCollaboratorsUrl);
    return this.httpGet<ApiCollaborator[]>(getCollaboratorsUrl, options);
}

**https://github.com/Apicurio/apicurio-studio/blob/master/back-end/hub-api/src/main/java/io/apicurio/hub/api/rest/impl/DesignsResource.java**

> !this.storage.hasWritePermission

@Override
публичная коллекцияgetMocks (String designId, Целочисленное начало, Целочисленное окончание)
выбрасывает ServerError, NotFoundException {
int from = 0;
int to = 20;
if (start! = null) {
from = start.intValue ();
}
if (end! = null) {
to = end.intValue ();
}

    try {
        String user = this.security.getCurrentUser().getLogin();
        if (!this.storage.hasWritePermission(user, designId)) {
            throw new NotFoundException();
        }
        return this.storage.listApiDesignMocks(designId, from, to);
    } catch (StorageException e) {
        throw new ServerError(e);
    }
}

@Override
публичная коллекцияgetCollaborators (String designId) выбрасывает ServerError, NotFoundException {
logger.debug («Получение всех соавторов для API: {}», designId);
metrics.apiCall ("/ дизайны / {designId} / соавторы", "ПОЛУЧИТЬ");

    try {
        String user = this.security.getCurrentUser().getLogin();
        if (!this.storage.hasWritePermission(user, designId)) {
            throw new NotFoundException();
        }
        return this.storage.listPermissions(designId);
    } catch (StorageException e) {
        throw new ServerError(e);
    }
}

`` ''

Самый полезный комментарий

Привет! Спасибо за комментарий, ищу ошибку, я только что узнал, что мы использовали старую версию. 0.2.27.
Прости за это.
Я обновлю приложение.
Вы можете отклонить ошибку.

Спасибо.

Все 3 Комментарий

Спасибо за отчет об ошибке.

@AguRyan В последнем выпуске, я считаю, что внутри hasWritePermission() функции isShareForEveryone() проверяется:

https://github.com/Apicurio/apicurio-studio/blob/v0.2.43.Final/back-end/hub-core/src/main/java/io/apicurio/hub/core/storage/jdbc/JdbcStorage. java # L275

Есть ли у вас какие-либо другие представления о том, в чем причина этой проблемы?

Привет! Спасибо за комментарий, ищу ошибку, я только что узнал, что мы использовали старую версию. 0.2.27.
Прости за это.
Я обновлю приложение.
Вы можете отклонить ошибку.

Спасибо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги