リポジトリからkamo-capcha-widget node modulesを削除
****************************************************************************************************************************************************************...
変更ログリンクと毎日のカウントでライブ状態を表示
プレビューカウントダウンとサインアップコピーをコンパクトな「Now LIVE」で置き換える callout は変更ログ リンクを保ち、今日の変更カウントを常に表示します ロード後の API から。 ローカルでPreviewBanner文字列を更新します.
セキュリティロールは、ロックされたロールと明確なAPIエラーを保存します
- isAllowEditSecurity が false の場合、omit 権限と SecurityModelIds が PUTボディなので、SecurityServiceはメタデータのみの更新(セッションタイムアウト)を受け入れます。 説明) 許可ペイロードを拒否する代わりに。 - isAllowEditSecur...
Proxy PATCH のメンバーシップ タイプを SecurityService に
会員プロファイルUIは、**************** と呼ばれます しかし、App のルーターのハンドラは存在しません、従って次は HTML 404 およびクライアントを戻しました 失敗したJSON解析後の未知のエラーが示されました.
正規の代わりに安定したgetId()によるPersist RoleRightType
Hibernate @Enumerated(EnumType.ORDINAL) は、宣言インデックスを記述/読み込みます。 フォーラム RoleRightType 値が削除されるとき(MANAGE USERS、id=19)、 getId() が置く間に、その後のエントリのオーディナルが 1 つずつシフトダウンします。 ...
トランザクション中毒DDLを避け、マルチポッドレースを硬化させます
@Transactional syncAll() の内部に DDL を置いた前の自己ヒール。 いつの時 TABLE ADD CONSTRAINTは、既存の制約(最初の後に通常の場合)で消火 ブート、またはマルチポッドのレースでPodを失う)、runIdempotentはJavaを飲みました 例外 — しかし、周囲のDB...
すべてのブートでロールレイトシンクサービス完全に自己ヒーリングを作る
RoleRightTypeの追加または削除は、再び実行する必要がある KamoInitializerService. syncAll() は、すべての起動時に 3 つのフェーズを実行します。 1。 ヒール制約 - チェックの制約をすべての右ベアリングに落とします テーブルは2つのupsert-required固有の制...
デフォルトルール右列のチェック制約をドロップ
Hibernate 自動生成 CHECK ('VAL1'、'VAL2'、...) 制約 @Enumerated(EnumType.STRING) 列の CREATE TABLE で enum を凍結 テーブル作成時の値のリスト。 それぞれのロールレイトタイプまたは 役割RightTemplateSetting タイプの...
ロール・ライト・アップサートの欠如ユニークな制約を追加
メニュー +syncSecurityModelRoleRights の使用 `ON CONFLICT(role id, right type) は、NOTING` ではなく、 `ON CONFLICT (default role id, right type) は、一致を必要とする DBテーブルのユニークな制約。 `...
OrgRoleRight に (role id, right type) に固有の制約を追加します
************************************************************************* この制約がなければ、同期クエリは「ユニークまたは除外なし」で失敗します 起動時にセキュリティサービスをクラッシュするON CONFLICT仕様の制約.
廃止された組織を削除 タイプ enum
列挙が退任されている - プラットフォーム所有者の組織の識別は現在、新しい組織によって運転されています。 isTopLevel フラグと残りの値 (CRM CLIENT, CLUB など) はデッドでした.
プラットフォーム管理の設定を追加 — org プランの助成金、イベント、プランのカタログ
- /settings/platform の下の新しいページ( hasPlatformAdminAccess によって保護される): - /organization - 理由で、すべてのorg、助成金/修正/再生COMP計画をリスト - /events — 監査フィード*************************...
プラットフォーム管理者+コンプリートプラン付与サービスを追加
- PlatformAdminController(/api/billing/platform) (クラスレベル@PlatformAdmin) - GET /orgs、GET /orgs/{orgId} - POST /orgs/{orgId}/grants, PATCH|DELETE /orgs/{orgId}/gr...
Seed Organization.isTopLevel for kamocrm and OWNER UNLIMITED セルフコンプリートプラン
- DataLoader:ドロップ組織 createOrg の type arg、kamocrm の set は TopLevel=true です。 - KamoCRMAgeReqUpdateRunner +テスト:IS TOP LEVEL = TRUEではなく、TYPEで一致 - 組織タイプRemovalRunner...
プロフィールビューでログインしたユーザーのアバターでメンバーアバターを上書き停止
fetchAvatars fetched /api/security/avatars (memberID スコープなし — 常に戻ります) ログインしたユーザのアバターを呼び、 setActiveAvatar と呼びます。 会員アバターは既に会員エンドポイントから読み込まれています。 他の人を見る管理者 メンバーのmy...
Add Organization.isTopLevel、PaymentMethod.COMP、COMP *イベントタイプ;組織を削除 タイプ enum
- 組織: プラットフォーム所有者の識別のための `isTopLevel` フラグでデッド `type` フィールドを置き換える - PaymentMethod: 無料のプラットフォーム管理者付与(ストライプなし)に COMP を追加 - サブスクリプションイベントタイプ: COMP GRANTED, COMP REV...
行方不明のsync-rightsプロキシルートを追加
POST /api/security/roles/sync-rights は Next.js プロキシハンドラを欠落させました。 セキュリティロールの設定で、常に失敗する権利ボタンを同期させます.
訪問者のチケットにpublicChatVisitor displayNameのリクエスト名を使用する
訪問者が開始したチケットは、組織システムメンバーにハードコードリクエストをリクエストします。 DTO は、要求欄に org の所有者の名前を surfacing していました。 秋冬 publicChatVisitor.displayName に戻ると、リストが表示されます。 実際の訪問者(匿名または名前付き).
会員制覇者支援権の賭けとデュアルモードチケットビュー
- NavTop:サポートボタンを任意のサポート権利(エージェントまたはメンバー)に表示 - サポートボタン:各ドロップダウン項目を右にゲート — チケットを作成/表示、 Webinar をリクエストし、右が保持されたときにのみ表示されるマイウェビナー - SupportTicketListTab: デュアルモード —...
会員制支援権の追加 (133-136)
非エージェントメンバーの4つの新しいサポートスコープの権限を追加します。 メニュー - CREATE SUPPORT TICKET(クリエイト)(134) - 質問 WEBINAR(135) - VIEW MY スケジュールD WEBINARS (136)
右ボタンを SecurityRoleManager に追加して、トップレベルの orgs に追加します
ボタンは、組織.hasParent が false の場合のみ表示されます。 コール POST /api/security/roles/sync-rights はロールテーブルをリロードします.
ゲート サポート/設定 権利、固定 ネットワーク コピー、タブ スイッチ、nav の分岐器に荷を積む
- ネットワークカード:動的ブランチタイトルラベルを使用する更新された記述 - サポート カード: 修正 404 変更による href /help → /support; isSupport + VIEW SUPPORT 右 - 設定カード(ホームページ):ゼロ設定関連の権利を持つメンバーのために隠される - 設定ギア...
RoleRightsSyncServiceを抽出し、sync-rightsエンドポイントを追加
- RoleRightsSyncService: OrgRoleのロール権利同期ロジックを一元化 メニュー テーブル、起動およびオンデマンド - DataLoader: 起動時にロールRightsSyncService.syncAll() に委任 - SecurityRoleController: POST /sync...
役割の権利 DTO を enum 主導し、セキュリティモデルの権利を同期させる
- SecurityRoleDTO.fromOrgRole():すべてのロールレイトを列挙する DB の型の値 一見のように設定 — 新しい権利は NOT SPECIFIED によって自動的に現れます メニュー 同じenum-drivenアプローチ セキュリティモデルのデフォルトロール - OrgRoleRight.t...
ネイティブな updateMemberType を追加し、TeamMemberRow のクエリをメンバーリポジトリに追加する
サポートチャットUX — 名前の更新、タイトル、通知カウント、データグリッド
- NAME CHANGED WSイベントが到着したときに、VisitorNameChangedのチケットチャットの火災 - サポートTicketWindowは用具を出荷します:負荷のrequestorNameのタイトルおよび 名前変更; 更新ページなしでリアルタイムでチケットの状態を更新して下さい - Support...
訪問者サポートチャットでフレンドリーなテキストとしてレンダリングシステムイベント
NAME CHANGEDシステムイベントは、チャットバブルで生のJSONを表示しなくなりました。 それらは中心にされた italic の丸薬(「{name} に名前を変更して下さい」)として表示します。 その他のシステムイベントは、サイレントに無視されます.
リードページ上の空の状態の代わりに、AG Gridの読み込みオーバーレイを表示
ロード状態を真正に初期化して、グリッドは「リードをロード...」を示しています。 最初のフェッチが完了するまで、「リードが見つかりません」のフラッシュを防止します.
AppAvailabilityでgetOrganizationByIdWithFeaturesを使う インターセプター
/api/security/leads の LazyInitializationException を全て解決 他のCRM/POS関連のパス. org.getFeatures() というインターセプター トランザクションが閉じた後、新しいメソッドは熱心に機能します 読み取り専用トランザクション内の単一のJOIN FET...
FindByIdWithFeatures を熱心にロードする Organization.features に追加する
JOIN FETCHは機能がいつであるかレイジー初期化Exceptionを防ぐ トランザクション(AppAvailabilityInterceptorなど)の外部へアクセス.