Apicurio-studio: Lingkungan Var "APICURIO_SHARE_FOR_EVERYONE" tidak berfungsi dengan baik

Dibuat pada 20 Sep 2019  ·  3Komentar  ·  Sumber: Apicurio/apicurio-studio

Hai!
Saya mencoba lingkungan var APICURIO_SHARE_FOR_EVERYONE .
Saya dapat melihat dan mengedit API dari pengguna lain, tetapi tidak berfungsi untuk melihat " Kolaborator " atau " Mengejek ".

Mencari penyebabnya, saya menemukan bahwa layanan "getMocks" tidak memeriksa properti "isShareForEveryone()" dan mengembalikan 404 HTTP Error Satus, karena pengguna tidak memiliki izin. Sama untuk bagian "kolaborator".

ApicurioError

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

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

```

getMocks publik(apiId: string, from?: number, to?: number): Janji console.info("[ApisService] Mendapatkan semua tiruan untuk 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 publik (apiId: string): Janji console.info("[ApisService] Mendapatkan kolaborator untuk Desain 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

@Mengesampingkan
Koleksi publikgetMocks(String designId, Integer start, Integer end)
melempar ServerError, NotFoundException {
int dari = 0;
ke = 20;
if (mulai != nol) {
dari = start.intValue();
}
jika (akhir != null) {
ke = 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);
    }
}

@Mengesampingkan
Koleksi publikgetCollaborators(String designId) melempar ServerError, NotFoundException {
logger.debug("Mengambil semua kolaborator untuk API: {}", 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

Komentar yang paling membantu

Hai! Terima kasih atas komentar Anda, mencari bug, saya baru tahu bahwa kami menggunakan versi lama. 0.2.27.
Maaf tentang itu.
Saya akan memperbarui Aplikasi.
Anda dapat mengabaikan kesalahan.

Terima kasih.

Semua 3 komentar

Terima kasih atas laporan bugnya.

@AguRyan Pada rilis terbaru, saya menemukan bahwa di dalam fungsi hasWritePermission() , isShareForEveryone() dicentang :

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. jawa#L275

Apakah Anda punya ide lain tentang apa penyebab masalah ini?

Hai! Terima kasih atas komentar Anda, mencari bug, saya baru tahu bahwa kami menggunakan versi lama. 0.2.27.
Maaf tentang itu.
Saya akan memperbarui Aplikasi.
Anda dapat mengabaikan kesalahan.

Terima kasih.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat