- Spegnimento
- 11 agosto 2026 alle ore 01:16 UTC
- Autore
- Kamo
- Impegno
- 69116e8
Promuovere un membro a pagare per se stesso era incondizionato, a senso unico e non sicuro per ripetere. Ora si rifiuta quando la politica dell'organizzazione dice che l'organizzazione paga per tutti — in precedenza l'unico controllo sul pagamento di sé era l'irreversibilità del gesto stesso. E' idemponte. Promuovere lo stesso membro due volte inserito un secondo account e una seconda riga AccountMember, tripping l'unico su member id e rispondere a 500; un doppio clic, una riprovazione dopo un blip di rete, o un proprietario che re-running il flusso per spostare più licenze tutti colpito. Ora riutilizza l'account e sottoscrive l'abbonamento il membro ha già e prosegue il trasferimento. demoteBillingOwner è l'inverso che non esisteva mai. Un proprietario che ha promosso qualcuno non potrebbe annullarlo, e se quel membro se ne fosse andato, loro personalmente Conto tenuto in possesso di posti di destinazione dell'organizzazione senza modo di reclamare loro. Le licenze tornano all'abbonamento dell'organizzazione e l'auto-payer è in piedi; il loro Account e i metodi di pagamento sono lasciati soli, perché il recupero dei posti a cui l'organizzazione dipende è l'attività del proprietario e cancellare la storia della fatturazione di qualcuno non lo e'. La corrispondenza è sull'Utente condiviso piuttosto che il membro id, dal momento che la promozione rispecchia il membro sul livello superiore org. Corregge anche il cricchetto endpoint, che era ALREADY FAILING sul principale prima di questo lavoro — così la costruzione di SecurityService era rossa e nulla stava dispiegando. La scansione non poteva vedere due guardie reali: ExtractUserId legge userID fuori dal *** sessione e richiedonoTopLevelOwner passa attraverso CallerSessionResolver e più richiede che il chiamante possieda l'org di livello superiore. Insegnare sia lasciare 25 stallo le voci di base vengono eliminate, che è esattamente ciò che il file chiede — fissando un endpoint significa rimuovere la sua linea, e questo è ciò che fa cadere il numero. runSweep è basato con la sua vera ragione: interno-terra custodito attraverso un parametro intestazione il corpo-scan non può raggiungere.