同じ会話のためにチャットポップアップを複製を停止する
Tool-window は、単一の userId キーに対して、厳密に一致しただけをバックアップします。 async-mirrored windowsRef なので、同じ 1:1 チャットは 2 回開かれます。 - userId は、おそらく精度の id.toString() です。 truncated Cockro...
Kamo-shared-libraryの権利滝の苦境(5f20d29)に対する再建
CI クローンと kamo-shared-library をソースからビルドするので、この空のコミット レイヤーされた権利の解像度をピックアップするビルドを再トリガーします。 起動時に MemberRightsBackfillServiceは、すべてのメンバーの応募権を、 正しい滝.
ジョブのタイトルと部門エディタで、すべての有効なアプリパーミッショングループを表示
JobTitleManager と DepartmentManager は、2つのパーミッショングループだけをレンダリングしました。 一般的なCRM — なので**************************** 権利は見えないと SecurityRoleManager と メンバープロファイルエディタが示されてい...
NUKE-always-winsの代わりにメンバーの権利を真の滝として解決する
すべてのソース(ロール、部門、ジョブ)を折り畳むことによって、効果的な権利が計算されました NUKEが常に勝ち取る地図に、タイトル、メンバー)。 つまり、メンバーの持ち株 「管理者(フルアクセス)」の役割と「チームメンバー」の役割の両方 NUKEsの権利は、これらの権利を完全に失った - 否定は決して上書きできない —...
セキュリティを反転 セルフ・ポイント・セルフ・ヒール・メンバーの応募権
SecurityProvider-mirr の変更から2つの問題: 1. 「組織のメンバーシップなし」でシステムメンバーが失敗した場合 あらゆる子供のorgのセキュリティプロバイダー すべてのorgsのsecurity provider idは トップレベルのKamoCRMのorgで指摘されている, しかし、システム...
OAuth ポップアップが閉じるときにプロバイダのステータスをリフレッシュ
プロバイダーは api-gateway コールバック (異なる起源) にリダイレクトします。 そのため、postMessageは、オープナーのオリジンチェックを渡すことはできません。 実際のプロバイダを再取得 信頼性の高いフォールバックとして、ポップアップのステータス; それは成功を偽装しません.
電子メールOAuthプロバイダコールバックのためのパブリックパススルー
転送GET ******************** に Eメールサービス セッションレス (strips auth, 以下リダイレクトなし), RingCentral OAuth コールバックをミラーリング. これは、Microsoft/Google/Zohoに登録された固定公開リダイレクトURIです.
固定パブリックリダイレクト+ゲートウェイフォワードコールバック
プラットフォームのメール OAuth (Microsoft 365 / Google / Zoho) は、有効な公開がなかった リダイレクト URI: リダイレクトはリクエストホストから派生しました。 クラスター内サービスアドレスであり、唯一のコールバックハンドラは POST専用 単一の固定された、一般に到達可能なリダ...
変換されたドキュメント、ネイティブPDFを含むe署名エディタPDFをサーブ
E-sign エディタ (DocumentEditor → PdfCanvas / PageThumbnailSidebar) は、 ドキュメントを変換するだけでなく、 sig-template フローを介してアップロードされたファイル。 それは、 メニュー 400'd(「ドキュメントはない」) 通常の My Docs...
My Docs は MY DOCS のオーディナル (3) を使用し、エンウム ID (4) を使用しない
バックエンドは、`values()[assocType]` (ordinal index) を介して ImageAssocType を解決します。 @Enumerated(ORDINAL) を演じます。 あらゆるイメージ投射表面はターミナルを渡します、 しかし、My Docs doc-manager は enum の ...
重複した文書を変換するので、e-sign 編集が有効
アップロードされたファイルのバイトが既存の ImgDat と一致するとき、 dedup パス (register-existing) は dat の動詞を再利用し、変換を実行しない パイプライン。 再使用した dat が変換されなかった場合 (例えばアップロードされる前に e-sign変換機能が存在します)、新しいドキ...
リターン 200 すべて 構成されていないorg機能の偽造
GET /api/voip/capabilities threw ProviderNotConfiguredException (422) 場合 org は、電話プロバイダーがなかったため、すべてのページの読み込みに赤いコンソールエラーが記録されます。 電話なしのorgs。 能力は自然な空の答えと純粋な照会です、従って...
カスタマイズされていない nav および電話レス orgs のための 404/422 コンソール エラーを停止して下さい
Ui-preferencesコレクションのエンドポイント(200方向)を初期に読み込みます。 navLayout はシングルキー GET の代わりにロードします。これは 404s で、メンバーが持っているときです。 決してナブをカスタマイズしません — 一般的なケース、すべてのページ負荷でフィリングします。 ソフトフ...
ブラウザのみのエイリアス(media.*)を積極的にプロビジョニング
Log-scan の検出機構は `media` alias をブートできません。 WebSocket/XHR のサブリソースを介したブラウザのみに問い合わせられます。 (Softphone/chat/sms/realtimeのホックからのSockJS /ws/info)。 証明書無しを使って、 TLS ハンドシェイク ...
ゲートリードコンタクト-infoを割り当てる+新しいプライバシーの権利
3つの新しいCRMの権利をミラーリング. リード詳細ページでは、マスク/ロック プライマリコンタクト、メーリングアドレス、プロパティアドレスフィールド、リード ビュー/編集を保持しない限り、現在のメンバーに割り当てられていない コンタクトの権利(および、譲渡されていないリード、VIEW UNASSIGNED LEADS...
リードコンタクト-info プライバシーの権利を強化
getAllLeads は、Lean LeadListDTO を返し、不要なリードを非表示にします。 VIEW UNASSIGNED LEADSのないメンバーから。 GetLeadById マスクは、 リードのための情報(保存状態)は、それらがなければ、発信者に割り当てられません VIEW LEAD CONTACT I...
リードコンタクト-info プライバシーの権利 + リーンリストDTO
3つのCRM権利を追加します。 (161-163): 「その他に割り当て: リードを表示/編集 コンタクト情報「Unassigned Leads」と「View Unassigned Leads」 lean の LeadListDTO を追加 /leads の格子のための投影は接触情報を除いて運びません ステートフィール...
LAST EDIT ATをEPoch-millis expiryのUTCとして解釈
dbNow() は、DB-UTC 壁クロック(now()::timestamp) を返すようになりました。 JVM のデフォルト ゾーンの代わりに toInstant(UTC) をインスタンス化 — ブラウザーを保ちます ポッドタイムゾーンに関係なくカウントダウンが正しい.
DbNow() キャスト now()->::timestamp (TIMESTAMPTZ->Instant break LocalDateTime)
SELECT Now() は TIMESTAMPTZ を返します。これは、 java.time としてマテリアル化します。 ログイン 宣言された LocalDateTime の戻りタイプにキャストできない — ClassCastException をスローする すべてのロックで取得/ハートビート/スイープとすべてのタス...
/member と /team パスからメンバーシップタイプを送信
/team のサインアップは TEAM MEMBER (created PROSPECT の作成、管理の活性化) を作成します。 /member サインアップすると、EMBERが作成されます。 RegisterFlow は、各パスが供給する memberType の prop を取ります ラッパーとレジスタボディに含め...
/team は TEAM MEMBER (PROSPECT) を作成します
パブリック登録は、登録サイトが送信するMemberTypeを表彰するようになりました(/memberから) チームパス: /team は TEAM MEMBER を PROSPECT として作成しますので、管理者はそれらをアクティブにする必要があります。 サインインする前に(ログインゲートごとに)、/member はベ...
エージェントフィルタは、メールではなく、メンバー名+電話拡張子を表示します
エージェントのドロップダウンは、ローダーから各チームメイトを電子メールでラベル付けしました firstName/last の読み込み 名前 キー バックエンドは送信しません(送信) nameFirst/nameLast/fullName なので displayName はメールに戻りました。 読む 正しいキーとレンダリ...
チームメンバーのコントラクターでチームメンバーワークの電話延長を公開
/leads のエージェント フィルターは、ワーク フォン エクステンションをラベル オプションとして必要 "名前(ext 8080)"。 TeamMemberに既に存在する拡張子 (getPhoneWorkExtension) がシリアライズされていないため、ベアナンバーのみでした.
リクエストサポートポップアップは、親組織の共有トピックを示しています
新規でチケット決済トピックのドロップダウンをポイント /api/support/topics/利用できるエンドポイント(own-org + 親共有トピック) したがって、子-org ユーザーは、親 org のサポートに連絡することができます 親の構成されたトピック.
サーフェスの親オーガニ共有トピックは、サポートポップアップでリクエスト
Child-org のユーザーは、親 org の共有サポート トピックが表示されない サポートを要求する場合(assignToOwnOrg=false)、ポップアップのみ 独自のトピックを取得しました。 GET /api/support/topics/available (own +) を追加 親共有、MANAGE S...
正しい変換された親共有トピッククエリ
AssignToOwnOrg=TRUE (own-org-only) でフィルタリングされたチャイルド・トピック・クエリ 子供のorgs(assignToOwnOrg=FALSE)で共有されたトピックを返すべきです。 このようにして派生したメソッドの名前を変更して、その子のorgsは親のものを見る 共有サポートトピック...
親のセキュリティプロバイダを継承する新しい子組織
Kamo-internal から子の org を作成する場合、新しい org の securityProvider をセットします。 それを許可するのではなく、親 org のsecurityProvider ( org で作成されます) デフォルトはセルフです。 既存のすべてのorgのポイントを埋めるデータバックフィル...
?linked=1でアカウントリンク通知を表示する
既存のアカウントを新しいorgに登録すると、ここにリダイレクトします。 ?linked=1. "あなたはすでにカモアカウントを持っている - 私たちは、この組織を追加しました お問い合わせ 既存のパスワードでサインインし、メールを埋めます。 既存のミラー ?email verified の処理.
既存のユーザーのアカウントリンク応答の処理
入力したメールが既にACTIVEアカウントに所属している場合、バックエンドはこれをリンクします。 org で、account LINKED を返します。 サインインするユーザーを直接ルート (?linked=1) ではなく、メール検証フロー — 既存のものにサインイン パスワード 新規ユーザーとプレースホルダーのサイン...
ワイヤーアップメンバー/チームメンバー作成+プロスペクトゲートUI
- 欠落したPOSTプロキシルート/api/security/members/createを追加し、 /create-team-member(前は405節)なので、バックエンドに辿り着くことはありません。 ステータス + JSON ボディパス フォームの 409 「すでにメンバー」 再利用処理 作品紹介 - Membe...
既存のユーザーを、securityProvider にミラーを、ゲートのチーム メンバーの印使用して下さい
再利用(同一人物の重複アカウントなし): - MemberCreateControllerは、既存のユーザーを個人メールで再利用できるようになりました。 ケース・インセンシブリー(ケース・センシティブ、レガシー・ミックスケース・メールの欠如)。 - SecurityController.register は、常に作成す...
SecurityProvider 会員ミラー + 再使用/パッチ グラウンドワーク
-**************** userId: ユーザを org のセキュリティプロバイダー org をベースメンバーとして (セットアップ済み; org のとき no-op) 自身を保護したり、既にユーザがいる。 すべての新しいルールを返す 会員は、プラットフォーム/セキュリティ・プロピダー・オーガニゼーションの...
正規のホスト名をボディに送信するので、アカウントが正しいオーガナイザーの下にある
解決された org はクライアントで利用できましたが、バックエンドに送信されませんでした。 org は、X-Forwarded-Host を経由して暗黙的に伝えられました。 共有された api ホストに書き換えるので、kamocrm の下にすべてのサインアップがファイルされました。 window.location.h...
ドメインの org にある新しいアカウントを kamocrm ではなくファイルします
/register は新しいメンバーの org をリクエストホストにバインドしますが、 org シグナル ホップを生き延ばさない: kamo-register 共有へのすべてのサインアップ api.kamocrm.com と ingress は、共有ホストに X-Forwarded-Host を書き換えます。 getS...
最も深いラベルのエイリアスフォールバックでorg-by-domainを解決する
メニュー 正確なドメイン マッチすると、一番深いラベルを一度にドロップします(register.optionone.com -> optionone.com) そのため、パーオーガニのレジスタ/ブランディングサブドメインは、いつでも独自の組織に解決します apex は登録された OrgDomain です。 失敗はブラン...
ブラウザ上でビューポートシェーキングを古典的なスクロールバーで停止
Chrome がレイアウト消費 (非オーバーレイ) スクロールバーを使用するマシンで、 ログイン/回復ページは、両方のスクロールバーをflickeringで忘れました。 ログイン 原因: 根はw-screen (100vw、スクロールバーの溝を含む)を使用しました html/body がオーバーフローロックがなかったと...
ワイヤータスク タブ 実際のバックエンドへ + アクションを削除 + ライブカウント
/leads/{id}/tasks[/{taskId}] の次のプロキシルートを追加します。(タブの getTasks/ addTask/updateTask/completeTask の呼び出しは 404ing でした)、deleteTask のアクションは タスク グリッド、 'タスクを開く' ステータスをライブ ...
リードタスク REST API + リアルタイム TASK CHANGED
/leads/view Tasksタブのバックエンドを既に呼び出していましたが、 決して存在しません: GET/POST/PUT/DELETE メニュー (LeadTaskController + LeadTaskService)、ロックエンドポイントのように保護されている。 各 create/update/delet...
リードフォローアップタスクのためのLeadTaskエンティティティティ
/leads/view タスク タブ (主にフロントエンド専用スタブなし) をバックアップします。 持続性)。 LeadTask(table LEAD TASK)は、フロントエンドのTaskItem形状をミラーリング メニュー + LeadTaskDTOとリポジトリ。 タスクのミューテーションは、既存のリードリアルタイ...
リアルタイムのdatagrid + 1枚の編集ロックが付いている生きている鉛眺め
/leads グリッドは websocket (NATS→STOMP): 行の追加/削除/更新 アクティブなフィルターに対して自動的にそして変更された細胞は他のために一度点滅します メンバーの編集、デッドリフレッシュボタンが削除されます。 /leads/view/[id] はライブ リード/履歴/タスク/ステータスの更...
Org-guard /topic/leads/rt/{orgId} リアルタイムサブスクリプション
クロステナントSUBSCRIBEは、新しいリードリアルタイムのトピックを監視し、 既存の /topic/social/feed ガード: 会員は、会員のみに加入することができます orgのリードストリーム。 既存の************************は既に リレーsecurity.leads.rt.* を ...
パーパンの編集ロックREST API +自動保存スイーパー
/api/security/leads/{id}/locks を追加 **************************************************** LeadLockService: 排他的なパーペインの予約、ラフトバッファリングハートビート 5分アイドルTTLをリセットし、バッファを自動保存...
リアルタイムNATSの公開+パーペの編集ロックエンティティティ
Org-scoped リードイベントを、security.leads.rt.{orgId} に公開 (created/updated/) /leads グリッドと /leads グリッドが変更されたフィールドキー、履歴追加で削除され、 /leads/view ページは、ライブを更新できます。 *************...
セクションで「利用できない」を削除
サーフィンを中止する nav は、メンバーがアクセスできない機能を備えています。 ナビゲーション レイアウトページには、ロックされたチップとして隠されているすべてのnavオプションがリストされています。 ドロップ 今未使用の隠れた/visibleIdsのメモとブロック NAV REGISTRY、LockOutlined...
ジェネリックバイトエンドポイントは、パーティのドキュメントごとにMLOSを拒否(vault/loan)
汎用画像バイトエンドポイント(ダウンロード/ストリーム/一括ダウンロード/ thumbnail)とbinderの集計は、org + 数値でのみ承認 クリアランス天井 — パーティのチェックなし — そのため、CONFIDENTIALにクリアされたメンバー ANYのパーティーのモートゲージPII(SSNカード、税金リター...
プライマリタブを残りのスタイルAページのヘッダーに統合
スタイルA→Bスイープのフォローアップ、通過しないページをカバー 設定ビュー: - /kb:KbNavBarは記事/リソース/でグラデーションヒーローヘッダーになります レビュータブが統合され、新しい記事アクションが整列されます。 レイアウト 共有された放射状の背景を取得します。 メニュー ミニバック矢印ヘッダー+一...
ベンダー製品ステータススナックバーをトップに集中
保存/更新状態の丸薬はMUIのデフォルトのアンカーを使用しました(左下) lockOrigin が設定されているので、オフセンターをレンダリングしました。 アンカートップセンター.
CreatePair は、プライマリペア (BorowerPairs の重複を阻止する) に不意です
createPair の唯一の呼び出しは wizard の 'ensure プライマリ借り手' ですが、 無条件に新しいペアを呼び出したので、同時オートセーブ+ explicit 保存 (空のクライアントキャッシュを見ると) 各 POSTed と minted 重複するBorrowerPair — URLAを破損させる...
一番下のカウントバーを社会全体にヘッダに移動し、タブをインポート
兄弟のCRM設定の表面にベンダータブの治療を適用しているので、 スタンドアローン "x • y" のサマリーバーは、もはやページ不動産を食べません。 - ソーシャル・コネクションと自動インポート:ヘッダ・アクションのボトムアライメントと リフレッシュ+追加/作成ボタンの上の行の積み重ねを数える。 - 手動輸入のサブタ...