Avatar UUID 文字列をメンバー PUT に送信し、parseInt ではなく
Avatar ID は UUID です。 parseInt は、NaN または truncated の値を生成し、メンバーは avatarの更新は、更新後にスキップまたは誤っていました。 文字列 ID を使用する アップロード、Avatar Creator、メンバーシップタブ保存、アカウントタブ選択.
ユーザが org オーナー TeamMember のときにブランディングを許可する
テーマのプロビジョニングとロゴ/背景のアップロードのみチェックされた組織。 スタッフ FK;アプリUIは、組織の所有者をTeamMember.isOrganizationOwnerとして扱います, 違います。 両方と認可を合わせ、アップロードの神モードを許可して下さい 仮説のように.
Add ******************** アバタークリーンアップ用
アバターを外すときに使用されるので、メンバーは削除する前に同じ行を参照するオーバーライドをクリアすることができます.
アバター行を削除する前に、ユーザとメンバーのFKをクリア
それがまだアクティブなユーザーアバターやメンバー固有のオーバーライドだったとき、アバターがDB制約に失敗しました。これにより、ユーザーがストールレコードを削除できないMino blobsが壊れました.
Orgフォルダを拭くことなくデフォルトテンプレートをマージ
完全な規定は、コピー前のorgプレフィックスを削除しなくなった。 コピーから public/default は一致するキーだけを上書きします。 org の下の他のオブジェクト フォルダは残ります。 ベーステンプレートのソースは、kamocrm-comからデフォルトに変更されます.
暫定的な HTTP エラーを処理し、プロビジョニング UI をリセットする
ブランディングと背景保存後のPOST /provision-themeを待ってください。 non-202 API エラーを表示し、パネルをクリアします。 投資テーマ提案 背景は websocket の状態がブランディングのようなリセットを保存します.
厳格なDNS検証なしでテーマフォルダホストを解決する
テーマのプロビジョニングは、すべてのドメインに対して必須のisDnsVerifiedです。 デフォルト kamocrm.com サブドメインは非同期作業を開始しません (400, STOMP なし). アクティブなドメインに戻り、{alias}.kamocrm.com に移動します.
POSTの前にSTOMPを接続して、失われた進行を避ける
WebSocketはプロビジョニングが真になったときにのみ始まりました。 同じターンで発射される。非同期のバックエンドは、STOMP の購読前に公開することができる。 org id が既知のときに接続します。 実行が UI をリセットし始めると、 バンプセッションカウンター.
コアNATSのリレーテーマの規定
マッチセキュリティサービスコア公開:Dispatcherで購読する JetStream ではなく、security.theme.provision.* (ストリームのみチャットをカバー).
核心NATSに関するテーマ規定の進捗を公開
JetStream CHAT MESSAGES ストリームはチャット用に構成されています。> のみ、公開 へ******************** 失敗したストリーム検証とUI のこぎり 進行しません。 SupportNotificationService のような Connection.publish を使用します...
セキュリティ org API およびテーマ WS 用の string org ID を使用します
getOrgId() は、数値() で orgID を強制し、int64 の cockroach ID を破損します。 /api/security/org/{id}/* URL (404/failed 保存). getOrgIdString() を追加します。 LabelManager で使用し、テーマのプロビジョニン...
Wizard create-org で EmbRecordState.isActive を設定すると、orgs.is active は null ではない
Create-org ボディを CreateOrganization にデシリアライズする 団体JsonIdentityを避けるペイロード 情報障害
Parse create-org JSON なし @RequestBody 避ける 415
コンテンツタイプが見つからない場合、または未サポートのメディアタイプを返します。 @RequestBody で受け付けます。 バイトを読み、 ObjectMapper を代わりに使用 APIService/Nextのプロキシは、コンテンツの交渉の失敗をトリガーできません.
明確なウィザードセッション?fresh = 1 で新鮮な作成のストレージ
ネットワークから ?fresh=1 で作成し、クエリを除去し、 短命ロックなので、React Strict Modeは前の古いドラフトを復元しません persist 実行します。. Wizard は sessionStorage に住んでいる (localStorage ではなく).
JSON コンテンツタイプと表面スプリングエラーフィールドを正規化
JSON プロキシ ボディの 1 つの application/json ヘッダーを強制します。 org ルートは常に 設定します。 地図 問題 課題のタイトル/詳細作成の組織エラー.
SecurityService に転送される JSON ボディに application/json を設定
RestTemplate to upstream は、春とコンテンツタイプの互換性がないままにできます。 @RequestBody は 415 を引き起こします。 生体を読んだ後、力の適用 JSON ペイロードがJSONのように見えるとき.
アルコール/タバコ/防火具 コンプライアンスポリシー
- CHILD ORG SECURITY MODELS カラムと実体デフォルト MEMBER SELECT - DTO と ChildOrgSecurityModelService の作成/更新の正規化 - AppliedModelEnforcementService は、お子様の org ATF フラグとシングルトン...
モデルと信頼できるブランチタイプに関するATFコンプライアンスポリシーを公開
- 組織管理者は、年齢の主張の前にモデルの執行を適用します - SecurityModelController と MasterModelController のパスポリシーフィールド - BranchTypeController は /branch-types/creatable のポリシーを含んでいます
セキュリティモデルポリシーのコンプライアンスウィザード
- ブランチタイプAPIは、アルコール/タバコ/防火具のポリシーをウィザード状態にマップします - 動的コンプライアンスのステップ:モデルがすべてのATFおよび年齢を固定するときのnavからの省略 - MEMBER SELECTまたは複数の年齢オプションの場合のみ、年齢とATF制御 - レビューは、ユーザーが求めたフィ...
セキュリティサービスにプロキシする際に JSON コンテンツタイプを確保する
組織作成が返された 415 サポートされていないメディア 上流だからタイプ Spring は @RequestBody の application/json を期待しています。 ノードフェッチは省略または省略できます デフォルト 文字列ボディのContent-Type; ForwardToApi は JSON で設定で...