Apicurio-studio: Ambiente Var "APICURIO_SHARE_FOR_EVERYONE" não funciona bem o suficiente

Criado em 20 set. 2019  ·  3Comentários  ·  Fonte: Apicurio/apicurio-studio

Oi!
Estava testando o ambiente var APICURIO_SHARE_FOR_EVERYONE .
Eu posso ver e editar APIs de outros usuários, mas não está funcionando para ver " Colaboradores " ou " Mocks ".

Pesquisando a causa, descobri que o serviço "getMocks" não verifica a propriedade "isShareForEveryone ()" e retorna um erro 404 HTTP Satus, pois o usuário não tem permissões. O mesmo para a seção "colaboradores".

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, de ?: número, a ?: número): Promessa console.info ("[ApisService] Obtendo todas as simulações para 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",

public getCollaborators (apiId: string): Promise console.info ("[ApisService] Obtendo colaboradores para API Design% 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

@Sobrepor
coleção públicagetMocks (String designId, Integer start, Integer end)
throws ServerError, NotFoundException {
int de = 0;
int para = 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);
    }
}

@Sobrepor
coleção públicagetCollaborators (String designId) throws ServerError, NotFoundException {
logger.debug ("Recuperando todos os colaboradores para API: {}", designId);
metrics.apiCall ("/ designs / {designId} / colaboradores", "GET");

    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);
    }
}

`` `

bug

Comentários muito úteis

Oi! Obrigado pelo seu comentário, procurando o bug, acabei de descobrir que estávamos usando uma versão antiga. 0.2.27.
Desculpe por isso.
Vou atualizar o aplicativo.
Você pode descartar o erro.

Obrigado.

Todos 3 comentários

Obrigado pelo relatório do bug.

@AguRyan Na versão mais recente, descobri que dentro da função hasWritePermission() , isShareForEveryone() está marcada:

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

Você tem alguma outra ideia sobre a causa desse problema?

Oi! Obrigado pelo seu comentário, procurando o bug, acabei de descobrir que estávamos usando uma versão antiga. 0.2.27.
Desculpe por isso.
Vou atualizar o aplicativo.
Você pode descartar o erro.

Obrigado.

Esta página foi útil?
0 / 5 - 0 avaliações