Apicurio-studio: Umgebungsvariable "APICURIO_SHARE_FOR_EVERYONE" funktioniert nicht gut genug

Erstellt am 20. Sept. 2019  ·  3Kommentare  ·  Quelle: Apicurio/apicurio-studio

Hi!
Ich habe die Umgebungsvariable APICURIO_SHARE_FOR_EVERYONE ausprobiert .
Ich kann APIs von anderen Benutzern sehen und bearbeiten, aber es funktioniert nicht, " Mitarbeiter " oder " Mocks " zu sehen.

Bei der Suche nach der Ursache habe ich festgestellt, dass der Dienst "getMocks" die Eigenschaft "isShareForEveryone()" nicht überprüft und einen 404 HTTP Error Satus zurückgibt, da der Benutzer keine Berechtigungen hat. Gleiches gilt für den Abschnitt "Mitarbeiter".

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): Versprechen console.info("[ApisService] Alle Mocks für API %s abrufen", 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] Mitarbeiter für API-Design %s abrufen", 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

@Überschreiben
öffentliche SammlunggetMocks(String designId, Integer-Anfang, Integer-Ende)
wirft ServerError, NotFoundException {
int von = 0;
int bis = 20;
if (start != null) {
from = start.intValue();
}
if (ende != 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);
    }
}

@Überschreiben
öffentliche SammlunggetCollaborators(String designId) wirft ServerError, NotFoundException {
logger.debug("Alle Mitarbeiter für API abrufen: {}", designId);
metrics.apiCall("/designs/{designId}/collaborators", "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

Hilfreichster Kommentar

Hi! Vielen Dank für Ihren Kommentar, auf der Suche nach dem Fehler, ich habe gerade herausgefunden, dass wir eine alte Version verwenden. 0.2.27.
Das tut mir leid.
Ich werde die App aktualisieren.
Sie können den Fehler verwerfen.

Vielen Dank.

Alle 3 Kommentare

Danke für den Fehlerbericht.

@AguRyan In der neuesten Version finde ich heraus, dass in der Funktion hasWritePermission() isShareForEveryone() überprüft wird:

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

Haben Sie eine andere Idee, was die Ursache für dieses Problem ist?

Hi! Vielen Dank für Ihren Kommentar, auf der Suche nach dem Fehler, ich habe gerade herausgefunden, dass wir eine alte Version verwenden. 0.2.27.
Das tut mir leid.
Ich werde die App aktualisieren.
Sie können den Fehler verwerfen.

Vielen Dank.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen