- Expédié
- 17 septembre 2026 à 04:26 UTC
- Auteur
- Kamo
- Commite
- 6f51fa9
Les fournisseurs de marché de détail-processeurs de la configuration sur CommerceMarketController ont résolu l'ordre de la session et ont ensuite utilisé n'importe quel problème. marché et config uid le chemin nommé. Mettre à jour, supprimer et les journaux de synchronisation ont accepté une session de n'importe quelle organisation; la connexion de test et la synchronisation acceptées aucune session - laissez une demande sans session par-delà, et les deux manutentionnaires ont ignoré l'organisme qu'ils ont résolu). Une connexion de magasin contient la clé API du magasin, secrète ou l'accès, et la connexion de test appelle le magasin stockéUrl avec eux, afin que quiconque connaisse l'uid d'une config puisse repointer son URL de stockage sur leur propre serveur et faire délivrer le jeton là, ou déclencher la synchronisation contre un autre Magasin de locataires. Créer également un lien entre une configuration et tout id de marché, y compris celui d'une autre organisation. Chaque gestionnaire (liste pour un marché, liste pour l'organisation, créer, mettre à jour, supprimer, logs de synchronisation, connexion de test, synchronisation, synchronisation) maintenant Expitement de déchetsRetailProviderAccess d'abord: - 401 sans session; - 403 sans MANAGE-SUBSCRIPTION-SETTINGS, la porte de /settings/caréntures/pos, le seul écran qui lit ou écrit ces connexions (CommerceProviderSetup, son tableau de bord de dialogue et de synchronisation de configuration), et le niveau de lecture du frère ou sœur connexion du fournisseur de facturation sur la même page; - 404 à moins que le marché n'appartient à l'organisation de la session - et, lorsqu'une configuration est nommé, la config appartient à cette organisation ET à ce marché. Un autre marché de locataires ou des réponses de configuration comme un manquant. Les journaux de synchronisation nécessitent maintenant configId; sans lui, la recherche était par une configuration NULL. RetailService et RetailSyncOrchestrator vivent en kamo-shared-library et regardent toujours les configs par uid seul; le contrôle de la propriété court ici, avant l'un d'eux est appelé, et rien d'autre dans un service ne les appelle avec un uid fourni par l'appelant (le chemin de webhook résout sa propre configuration et vérifie le fournisseur HMAC, fail-fermet). Les appelants cartographiés: karmo-internalitéProviderApi.ts uniquement (les méthodes de vente au détail de commerceApi.ts n'ont pas d'utilisateurs; pas de téléphone mobile, de kamo-js ou d'appelseurs de service). Chaque appel passe le marché de la config à partir de son DTO et s'effectue sur le Page. MarketOverviewTab et la page du nouveau marché énumèrent également les configurations et les captures erreurs, donc un membre sans la droite qui atteint une page de marché ne voit aucun fournisseur lié au lieu de la liste. RetailProviderConfigAccessTest pilote chaque gestionnaire: anonyme 401 et un membre sans la droite 403, tous deux avec rien n'a touché; le marché d'un autre organisme 404; la configuration d'une autre org sous le marché de cette org 404 et une configuration sous le un marché propre 404, sans rien mis à jour, supprimé, testé, synchronisé ou lu; le chemin de gestionnaire 200 sur les huit. La suppression de chacun des cinq contrôles échoue exactement au test écrit pour celui-ci.